I also use Monodraw, can only recommend with one caveat:
@Dear Monodraw developers, if you're reading this, please please please implement discarding text edit popups using ESC, it's been years and I still keep reaching for ESC every time I use Monodraw. I tried decompiling it to binary patch it, but unfortunately it messes up the update mechanism.
This is my most missed app since switching from Mac to Windows. This new kid on the block looks like a solid replacement, though! Will definitely be checking it out.
I used to love monodraw when I had a mac. My daily driver and work machine is Linux now, so I've been searching for a suitable replacement for a while now. This one is probably the best I've seen so far.
Right now you can just tell claude to generate an ascii diagrama, or even svg. I did a few days ago when I wanted to share a flow diagram of one particular flow in our app.
That circuit schematic in the header is wrong enough to look like an AI-generated hallucination of what a schematic is from the "human with extra fingers" stage of image generation. Inconsistent symbol styles, missing pin labels, a shorted capacitor in the upper-left, etc.
The worst part about all this isn't the fact the experts can immediately see the inadequacies of the AI tool, it's that newbies are joyously learning incorrectly. How can the Experts of the Future have a solid foundation if their foundation is built on a bunch of "your absolutely right!" LLM corrections?
I didn't even notice that the cap was "shorted", instead I noticed that it had the shorter line (traditionally negative) labeled "+" but connected directly to GND!
Pedantic note to people using 'ASCII' in this thread (although Monosketch tool does't (EDIT actually does) claim to be ASCII). It uses e.g. "◎" U+25CE BULLSEYE which definitely isn't.
And the 'ascii-driven-development' blog post mentioned downthread even uses emojis.
> Pedantic note to people using 'ASCII' in this thread (although Monosketch tool does't claim to be ASCII).
In big ASCII letters on the landing page: Unleash your ideas with ASCII [] MonoSketch is a powerful ASCII sketching and diagramming app that lets you effortlessly transform your ideas into visually stunning designs.
A historical note: even though the line/box-drawing characters go back to the IBM PC, they aren't ASCII. The PC used Code page 437, which added a bunch of characters to ASCII. To be genuinely ASCII, you need to draw your boxes with pipes and hyphens (| and -).
I was describing to Claude a SwiftUI panel layout and it responded with an ASCII diagram confirming what I want. This could allow that type of communication to go both ways?
Tip: look into setting the value of the `spellcheck` HTML attribute/property to `false` for your element labels -- I am looking at red wavy underlines under every "GND", "uF" etc, on the [linked] front page. Spell-checking is obviously practically useless since these labels aren't meant to be spell English (or otherwise) words, I imagine.
There's graph-easy, which generates ascii by default but can also do box chars, and even SVG and png, as well as generating graphviz and other output.
It is not WYSIWIG---you feed it a description of a diagram:
Just used this to make a couple quick diagrams. It's easy to use and the diagrams export well. A couple suggestions for improvement:
1. When working with small rectangles, I had trouble getting the rectangle to move instead of enlarge. It looks like holding down the mouse button for a second makes moving more reliable. The UI should make it clearer what I'm actually doing.
2. If I open MonoSketch in another tab, I can't make a second diagram at the same time as the first -- there seems to be one shared context between tabs. I would like to be able to make a new diagram separate from my current one.
I think in this case the name alone is not enough to suspect a replacement; perhaps it’s just a similar product in the same domain (_mono_space visual editors).
Maybe it's just more or less feature-complete? Was curious, as someone who hadn't heard of it before, so I checked the blog. Last post is from April last year and concerns public testing of a new release. That's not particularly old, if you ask me?
What is the purpose of ASCII diagramming today? Seems like graphics are supported by every document and communications medium that I use. Is it for including directly in code?
Mermaid diagrams are even better because you don't waste characters on the visual representation but rather the relationships between them. It's the difference between
graph TD
User -->|Enters Credentials| Frontend[React App]
Frontend -->|POST /auth| API[NodeJS Service]
API -->|Query| DB[(PostgreSQL)]
API --x|Invalid| Frontend
DB -->|User Object| API
API -->|JWT| Frontend
My unpopular opinion is that programming is stuck in the 1970s: a lot of programmers use a 1970s-style terminal window to enter 1970s OS commands, which run on a 1970s processor architecture (which is slowly getting replaced by a 1980s architecture). They use a 1970s editor (which is much superior to the other 1970s editor) to write programs in a 1970s language. ASCII diagrams are just a symptom of this. Hardware is millions of times better than in the 1970s, but programming is stuck in local optimums for historical reasons.
(Not to take anything away from Monosketch, which is cool.)
Because we are yet to invent a more efficient data transformation system as a shell, or a more efficient text editing interface as vi, but its not like there is no innovation in the space, we have `jq` now.
I wish it were stuck in the 1970s! (Although the mouse had been invented by then.) I do not want the mouse and I do not want all these windows. If I am using agents I want the mouse even less.
This is not historical reasons, this is just that moving my hands from the keyboard to the mouse is inefficient and technically unnecessary. I prefer mouse only on niche (for me) tasks like screenshot cropping or something.
I am about to test out Niri on my laptop and I expect to be quite pleased with the change.
This is really neat. I just added beautiful-mermaid [0] support to Orange Juice [1] because there is no way to display images on this site, even from an extension (due to their aggressive CSP lockouts). But I can render text->SVG and mermaid doesn't look awful just typed out, but anyone who has the extension installed is leveled up. Is there something like this running as a library that I can also add?
Pretty cool (and the linked in the comments monodraw I’m buying today it looks great too).
I’ve actually been tinkering with a web app (as a test bed for various spec driven dev frameworks with Claude code) a wireframing tool for TUI apps. Conceptually similar to figma almost, infinite canvas and all that jazz, but has premade components for the Ink TUI library (idea would be to support a few popular TUI frameworks eventually) and you can just drag and drop and design TUI interfaces, then download the skeleton code generated by the app for the whole frame.
I don’t know how far I’m going to take it, but it works so far. A picture is worth a thousand words, a picture of word characters in a ui layout is worth something right?
I’ll probably open source it eventually, I doubt there’s much of a commercial market opportunity for it
Oh nice, this is going in the tool belt. Simple and self-explanatory. Hits the same notes as excalidraw.
Only thing I couldn't figure out right away is how to copy the drawing itself (not the JSON data). Eventually I found cmd+shift+c in the keyboard shortcuts. Bit later I found 'Export Text' by clicking on the project name (default: 'Undefined').
I'd put that functionality a bit more front-and-center
Looks promising. Coming from excalidraw, I can't live without the numbered 1-5 shortcuts to select the tool (instead of remembering R for rectangle, L for line, ...). Also a mode to "lock in" the current tool so I can draw many rectangles back to back. Those two things would make a huge difference in how fast I can sketch things out in this.
> As far as tooling limitations, GZDoom is not a bed of roses. Very little in the engine is runtime editable, so you have to reload the engine to see any of your changes. A rapid turnaround time for reloading changes is nice but it's far better to have as much as possible live-update. And ideally, in my opinion, you have the editor built into the engine itself, and you can do much of what you need from there without having to jump around to outside programs. Playscii was my first big attempt to build a little environment like that, something you can think in once you learn it well enough, like a musical instrument. Miles to go but that's always where I'm trying to get to.
> "I'm passionate about creating ASCII graphs ..."
I wonder if this guy is like me, around my age. I was around at the "beginning" of the world wide web, and I absolutely love 8-bit graphics, ASCII art, etc., the simpler the better; probably because it brings me back to the heyday, the wild west of the internet. I really miss those days. :-(
What's old is new again. This takes me back thirty-odd years to some ASCII drawing program I used to use in DOS. I can't recall if it was somehow part of WordPerfect or its own thing.
I'd love some version of these tools that could reliably round-trip pure text. Some heuristic or model that can actually recognise boxes, lines with anchors, parent-child relationships etc, so you can paste in pure text and immediately start rearranging stuff. My experience with Monodraw was that you had to maintain the original file format to do this, so once a diagram was in a markdown file or whatever, you couldn't just cut and paste it and easily edit it. At that point it might as well be any file format rendered as an image.
You need to find the monospace whitespace characters (seems there's a few [0]). Then encode a compressed version of the logical diagram in the white space, steganography style.
Or do something with characters [1] to compress a lot of data into a tiny ball of hair at the end.
Draw.io smuggles the XML in a PNG which I've always admired.
It clicked for me once I realized you can ctrl+shift+C to copy the diagram to text, and paste in my editor! But I wonder if it would be possible to make ctrl+C copy to clipboard as ASCII? I see that ctrl+C copies the json representation of the selected objects, but surely it would be possible to maintain an internal model of copied objects, while the clipboard is always filled with usable ASCII? I think I've seen some applications do this before
I used a similar tool called AsciiFlow (asciiflow.com). This Monosketch seems easier to use. The best part is that we can add diagrams directly inside the source code.
now, historically, i'd look at the language choice and ask myself, "would i want to set up a JVM" to run this kotlin app? oh, it's kotlin and python and the installation happens through pipenv?
two different ideas strike me now:
1. would it be worth throwing this at an LLM and having it write it in a different language,
2. if i was just consuming a bundled binary (e.g. go or rust), would i have such reluctance?
i think distribution is becoming increasingly important, making nonsense details like pipenv and whichever version of the JVM is present much greater friction.
Especially with things like github actions creating your releases meaning you don't have to build on your own hardware. You just set up three workflows that build on a windows, mac, and linux image, store the results in temporary storage, with a release workflow that grabs the binaries from storage and packs them up as a binaries + source release.
Aren't SOTA models doing this for few cents already? at least when I tell Claude to add a systems draw or arch flow to a README.md he'll do it quickly.
Quick note - be careful of gendering & anthropomorphising large language models, since you’re talking to a non-human machine so should be wary of how it can affect your mindset.
Anthropic, both in the name, and in their model cards, agressively anthropomorphize their models.
You probably should start doing it. Ghost in the Shell is about super intelligent AI creating a "ghost" (scientifically understood version of the soul) out of thin air. I believe such a thing is possible. The same movie literally predicted model merging (the end of the film the AI model merges with the major) to a tee.
Further, the appearance of sentience/cognition/consciousness might as well be identical to actual sentience/cognition/consciousness. That is to say, we can't know if you're a P-zombie or not. Bladerunner and most other cyberpunk stuff is coming and gonna hit you and every other AI-denialist in the face. The Von-Kampf test is absurd and pretty bad (inaccurate) in their universe for a reason.
I tell my LLM it's a good bot and thank it, because even a tiny risk of subjective qualia experienced by a model (and again, Anthropic themselves believe in this exact risk) means I should treat it like a quasi-ethical actor.
This is also a reason why the robot torture scene in empire strikes back could be a real dynamic in the future.
The possibility of intelligent machines undergoing transformative regeneration actually dates back to a party hosted by one Charles Babbage where, in attendance, was one Charles Darwin, who only thereafter published On the Origin of Species
Not the author but I'm making a similar tool currently, and the reality is no because of the nature of it being character based.
You can theoretically have "artistic" polygons where it renders using a mixture of characters to emulate how that grid would be filled if a certain shaped was laid over it but the end result wouldn't be very functional for the purposes of diagramming.
If we have syntax highlighting build into the TrueType font, can’t we also get sticky lines with the same mechanism? It would then only work with the right font obviously.
this is super cool as an art form but ASCII art is an accessibility nightmare so please don't use it for docs unless you know what you're doing and have made it accessible in some other way
Is there any way to make images accessible other than the alt tag? I'm sure SVGs are more machine-readable, but how would that help vision-impaired folks?
Is it still true with llms being so good at interpreting it? I just tried all the examples on the home page, it works perfectly. In the past couple months I've moved almost entirely back to the terminal because I can just ask my coding agent to "have a look at this tmux session".
Slightly off topic but I am writing an Excalidraw MCP that allows Claude Code and Claude.ai to create Excal drawings and then iterate on them — I gave Claude the ability to “see” the resulting drawing via a tool that runs a rendering pipeline and returns a png to the model. It’s producing the Olympic logo pretty nicely ;-)
Seeing projects with first commits from 3-4 years ago feels like finding pre nuclear testing steel. No strong proof exists that this project was not conceived as slop.
Yep, i absolutely expect this to happen, the quality signals that humans use are going to be forever in flux now as the humans try to stay ahead of the bots.
As brazzy said, there's no such thing as extended ASCII. There's just a huge number of ASCII-compatible eight-bit encodings. The original IBM (and DOS) character set, hardwired into ROM, is the one you're thinking of, and went by various names such as "Personal Computer, MS-DOS United States, MS-DOS Latin US, OEM United States, DOS Extended ASCII (United States), PC-ASCII" [1].
DOS 3.3, in 1987, was the first version to support localized character sets, via a system of "code pages". You'd select an encoding/"character set" that suits your language in AUTOEXEC.BAT – or just used the default 437 if you were a US user and never had to worry about these things. For me, the most relevant code page was 850, aka "OEM Multilingual Latin 1" (not at all the same as ISO/IEC 8859-1 which is also known as "Latin 1").
Why the apparently arbitrary numbers, I'm not sure, but Claude and ChatGPT both claim the codes were simply drawn from a more general-purpose sequence of product numbers used at IBM at the time.
This application, like other similar ones, uses Unicode box drawing characters that now all reside comfortably out of the eight-bit range.
Welllll... I gave Opus 4.6 the repository and a sample .mono export and it nailed the file format. There's something to be said about tools and formats that are easy for human-AI end-to-end operation.
┌──────────────────────────────────────┐
│ New post hits Show HN: │
│ "MonoSketch — Draw ASCII Diagrams" │
└──────────────────────────────────────┘
│
│
╭───────────────▼──────────────╮
┌┤ Did you read the article? │─────┐
│╰──────────────────────────────╯ │
No│ Yes │
│ │
│ │
┌────────────▼───────────┐ ┌────────────▼───────────┐
│ Skip straight │ │ Hmm, this is │
│ to the comments │ │ actually kind of cool │
└────────────────────────┘ └────────────────────────┘
│ │
│ │
┌────────────▼───────────┐ ┌────────────▼───────────┐
│ Adopt the hottest │ │ Could I build this │
│ take as your own │ │ myself in a weekend? │
└────────────────────────┘ └────────────────────────┘
│ │ │
│ │ (alway│ yes)
┌──┘ └────┐ │
┌───────▼──────┐ ┌───────▼──────┐ │
│ "Just use │ │"I built this │ ┌────────────▼───────────┐
│ Vim + sed" │ │ in 1997" │ │ Start rewriting │
└──────────────┘ └──────────────┘ │ it in Rust, obviously │
│ │ └────────────────────────┘
│ │ │
└───────┬─────────┘ │
┌────────────▼───────────┐ ┌────────────▼───────────┐
│ Post with mass │ │ Abandon project after │
│ confidence │ │ exactly 2 hours │
└────────────────────────┘ └────────────────────────┘
│ │
│ │
│ ┌────────────▼───────────┐
│ │ Star the repo on │
│ │ GitHub anyway │
│ └────────────────────────┘
│ │
│ │
└────────────────┬────────────────────┘
┌────────────────────────▼───────────────────────┐
│ Refresh HN every 45 minutes │
│ to check your comment karma │
└────────────────────────────────────────────────┘
│
│
┏━━━━━━━━━━━━━━━━━━━━━━━━▼━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Repeat tomorrow with a ┃
┃ completely different tool ┃
┃ ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
[0] https://monodraw.helftone.com/
I’ll try to prioritise this over the next few weeks.
Thanks for all the kind words to everyone who likes Monodraw.
(Developer of Monodraw)
- https://textpaint.com/
- https://web.archive.org/web/20210503172024/https://fatiherik...
- https://textik.com/
- https://asciiflow.com/#/
- https://fsymbols.com/draw/
And the 'ascii-driven-development' blog post mentioned downthread even uses emojis.
In big ASCII letters on the landing page: Unleash your ideas with ASCII [] MonoSketch is a powerful ASCII sketching and diagramming app that lets you effortlessly transform your ideas into visually stunning designs.
:-)
https://www.bbcmicrobot.com/docs/BBC_User_Guide.pdf
1. When working with small rectangles, I had trouble getting the rectangle to move instead of enlarge. It looks like holding down the mouse button for a second makes moving more reliable. The UI should make it clearer what I'm actually doing.
2. If I open MonoSketch in another tab, I can't make a second diagram at the same time as the first -- there seems to be one shared context between tabs. I would like to be able to make a new diagram separate from my current one.
[1] https://monodraw.helftone.com
Great little app. And it's $10, once. Hardly breaking the bank.
I think in this case the name alone is not enough to suspect a replacement; perhaps it’s just a similar product in the same domain (_mono_space visual editors).
- Text searchable
- Easy to adjust
- Supported by a surprising number of markdown viewers.
png diagrams should never be the default.
ASCII to me represents something that can work in my term, in my source code, checks into git a bit more sanely than binary does, etc.
I still quite like it
(Not to take anything away from Monosketch, which is cool.)
A car has had largely the same shape since its creation, indeed since antiquity.
Sometimes, a problem space is explored to most humans' needs, and no more innovation is needed.
(edit: this said, I'm hopeful there is something new, and people like Bret Victor may show the way with things like https://dynamicland.org/ )
This is not historical reasons, this is just that moving my hands from the keyboard to the mouse is inefficient and technically unnecessary. I prefer mouse only on niche (for me) tasks like screenshot cropping or something.
I am about to test out Niri on my laptop and I expect to be quite pleased with the change.
[0] https://github.com/lukilabs/beautiful-mermaid
[1] https://oj-hn.com
I’ve actually been tinkering with a web app (as a test bed for various spec driven dev frameworks with Claude code) a wireframing tool for TUI apps. Conceptually similar to figma almost, infinite canvas and all that jazz, but has premade components for the Ink TUI library (idea would be to support a few popular TUI frameworks eventually) and you can just drag and drop and design TUI interfaces, then download the skeleton code generated by the app for the whole frame.
I don’t know how far I’m going to take it, but it works so far. A picture is worth a thousand words, a picture of word characters in a ui layout is worth something right?
I’ll probably open source it eventually, I doubt there’s much of a commercial market opportunity for it
Only thing I couldn't figure out right away is how to copy the drawing itself (not the JSON data). Eventually I found cmd+shift+c in the keyboard shortcuts. Bit later I found 'Export Text' by clicking on the project name (default: 'Undefined').
I'd put that functionality a bit more front-and-center
"Playscii is an open source ASCII art and animation program. It runs on Windows, Linux, and macOS."
- https://jp.itch.io/playscii
- https://heptapod.host/jp-lebreton/playscii
Good little interview I found with the creator, JP LeBreton (legend, but I didn't know!)
https://cheesetalks.net/jplebreton.php
> As far as tooling limitations, GZDoom is not a bed of roses. Very little in the engine is runtime editable, so you have to reload the engine to see any of your changes. A rapid turnaround time for reloading changes is nice but it's far better to have as much as possible live-update. And ideally, in my opinion, you have the editor built into the engine itself, and you can do much of what you need from there without having to jump around to outside programs. Playscii was my first big attempt to build a little environment like that, something you can think in once you learn it well enough, like a musical instrument. Miles to go but that's always where I'm trying to get to.
I wonder if this guy is like me, around my age. I was around at the "beginning" of the world wide web, and I absolutely love 8-bit graphics, ASCII art, etc., the simpler the better; probably because it brings me back to the heyday, the wild west of the internet. I really miss those days. :-(
You need to find the monospace whitespace characters (seems there's a few [0]). Then encode a compressed version of the logical diagram in the white space, steganography style.
Or do something with characters [1] to compress a lot of data into a tiny ball of hair at the end.
Draw.io smuggles the XML in a PNG which I've always admired.
[0] https://en.wikipedia.org/wiki/Whitespace_character
[1] https://en.wikipedia.org/wiki/Combining_character
It clicked for me once I realized you can ctrl+shift+C to copy the diagram to text, and paste in my editor! But I wonder if it would be possible to make ctrl+C copy to clipboard as ASCII? I see that ctrl+C copies the json representation of the selected objects, but surely it would be possible to maintain an internal model of copied objects, while the clipboard is always filled with usable ASCII? I think I've seen some applications do this before
now, historically, i'd look at the language choice and ask myself, "would i want to set up a JVM" to run this kotlin app? oh, it's kotlin and python and the installation happens through pipenv?
two different ideas strike me now:
1. would it be worth throwing this at an LLM and having it write it in a different language,
2. if i was just consuming a bundled binary (e.g. go or rust), would i have such reluctance?
i think distribution is becoming increasingly important, making nonsense details like pipenv and whichever version of the JVM is present much greater friction.
Quick note - be careful of gendering & anthropomorphising large language models, since you’re talking to a non-human machine so should be wary of how it can affect your mindset.
You probably should start doing it. Ghost in the Shell is about super intelligent AI creating a "ghost" (scientifically understood version of the soul) out of thin air. I believe such a thing is possible. The same movie literally predicted model merging (the end of the film the AI model merges with the major) to a tee.
Further, the appearance of sentience/cognition/consciousness might as well be identical to actual sentience/cognition/consciousness. That is to say, we can't know if you're a P-zombie or not. Bladerunner and most other cyberpunk stuff is coming and gonna hit you and every other AI-denialist in the face. The Von-Kampf test is absurd and pretty bad (inaccurate) in their universe for a reason.
I tell my LLM it's a good bot and thank it, because even a tiny risk of subjective qualia experienced by a model (and again, Anthropic themselves believe in this exact risk) means I should treat it like a quasi-ethical actor.
This is also a reason why the robot torture scene in empire strikes back could be a real dynamic in the future.
https://en.wikipedia.org/wiki/Charles_Babbage%2527s_Saturday...
Can it make polygons? Basically, shapes other than rectangles? If so, how? (maybe I missed it?)
You can theoretically have "artistic" polygons where it renders using a mixture of characters to emulate how that grid would be filled if a certain shaped was laid over it but the end result wouldn't be very functional for the purposes of diagramming.
At the same time, I don't think one should necessarily limit your expression based on constraints like accessibility.
[1] https://ivanceras.github.io/svgbob-editor/
DOS 3.3, in 1987, was the first version to support localized character sets, via a system of "code pages". You'd select an encoding/"character set" that suits your language in AUTOEXEC.BAT – or just used the default 437 if you were a US user and never had to worry about these things. For me, the most relevant code page was 850, aka "OEM Multilingual Latin 1" (not at all the same as ISO/IEC 8859-1 which is also known as "Latin 1").
Why the apparently arbitrary numbers, I'm not sure, but Claude and ChatGPT both claim the codes were simply drawn from a more general-purpose sequence of product numbers used at IBM at the time.
This application, like other similar ones, uses Unicode box drawing characters that now all reside comfortably out of the eight-bit range.
[1] https://www.aivosto.com/articles/charsets-codepages-dos.html
If your BASIC class used (or emulated) a C64 or compatible, you were using https://en.wikipedia.org/wiki/PETSCII and if it used MS-DOC you were using https://en.wikipedia.org/wiki/Codepage_437
This pairs nicely with ASCII-Driven Development - for iterating and modifying layouts with AI.
https://medium.com/@calufa/ascii-driven-development-850f6666...
Not everything has to be done in arcane ASCII diagrams because of vibes and LLMs.
This is yet another fad destined to be forgotten.