CogWrite Semantic Technologies
Early beta · macOS · Apple silicon

Don't redraw it. Vectorize it.

haldraw is a diagramming app for Macs with Apple silicon. Import a scan or screenshot of an old diagram, press Vectorize, and get its boxes, text and connectors back as editable shapes. Then keep drawing: underneath is a complete, layered diagram editor that keeps everything on your own machine.

Drag the handle: a scanned data-flow diagram, and the editable drawing haldraw made from it after a few minutes of touch-up.

A scanned Level 0 data-flow diagram on haldraw's dot-grid canvas The same diagram as editable vector shapes, text and connectors
ScanVectorized

Vectorize

Old diagrams, editable again

Every organization has diagrams that survive only as scans, screenshots or photos. Redrawing them by hand is the reason they never get updated. haldraw reads the image and rebuilds it as real shapes and connectors, on a layer above the original, so you can compare, correct and carry on.

  1. Import the image

    New board From image…, drop a PNG or JPEG onto the library, or paste a screenshot with ⌘V. The image lands on a locked Reference layer that ignores clicks.

  2. Press Vectorize

    One click on the reference. haldraw sends the image to a Claude vision model using your own Anthropic API key, kept in the macOS keychain. About 15–30 seconds. This is the app's only network call.

  3. Get a Draft layer

    Shapes, text and connectors arrive on a Draft layer over the scan: process bubbles, entities, data stores, flows with their labels. Switch between Normal, Hide refs and Refs only to compare.

  4. Touch up and export

    Nudge a box, retype a label the scanner blurred, reroute a line. Hide the reference and export PNG, SVG or a .haldraw board. Or keep the scan underneath as provenance.

haldraw with the scanned context diagram and the vectorized draft shown together; the Board panel lists Drawing, Draft and Reference layers
Right after Vectorize: the draft sits over the scan, and the Board panel shows the Reference and Draft layers with their object counts.

What Vectorize reads

  • Rectangles, squares, ellipses and circles, diamonds, 3D boxes, data stores and collection boxes, each as that kind of shape.
  • Text, with its size and color fitted to the box it occupies; a process number on a bubble becomes the first line of its label.
  • Connectors with labels and head styles, attached at the connection slot where each end meets its shape, so several flows between the same two shapes stay apart.
  • Rotation: a tilted shape comes back tilted, not boxed.
  • Labels broken over two lines are joined; hyphenated words are mended.

What to expect: a draft, not a finished drawing. On the three decades-old diagrams shown on this page, a few minutes of editing each took the draft to the finished versions.

Scanned context diagram
Finished vector context diagram

Context diagram

Nine external entities around one process, nineteen labeled flows. The scribbled rings became clean circles; the handwritten notes became typed labels.

Scanned Level 0 diagram
Vectorized Level 0 diagram

Level 0 data-flow diagram

Eight numbered processes, eight data stores, twenty-seven flows. Flow labels land where the original had them.

Scanned Level 1 diagram
Finished vector Level 1 diagram

Level 1, one process expanded

A denser page with curved flows and open-sided data stores. The cleaned-up drawing exports crisp at any size, with the scan still on its own layer.

See it in motion

Three diagrams go from scan to editable drawing in a 2:43 demo: import, Vectorize, the layers, the touch-ups and the export.

Drawing

And a full diagram editor for everything new

Vectorize gets the attention, but most of the time you are simply drawing. haldraw is an infinite-canvas editor in the spirit of Excalidraw and tldraw, built as a Mac app: shapes that know what they are, connectors that stay attached, named layers, and a properties panel for everything selected.

haldraw's toolbar: Library, fourteen tools, undo and redo, grid, snap, zoom, theme, shortcuts, settings and Export
  1. ← Libraryprojects and boards
  2. SelectV
  3. RectangleR
  4. Square, locked ratioS
  5. Ellipse / circleO
  6. Diamond (decision)D
  7. 3D box (external entity)B
  8. Data storeX
  9. CollectionK
  10. LineL
  11. ArrowA
  12. TextT
  13. Connector, snaps to shapesC
  14. Pen, freehand inkP
  15. Icon libraryI
  16. Import image file⌘⇧I
  17. Undo / Redo⌘Z
  18. Dot grid · Snap to gridtoggles
  19. Zoom out · 100 % · Zoom in⌘− ⌘0 ⌘=
  20. Light / dark themetoggle
  21. Shortcut overlay?
  22. Settings⌘,
  23. Export ▾PNG · SVG · .haldraw
