A cli-native ANSI and ASCII text editor inspired by ACiDDraw, its Unix successor DurDraw, and the rich tradition of concrete poetry in the Eastern Bloc samizdat.
cliizdat is a keyboard-only, cell-grid glyph editor for Unicode block art —
octants (U+1CD00–1CDE5), Symbols for Legacy Computing, and Nerd Font glyphs —
the material that ncurses editors silently drop because wcwidth() returns −1.
Editing is replace-only: there is no insert mode, so columns never drift and the grid physically cannot break. Keys just do things — no modes to toggle.
- Modeless, keyboard-only editing on a fixed cell grid
- Per-cell 256-color, stored as sparse git-diffable
.colorsidecars - Layers with a JSON manifest, knockout halos, solo view
- Rectangular selection: fill, repaint, copy / cut / paste
- Loadable glyph palettes (octants auto-sorted by pixel density)
.ansexport (fg-only, terminal background is the paper).durimport — bring existing durdraw art in, colors and all- Width authority is go-runewidth,
never libc
wcwidth
Requires Go 1.25+.
go build -o ~/bin/cliizdat .cliizdat project.json # a manifest project
cliizdat layer.txt # a single layer (implicit project)
cliizdat art.dur # import durdraw art
cliizdat -p palette.txt file # attach a glyph palettePress h in the editor for the full control list.
| key | action |
|---|---|
| arrows | move cursor |
Shift+arrows / s |
select (s: anchor, arrows grow, Esc drops) |
1–9 |
stamp slot (fills the selection) |
0 / x |
erase (slot 0 is always the eraser) |
y d p |
copy · cut · paste |
c / C / r |
color picker · eyedropper · repaint |
Tab |
glyph palette → slot |
[ ] / v |
prev/next layer · solo |
u / U |
undo · redo |
R |
resize canvas (crop / extend) |
g |
go to row,col |
w / e |
save · export .ans |
q |
quit |
project.json collage manifest (the single source of assembly)
layers/
sigils.txt layer = plain UTF-8 text, LF, space = transparent
sigils.color sparse per-cell color overrides: ROW COL FG, 1-based
Coordinates are 1-based everywhere in the UI, manifest, and sidecars. Saving strips trailing spaces, enforces LF, and sorts sidecars by row,col.