A cinematic terminal engine for A Dance of Fire and Ice. Shader effects. 120 FPS. Vim editor. Single binary.
Every feature is designed to push the limits of what's possible inside a terminal.
A full-featured map editor with vim-style modal editing. Navigate with hjkl, add tiles in any direction, edit events with commands, and instantly preview your level.
Branch-based undo tree means you never lose history โ even after undo, your alternate branches are preserved.
7 hand-crafted visual presets, each with unique post-processing effects.
Multiple ways to install โ pick your favorite.
brew tap 3289david/tap
brew install adofai-cli
npm install -g adofai-terminal
cargo install adofai-cli
Pre-built binaries for macOS (ARM + Intel), Linux, and Windows are available on GitHub Releases. Single file, zero dependencies.
# Create a new level at 180 BPM
adofai new --bpm 180
# Open the map editor
adofai edit untitled.adofai
# Play with the synthwave theme
adofai play untitled.adofai --theme synthwave
# Watch it auto-play
adofai play level.adofai --auto-play
# Full level analysis
adofai analyze level.adofai
| Command | Description |
|---|---|
| play <file> | Play an ADOFAI level in the terminal |
| edit <file> | Open the vim-style map editor |
| new | Create a new empty level |
| render <file> | Auto-play and capture output |
| replay <file> | View a saved replay file |
| theme <name> | Preview theme effects and info |
| analyze <file> | Show level statistics and graphs |
| Key | Action |
|---|---|
| Space / J / K / D / F | Hit (primary input) |
| Arrow keys | Hit (alternative input) |
| P / Esc | Pause / Resume |
| R | Restart level |
| A | Toggle auto-play |
| Q / Ctrl+C | Quit |
:bpm 240 Set BPM at cursor position
:twirl Toggle twirl event
:planet multi 3 Set multi-planet (3 planets)
:song My Song Set song title
:artist DJ Name Set artist name
:offset 100 Set audio offset in milliseconds
:w Save file
:wq Save and quit
:q Quit (warns if unsaved changes)
:q! Force quit without saving
:help Show all available commands
| Event | Status |
|---|---|
| SetSpeed (BPM/Multiplier) | Full support |
| Twirl | Full support |
| MultiPlanet | Full support |
| Flash | Full support |
| MoveCamera | Full support |
| ShakeScreen | Full support |
| Bloom | Full support |
| SetFilter | Full support |
| SetTrackColor | Full support |
| Pause / Hold / Checkpoint | Full support |
| PositionTrack / ScaleRadius | Full support |
| Decorations / Text / Background | Parsed & preserved |
Input โ Engine โ Camera โ Renderer โ PostProcess โ FrameBuffer โ Terminal
โ โ
TimingEngine Particles
โ
.adofai Parser
Source: ~5800 lines of Rust across 20 modules
Binary: 1.1MB with LTO, single file, zero deps