What Is ASCII Diagram?
ASCII Diagram is a diagram editor for people who want the speed of a visual tool without giving up ownership of the source.
Instead of storing your work in an opaque canvas blob, ASCII Diagram keeps a structured .asciid file as the canonical document. The app reads and edits that file, and it can also render plain ASCII output that you can paste into docs, issues, READMEs, and PR comments.
Think of it as a serious text-adjacent diagram workspace: visual editing on top of a durable file.
What the app is built for
ASCII Diagram is built around a small, practical object model:
- boxes
- text blocks
- arrows
- groups
- relations that keep arrows attached while objects move
That makes it useful for:
- architecture sketches
- data flow diagrams
- API interaction notes
- README diagrams
- quick planning boards that still belong in Git
file > app
Most diagram tools make the app canonical and the export incidental.
ASCII Diagram flips that around. Your file is canonical. The app is a fast editor, renderer, and exporter for that file.
That gives you a few guarantees:
- your diagram source stays inspectable outside the app
- Git diffs and backups work on real files
- rendered ASCII is easy to move into other tools
- if the UI changes, the source still belongs to you
Core principles
- Structured source, text-friendly output. The
.asciidfile is structured JSON, while the rendered result can be copied as plain ASCII. - Infinite canvas. Objects live on an unbounded character grid instead of inside a fixed page.
- Local-first. Open, edit, and save files directly in the browser where supported.
- Reviewable changes. Diagrams can live beside code and docs instead of outside them.
- No lock-in. The source file is ordinary data you can inspect with any editor.
What you do in ASCII Diagram
- Create or open a diagram. Start with an empty file or load an existing
.asciiddocument. - Draw on the grid. Add boxes, text, and arrows. Resize, connect, route, and group them.
- Save or export. Keep the
.asciidfile as source, or copy the rendered ASCII wherever you need it.