Skip to content
HN On Hacker News ↗

GitHub - exlee/ascdraw: Keyboard-driven drawing editor for ASCII/UTF-8 diagrams

▲ 56 points 10 comments by xlii 3d ago HN discussion ↗

Pangram verdict · v3.3

We believe that the document contains a mix of AI-assisted and human-written content

30 %

AI likelihood · overall

Mixed
55% human-written 0% AI-generated
SEGMENTS · HUMAN 2 of 3
SEGMENTS · AI 0 of 3
WORD COUNT 668
PEAK AI % 53% · §1
Analyzed
Jul 23
backend: pangram/v3.3
Segments scanned
3 windows
avg 223 words each
Distribution
55 / 0%
human / AI fraction
Verdict
Mixed
Pangram v3.3

Article text · 668 words · 3 segments analyzed

Human AI-generated
§1 Mixed · 53%

I value ascdraw at $9.99 or €9.99 for a personal license. It is GPLv3 software, so payment is entirely optional. If it is useful to you, please fund its development.

Native, keyboard-first diagramming for people who think in text.

ascdraw is an effectively infinite Unicode canvas for connected lines, symbols, shapes, text, rectangular editing, layers, and TXT/JSON/PNG export. It is usable today, but its interfaces and document format are still evolving. The canvas renders at 120+ FPS, which matters more than you might think in a keyboard-first editor.

Get it Download a current nightly from GitHub Releases, or build it yourself with the Rust toolchain managed by mise: cargo build --release --locked ./target/release/ascdraw Install from a checkout instead: cargo install --path . --locked Use it ascdraw opens in Stamp mode. Numbered menus show their own keys; this table covers the less obvious shortcuts. Directions are arrow keys or h, j, k, l.

Action Key

Move direction

Draw/apply tool Ctrl + direction

Place stamp / preview line or shape Space

Select rectangle Shift + direction

Erase / move selection Alt + direction (moves when selection is expanded)

Text mode i

Continuous replace mode Return or Shift + R

Replace once r, then a character

Jump across canvas m, then direction

Clear selection Backspace

Undo / redo u / U or Ctrl/Cmd + Z / R

Copy / cut / paste Cmd + C / Ctrl/Cmd + X / Ctrl/Cmd + V

Cancel Escape, Ctrl + C, or Ctrl + G

Stamp: place symbols, arrows, fills, and blocks. Line: draw connected Unicode lines; Space starts a routed preview. Shape: draw outlined or filled rectangles. Utils: push/pull rows and columns, or pan the viewport. Files/Togls (0): load, save, export, change theme, and enable colors or layers.

Optional features:

Color: choose from 16 ANSI-style colors for new text and drawing. PNG and JSON preserve colors; TXT does not.

§2 Human · 12%

Layers: add, hide, reorder, and merge layers. Editing affects the active layer; PNG preserves the visible stack. Dark Mode: available, but less polished because I prefer and primarily use black on white.

In Line mode, Space starts a routed preview; move to route, Space commits an anchor, and Space again finishes. Backspace removes the last anchor and Escape cancels the live segment. Modifier order matters. The first chooses the action; the second changes its distance:

First held Action Add for 5 cells Add for 10 cells

Shift Select Ctrl Alt

Alt Erase Ctrl Shift

Ctrl Draw/apply tool Alt Shift

Scroll or two-finger drag to pan. Pinch or Ctrl/Cmd + scroll to zoom. Most tools also support clicking and dragging. Edit a native document in place, with normal autosaving: ascdraw drawing.json Filter mode reads plain text from stdin, opens it for interactive editing, then prints the result to stdout once the window closes. It does not touch the scratchpad: ascdraw - < input.txt > output.txt # or printf 'box\n' | ascdraw - > output.txt This also makes ascdraw usable as an external editor filter:

Editor Command

Kakoune `

Neovim :%!ascdraw -

Emacs `M-

Configure it Bundled defaults are in ascdraw.toml and theme.toml. Put overrides in $XDG_CONFIG_HOME/ascdraw/config.toml, or ~/.config/ascdraw/config.toml. Changes reload while the app is running. Run ascdraw --show-config to see the merged configuration and searched paths. Only include values you want to override: font-family = "SF Mono" font-size = 14.0 transparent-menubar = true

[jump] inactivity-ms = 500

[keys] font-scale-up = "Cmd-=" font-scale-down = "Cmd--" window-new = "Cmd-N"

[theme.default] fg = "#000000" bg = "#ffffff"

[theme.cursor-drawing] fg = "#00008b" Colors use #RRGGBB or #RRGGBBAA.

§3 Human · 9%

Theme faces and all available settings are listed in the two bundled default files linked above. Develop it cargo fmt --all -- --check cargo test --locked --quiet cargo clippy --all-targets --all-features --locked -- -D warnings OpenAI GPT-5.5 and GPT-5.6 Sol aided development. Mostly. License Copyright (C) 2026 Przemysław Alexander Kamiński vel xlii vel exlee. ascdraw is released under the GNU General Public License, version 3 or later. Commercial licenses are available where GPL terms are unsuitable; contact alexander@kaminski.se. See NOTICE for details.