Skip to content

What GraphMind is

GraphMind is a debugger, in the sense the word has meant since gdb: a tool that attaches to a running program, stops it, shows you the state, lets you change it, and lets it continue.

The program here is your agent. GraphMind draws its execution as a live graph, and it can genuinely hold that execution — before an LLM step, before or after a tool call, or the moment something throws — while you look at the actual values and decide what happens next.

Tracing tools record what happened. You read the record afterwards, form a theory, change the code, and run it again. That loop is minutes long, and every iteration costs another set of tokens.

A debugger collapses the loop. The agent is still sitting on the failure when you look at it. The arguments that broke the tool are still the live arguments. You can hand it the value it should have got and watch the rest of the run play out — without editing a line.

Post-hoc observability

Phoenix, Langfuse, LangSmith, OTel-based tracing. Records spans, costs and latencies; strong at aggregate analysis, evals, regression tracking and production monitoring across many runs.

GraphMind

Attaches to one run as it happens and can stop it. Strong at the single confusing failure: pause on error, breakpoints, step mode, inspect, inject a substitute result, retry, abort.

Post-hoc tracingGraphMind
When you lookAfter the runWhile it runs
Can it stop executionNoYes — indefinite holds
Change a value mid-runNoYes — inject
Re-run one failed stepNo (re-run the app)Yes — retry
Aggregate analytics, evals, cost dashboardsYes, this is their jobNo
Team-wide history, hosted retentionYesNo — local SQLite, single machine
Production monitoringYesDisabled in production by default
Where your prompts goTheir servers (or self-host)Nowhere. 127.0.0.1 and a local file

These are not competitors so much as different halves of the loop. Keep your tracing tool for production and evals. Reach for GraphMind when a specific run is doing something you cannot explain.

Three pieces, all open source and MIT:

  1. An adapter in your app (@graphmind-ai/sdk, @graphmind-ai/anthropic, @graphmind-ai/openai, @graphmind-ai/langgraph, …) built on public extension points of the framework — middleware, callbacks, tool decoration. No forks, no monkey-patching.
  2. The CLI (graphmind-ai) — a local server on 127.0.0.1:4747, SQLite storage, an MCP server, and the bundled viewer UI.
  3. The wire protocol (@graphmind-ai/schema) — a small, versioned JSON contract over one WebSocket. Anything that can speak it gets the whole debugger; see writing an adapter.

These are enforced in the client runtime and asserted in its test suite, not aspirations:

  • Never throws into your app. Internal failures degrade to a no-op plus one rate-limited console.warn. Errors thrown by your code stay yours and propagate untouched.
  • Free when detached. With no debugger attached, an awaited gate short-circuits to a shared resolved promise — the suite asserts an average under 1 ms; the design spike measured 0.03 ms worst case. With GraphMind disabled outright, the wrappers are identity functions.
  • Fails open. If the viewer disconnects while gates are held, every held gate resolves continue immediately, and the agent runs on as if nothing had attached.
  • Local-first. The server binds 127.0.0.1 only. Runs live in ~/.graphmind/graphmind.db. Your prompts and tool payloads never leave the machine.
  • Off in production. Under NODE_ENV=production instrumentation is disabled unless you set GRAPHMIND=1, and GRAPHMIND_DISABLED=1 beats everything.
  • Install & first run — see it work in one command, then instrument your app.
  • Core concepts — runs, nodes, instances, gates, and why the graph is a projection of your code.
  • Integrations — the copy-pasteable version for your framework.