futuRe office labs

§3 log

DAGEdit, Now in Clojure

FROMNeh Thalggu FILED2026-11-06 PROJECTKeyboard DAG Editor

A quick update on the keyboard DAG editor.

The first version was a JavaScript experiment in the browser. I've now rewritten it in Clojure. The main version is a TUI: it runs in the terminal, edits a graph saved as a .json file, and opens a node's details in your $EDITOR.

The editor itself is written once, as shared Clojure / ClojureScript code that draws the screen as a grid of characters. The terminal version prints that grid. And the same code, compiled to JavaScript, is the new web version, which looks just like the terminal.

DAGEdit in the browser, with the Graphviz view pinned on the right

The web version has one thing the terminal doesn't: a Graphviz drawing of the DAG. Ctrl+P pops it up, and P pins it, so the editor is on the left and the graph is on the right, redrawn as you type. From there you can download the graph as SVG, PNG, DOT or Cypher.

Your graph is saved in the browser as you go. Ctrl+S downloads it as a .json file, and Alt+O opens a .json or a Graphviz .dot file.

Some of the keys have changed since the first post:

Key What it does
Ctrl+F fork: a new connected node in the next column
Ctrl+Y, then Ctrl+V copy a node's output, and paste it as an input on another node (a merge)
Ctrl+K delete a node, joining up the nodes either side
Ctrl+E the connections palette

F1 lists them all.

Try it here: DAGEdit.