Runal is a text-based creative coding environment for the terminal. It works similarly as processing or p5js but it does all the rendering as text. It can either be programmed with JavaScript, or used as a Go package.
Runal is a work-in-progress. It has only been tested on Linux and macOS and the API should not be considered as stable until it reaches 1.0.
Feel free to open an issue.
On linux or macOS, you can run this quick-install bash script:
Download the last release for your platform.
Then:
We recommend using Windows Terminal with a good monospace font like Iosevka to display Signls correctly on Windows.
Unzip the last windows release and, in the same directory, run:
If your a developer using Go, you can use the go install command:
You'll need go 1.23 minimum. Although you should be able to build it for either linux, macOS or Windows, it has only been tested on linux.
You can use JavaScript for scripting your sketch. Your js file should contain a setup and a draw method. Both methods take a single argument (here c) representing a canvas object that holds all the available primitives:
You can add an extra method onKey to catch keyboard events:
And you can then execute the file with:
The js file will be automatically reloaded when modified, no need to restart the command.
Because Runal is written in Go, you can also use it as a Go package.
Then, simply build it:
Check the API reference. You can also check some examples in the examples directory.
Runal uses a few awesome packages:
- dop251/goja for the JavaScript engine
- fsnotify/fsnotify for watching file changes in realtime
- charmbracelet/lipgloss for handling colors
.png)


