local-first memory control plane for coding agents

Memory that pushes, not memory you have to ask for.

Supermemory is a context cloud your agent has to call. graphCTX inverts it — it calls your agent, pushing commit-valid, scope-aware context at the exact moments it drifts. Runs on your machine. No cloud. No API key.

$ curl -fsSL https://graph.coder.company/install | sh
See the benchmarks
38×
faster recall than Supermemory
14.5ms
local retrieval p50
100%
post-compaction solve
$0
no metering, no tokens
~/your-repo · claude code · SessionStart
// without graphCTX

user: what's the deploy command?
agent: I don't see one in the repo — you'll need to tell me.

// with graphCTX · pushed at SessionStart

user: what's the deploy command?
agent: ./scripts/ship.sh --canary --wait mem:9f3a2c

Same agent, same prompt. The only difference is graphCTX pushing the fact into context.

[ 01 ] · how it works · the loop

Five primitives. One push.

A memory control plane, not a search box. The work is in the last step — forcing the right context into the agent at the moment it matters.

01 CAPTURE

Read the repo, deterministically

Six extractors parse package scripts, lockfiles, CI, editorconfig, AGENTS.md, and session episodes. No LLM needed for the trusted base — facts are grounded in files, not guesses.

02 ANCHOR

Bind every fact to a commit

Memory is valid as of a git state, not a wall-clock time. Revert a change and the fact comes back; branch away and it doesn't apply. Your DAG is the source of truth.

03 PROMOTE

Graduate facts across scopes

session → workspace → user, through hard evidence gates. Conservative by design: only earned facts cross boundaries. Secrets and low-trust prose never get promoted.

04 GATE

Decide when it actually matters

A relevance gate computes topic drift and entity changes, firing only when memory plausibly applies — at SessionStart, PostCompact, PreToolUse, and branch switches.

05 PUSH

Inject context into the agent

A budgeted, provenance-tagged capsule lands in the agent's context the moment it would drift — no tool call, no model discretion, no forgetting to ask.

[ 03 ] · benchmarks · measured, not claimed

We ran it live against Supermemory.

Same coding-fact set, same queries, real network calls. graphCTX answers from your machine before a Supermemory request finishes its TLS handshake. Reproducible: graphctx compare --deep.

METRIC
graphCTX (local)
Supermemory
delta
Ingest (p50)
0.68ms
1,830ms
~2,700× faster
Recall (p50)
14.5ms
560ms
38× faster
Recall (p95)
19.5ms
879ms
45× faster
Recall accuracy
90–100%
100%
parity
Network
none
required
offline
Cost / month
$0
$19–$399
free

Latency holds at scale

Retrieval p50/p95 as the workspace grows. A realistic repo (~500 facts) answers in 14.5ms. Even a 5,000-fact monorepo stays interactive.

10 facts p50 1.43ms · p95 1.92ms
510 facts p50 14.54ms · p95 19.45ms
5,010 facts p50 169.71ms · p95 199.76ms

Push vs pull — the thesis

Post-compaction solve rate across 14 coding tasks. Pull-based memory forgets to ask; push delivers every time.

A · no memory 0/14
B · pull (recall API) 3/14
C · push (graphCTX) 14/14

// graphctx eval run --arms A,B,C

// honest caveat: Supermemory does cross-doc reasoning + connectors at scale that graphCTX doesn't attempt. This compares direct coding-fact retrieval — the path that matters in your editor.

[ 04 ] · vs Supermemory · the honest grid

Supermemory waits to be called. graphCTX calls your agent.

Supermemory is powerful general infrastructure. graphCTX is a sharper tool for one job: keeping a coding agent grounded, locally, for free. Here's where each wins — no spin.

DIMENSION
Supermemory
graphCTX
Delivery model
Pull — agent must call an API
Push — fires on lifecycle events
Where it runs
Hosted cloud (SaaS)
Local process on your machine
Recall latency
~300–880ms (network)
~1.6–19ms (local)
Temporal model
Wall-clock timestamps
Commit-anchored validity
Your code
Sent to the cloud
Never leaves the machine
Cost
Metered per token / month
$0
Setup
Account + API key + SDK
curl | sh — no account
Injection security
App's responsibility
Trust tiers + secret scan built in
Cross-doc reasoning
Yes — cloud-scale graph
Coding-fact focused
Connectors (Slack/Drive)
Many, managed
Not the goal — local repo

// we list where we lose, too. Need cloud-scale connectors and cross-doc reasoning? Use Supermemory. Want your coding agent to stop forgetting — locally, instantly, privately? Use graphCTX.

[ 05 ] · install · three commands

Up and running in 30 seconds

No account. No API key. No cloud. Install the CLI, point it at your agent, and memory starts pushing on the next session.

$ curl -fsSL https://graph.coder.company/install | sh

Prefer npm? npm i -g graphctx

01
$ curl -fsSL https://graph.coder.company/install | sh

install the CLI (detects Node / Bun)

02
$ graphctx install claude

wire your agent (claude · cursor · opencode · generic)

03
$ graphctx doctor

verify push is live