The toolbar, left to right. Every tool has a single-key shortcut; the center shows the project, board and current layer.

Shapes that know their kind

Rectangle, square, ellipse, diamond, 3D box, data store, collection, line, arrow, text and ink. All resizable and rotatable through 360°. The Shape row turns one kind into another in place, keeping size, style, text and connections.

Connectors that stay attached

Sixteen connection slots per shape, or Auto. Straight, right-angle or curved routing with a draggable elbow or midpoint. A head style for each end: arrow, open arrow, dot, diamond, crow's foot. Labels are draggable pills.

Text everywhere

Free text at any angle, or a centered label inside any shape that wraps as you type. Installed fonts by name, sizes 4–999, weight, alignment and vertical alignment. Exports wrap exactly as the canvas does.

Layers

Named layers with show/hide, lock, solo and reorder. Stacking within a layer with ⌘] and ⌘[; move a selection between layers with ⌘⌥]. Hidden layers stay out of exports.

Icons, images and ink

The full Lucide icon library with search; icons are movable, resizable, rotatable and recolorable. Paste a screenshot or drop image files, stored once and deduplicated. The pen draws smoothed freehand strokes.

Styles and palette

Fill, stroke color, width and dash, opacity and corner radius per shape. The palette is yours: right-click a swatch to replace it through the macOS Colors panel, app-wide. Each board has its own paper color.

Select, align, distribute

Marquee and shift-click selection, groups, copy, cut, paste and duplicate, select all. Six alignment buttons, distribute with three or more. Shift-resize scales text and stroke widths with the boxes.

Find anything

⌘K jumps to any board or project by fuzzy search. ⌘F finds shapes and line labels by text and steps through them. Tab walks every object in stacking order, panning it into view.

Canvas comforts

Infinite canvas, pan with Space-drag, zoom to fit or to 100 %, a dot grid with snap, a minimap that recenters on click, undo and redo, a dark or light theme, and a shortcut overlay on ?.

First Drawing: a flowchart with Start, Some Process, Decision?, Some Other Option, The End, an Off Page Connector and a data store
Drawn from scratch: the board drawing 1, exported as a PNG with its solid paper color. Rounded rectangles, a diamond, an ellipse, a data store, curved and right-angle connectors, free text.
The same board open in haldraw's light theme with the Board panel showing background swatches and layers, and the minimap at bottom right
The same board in the editor, light theme. Nothing selected, so the panel shows the board: paper color, layers, and the minimap in the corner.
A selected connector on the vectorized context diagram, with the line panel showing anchors, routing, heads, layer, color, stroke and label controls
A connector selected on the resurrected context diagram, dark theme. The line panel: anchor slots for each end, routing, head styles, layer, color, stroke width and style, and the label with its own font and size.

Keyboard

Shortcuts for the whole app

Press ? anywhere in haldraw for the same list. Nearly everything is reachable without leaving the keyboard.

Tools

SelectV
Rectangle / Square / Ellipse / DiamondR S O D
3D box / Data store / CollectionB X K
Line / Arrow / ConnectorL A C
Text / Pen / Icon libraryT P I
Draw a line without snapping to shapes⌥-drag

Canvas

PanSpace + drag
Zoom⌘ + scroll · ⌘= ⌘−
Reset zoom / Zoom to fit⌘0 ⌘1
Find text on this board⌘F
Go to any board or project⌘K
Shortcut overlay?

Edit

