,dPYb,                 ,dPYb, ,dPYb,    
           IP'`Yb                 IP'`Yb IP'`Yb    
           I8  8I                 I8  8I I8  8I    
           I8  8'                 I8  8' I8  8bgg, 
   ,gggg,  I8 dPgg,     ,gggg,gg  I8 dP  I8 dP" "8 
  dP"  "Yb I8dP" "8I   dP"  "Y8I  I8dP   I8d8bggP" 
 i8'       I8P    I8  i8'    ,8I  I8P    I8P' "Yb, 
,d8,_    _,d8     I8,,d8,   ,d8b,,d8b,_ ,d8    `Yb,
P""Y8888PP88P     `Y8P"Y8888P"`Y88P'"Y8888P      Y8

chalk : a line based text editor

chalk is a line based text editor for the terminal and is written in Python.

chalk was written to be the text editor for colorfield.space. It was designed with gopher phlogging in mind and is best used for relatively short content, though it does support longer content as well and can be a solid distraction free writing experience.

Getting chalk

chalk requires a Python3 interpreter. It uses the standard library only and should run fine on any system with said interpreter installed. You just need to download the repository and install the chalk file somewhere on your path. For a systemwide install the following often works well (though may vary from system to system):

git clone https://tildegit.org/sloum/chalk && cd chalk
sudo install -m 0755 ./chalk /usr/local/bin/chalk

The repo comes with a detailed readme that can walk you through just about anything you'd need to get started.


chalk is a fairly simple program that allows for distraction free writing and easy to use features to control text documents. As such, there is not a lot to learn! Below you will find a list of the available commands and what they do, as well as some information about getting chalk running on your system.


Once chalk is installed on a system, run chalk followed by a filepath. If the file does not exist it will be created, otherwise it will be opened. Running chalk without a filepath will open a scratch buffer in which you can write, but you will need to provide a file name when you save it.

Once in the editor: just type! To finish and close the application enter a period on its own line. At that point you will be asked whether or not you wish to save your changes. To get help type .? as the only text on a line (with no spaces before or after it).

That should get you started using chalk at a basic level. There are many more options and features. Please read the documentation section to find out more.


Commands in chalk are entered as the only text on the line.

Print help text
Print the guide/ruler
Print file info
Display the whole file
View a range of lines (will request starting location and line COUNT)
View MORE (after using .v)
Edit a line (eg .27)
Insert empty line(s) (will request location/count)
Cut/copy line(s) (will request line range)
Copy to the paste buffer (will request line range)
Paste from the paste buffer (will request destination)
Buffer view (print the paste buffer)
Save changes to the document
Save as a new file (will request file location)
Finish writing and exit (will prompt for save if there are unsaved changes)

Running chalk

chalk is written in the programming language Python. Python is a scripting language that does not generally compile to binary files. As such, users will need to have a Python interpreter available on their system. chalk requires a Python version >= 3.0. Many systems come with Python already installed; be sure to verify the version by running: python --version. Additionally, many systems have both Python 2.7 and Python 3+ installed. Sometimes Python 3 is aliased to python3. Mostly though, you should be able to download chalk and try running it... if it runs, you have what is needed. If it doesnt, check your python version.

Since chalk only uses the Python standard library, no packages should be required from pip/pypi/easy_install.

That should take care of dependencies. You just need to make sure that chalk is executable and on your path and you are good to go.