Drag from one node to another, name the edge — operates, member_of, cites, anything you write.
Connect the dots you've been holding in your head.
Grapher gives shape to the things you track — leads, papers, products, ideas, newsletters, scientific authors, anything that connects. Drawn by you, extended by Claude Code, audited by default.
Drag nodes. Connect them. See it work.
Below is a live, browser-only canvas pre-seeded with a real network. Up to 32 nodes. Everything stays on your machine.
The same graph, drawn by hand and operated by agent.
- · Drag nodes, draw labeled edges, see the whole network in one glance.
- · Click any two entities to read the shortest path between them.
- · Per-entity labels and dates, with a compact card mode for dense graphs.
- · Color-by-kind, auto-layouts, a nested-list sidebar for tree thinking.
- · Free-form
kindstrings — agents introduce categories without a migration. - · JSONB
custom_dataescape hatch on every entity. - · Per-field audit trail via django-simple-history — every change is attributed.
- · Designed for token-gated programmatic access alongside the human UI.
“A graph that an agent can write to and a human can read back — that's the whole product.”Design principle · Grapher
An agent-readable schema, not an agent afterthought.
Most tools bolt an API on as an export channel. Grapher's data model was shaped from the start so an agent can extend, audit, and operate the canvas with the same fidelity a human gets in the UI.
- Schema-first by design
kindis a free-form string, not an enum. An agent can introduce ‘newsletter’ or ‘scientific-author’ tonight without a migration tomorrow. - Structured extension built in
Every entity carries a JSONB
custom_datacolumn. Agents extend the schema in place without breaking the UI rendering. - Audit-trail per field
Every change is attributed via django-simple-history. Reviewing an agent's work is a built-in workflow, not a custom integration.
{
"id": 142,
"kind": "scientific-author",
"name": "K. Hopper",
"website": "https://example.org/khopper",
"labels": ["nasa", "compilers", "follow-up"],
"custom_date": "2026-04-12",
"custom_data": {
"orcid": "0000-0001-0000-0000",
"h_index": 38
},
"position_x": 220,
"position_y": 140,
"created_at": "2026-06-16T11:02:00Z",
"updated_at": "2026-06-16T18:55:21Z"
}A first-class HTTP API for agents is on the roadmap. The data model is already shaped for it.
The canvas is the whole product.
Shift-click any two entities. The canvas highlights the path and counts the edges between them.
Every change to every field is captured. See who edited what, when, and what it used to say.
Free-form labels on every entity. An optional custom date for follow-ups, deadlines, or first contact.
One click to tidy. Useful when the graph grows beyond what you can pan to gracefully.
Collapse any node to its essentials — kind, name, labels, date. Expand again when you need the rest.
Stop holding the graph in your head. Plot it.
Free to start. Your first canvas takes about a minute to seed and a lifetime to outgrow.