Undo / Redo⌘Z ⌘⇧Z
Copy / Paste / Cut / Duplicate⌘C ⌘V ⌘X ⌘D
Duplicate the whole board⌘⇧D
Group / Ungroup · select inside a group⌘G ⌘⇧G · ⌥-click
Select all · next / previous object⌘A · Tab ⇧Tab
Nudge 1 px (10 px)Arrows (+ ⇧)
Edit a shape's textDouble-click · ⌘↩ commits
Delete / Deselect⌫ / Esc

Layers, files and settings

New layer⌘⇧L
Bring forward / Send backward⌘] ⌘[
Bring to front / Send to back⌘⇧] ⌘⇧[
Move selection up / down a layer⌘⌥] ⌘⌥[
Paste screenshot · Import image⌘V · ⌘⇧I
Import a .haldraw board⌘⇧O
Export PNG⌘E
Settings⌘,
Open a shape's link⌘-click

Local first

Your work stays on your Mac

No account, no cloud, no subscription. Every project, board and image lives in one SQLite file in your Library folder, saved on every change. The only time haldraw talks to the network is when you press Vectorize, and then it talks to Anthropic with your own key.

haldraw's library: projects in the sidebar and board cards with thumbnails in the selected project
The library: projects on the left, boards as cards with thumbnails rendered from the drawing itself, or as a list. ⌘K jumps anywhere.
  • Projects and boards, unlimited, renameable, with thumbnails and a grid or list view. Autosave on every change; a board duplicates with one keystroke.
  • Daily backups of the database, newest fourteen kept, plus Back up now and Reveal in Finder in Settings. Restoring is copying one file.
  • Images stored once, deduplicated by content hash, however many boards use them.
  • Portable boards. A .haldraw file carries a whole board, reference images included, to another Mac or another person. Import it from the library or drop it on the grid.
  • Your API key stays in the macOS keychain. Settings shows the one command that puts it there and whether it is present; haldraw never writes it anywhere else.

Export what you need

  • PNG, transparent for overlaying on slides and documents (⌘E).
  • PNG, solid with the board's paper color, like the First Drawing image above.
  • SVG, vector and editable in Illustrator, Affinity, Inkscape or a browser; text wraps as on the canvas.
  • haldraw board, portable JSON that re-imports anywhere.
  • Include reference images: leave the scan out of a PNG or SVG, or keep it as provenance.
The Export menu: Include reference images toggle, PNG transparent, PNG solid background, SVG, haldraw board
The Export menu. Hidden layers are always left out.

Early beta

Where haldraw is today

Version 0.9.23, September 2026. It is used daily for real diagrams, and it is still a beta: built for a small circle of users, changing weekly, with rough edges we would rather tell you about than have you find.

Solid today

  • Drawing, connectors, layers, styles, find, undo, export: the everyday editor.
  • Vectorize on scans of printed box-and-arrow diagrams; flowcharts and data-flow diagrams are the tested cases.
  • Large scans, several thousand pixels across, as references; they are downsampled for display, not for Vectorize.
  • Autosave, daily backups, portable .haldraw files.
  • Dark and light themes; the macOS Colors panel for any color.

Not yet, or rough

  • macOS on Apple silicon only. The build is installed by hand from a DMG and is not yet signed, so macOS asks before the first launch.
  • Vectorize needs your own Anthropic API key and is billed to it by Anthropic; results on hand-drawn sketches and on other tools' renderings are less tested than on scans of printed diagrams.
  • Single user, one machine at a time. No shared boards or live collaboration.
  • No templates or stencils, presentation mode, Markdown in text, or outline view yet. Grid spacing is fixed.
  • Connector auto-routing is simple; it does not yet route around shapes.

To run it you need an Apple silicon Mac. To vectorize you also need an Anthropic API key; drawing needs nothing else.

Interested?

Try haldraw in the beta

If you would like to try haldraw, have a drawer of old diagrams to bring back, or want to talk about what it could do for your team, use the contact form and mention haldraw. We will reply with a build and a short setup note.

Tell us which Mac you use and what kind of diagrams you have. Scans, screenshots and photos of whiteboards are all fair game.

Open the contact form

Mention haldraw in the message so it reaches the right desk.