v1.0 is liveBulletproof daemon · Claude.ai relay · Auth-expired warningsnpm i -g getprimer →

Your AI agents
are forgetful.

Every agent starts cold. Primer gives Cursor, Claude Code, Windsurf, and 9 other tools persistent, trusted memory. They start informed, act safely, and hand off cleanly.

npm install -g getprimer

then cd your-project && primer init

Works withCursor · Claude Code · Claude.ai · VS Code · Antigravity · OpenCode · Windsurf · Zed · Gemini CLI · Claude Desktop
The problem

AI coding agents are powerful. They are also completely amnesiac.

Every session starts from zero
Your agent re-solves the same problem it fixed last Friday. It has no idea what you built yesterday.
Agents repeat the same mistakes
No persistent rules means no persistent learning. Every new chat brings the same bad patterns back.
Switching tools resets everything
Move from Cursor to Claude Code mid-feature. All context is gone. You brief from scratch.
No audit trail
You have no idea what your agent actually did, why it made a decision, or what it changed last Tuesday.
You brief agents, not build
Half your time goes to re-explaining your codebase. You are a context manager, not a developer.
Teams run isolated agents
Every engineer's agent starts cold. No shared memory, no shared rules. Coordination is impossible.
How it works
Persistent memory

Facts, rules, decisions captured automatically.

Every file you save, every agent session, every architectural choice — Primer records what matters and surfaces it to the next agent in any tool.

  • Facts, rules, observations and decisions in structured memory
  • Agents never start cold. They know your project before you say a word
  • Memory scoped per project. Shareable across repos with groups
Memory · 32 facts
All32
Pinned2
Facts11
Rules8
Observations9
Uses esbuild for bundling. Do not switch to webpack without testing all output targets.
fact2h ago
Never commit to main without running npm run build first.
rulepinned1d ago
Auth flow uses Supabase SSR. JWT stored in httpOnly cookie, not localStorage.
obs3h ago
Chose Supabase over PlanetScale. Row-level security was the deciding factor.
decision3d ago
Trust and conflicts

Catch when agents disagree. Resolve it once.

When two agents write conflicting facts, Primer flags the conflict. You resolve it once. Every agent sees the resolution going forward.

  • Conflicts detected automatically across all agents and sessions
  • Your decision is logged. Agents stop re-arguing the same point
  • Full history of what was said, by whom, and when
Conflicts · 1 open
Data fetching strategy
conflictcursor
Use React Server Components for data fetching
conflictclaude-code
Use client-side SWR hooks for all data fetching
resolvedyou
Decision: RSC for initial load, SWR for mutations
Guardrails

Define what agents can touch before they touch it.

Block writes to sensitive files, require review before migrations run, log every action. Policy enforces before the action, not after.

  • Rules defined in .primer/policy.json — version-controlled
  • Blocked actions are logged to the audit trail automatically
  • Agents are notified and continue with safe tasks
Handoffs · session 14
antigravitynext agent4h ago
Implemented project grouping. Added group field to .primer/config.json. getRemoteMemory() now filters by repo OR group. Migration applied.
Next: Add dashboard UI filter for group. Publish v0.14.11.
In practice

Your agent knows your project. Before you say a word.

exact output from v1.0.1

zsh — my-project
$ primer init
Step 1 of 3 — Sign in
Signed in as you@email.com
Step 2 of 3 — Start memory daemon
Daemon running on port 37373
Step 3 of 3 — Connect your AI tools
Cursor configured
Claude Code configured
Windsurf configured
──────────────────────────────────────────────────
Primer is ready. Project: my-project
──────────────────────────────────────────────────
# Open Cursor, start a new chat
> "What do you know about this project?"
Agent: "This is a TypeScript project using esbuild.
I can see a daemon in src/daemon/ and CLI in src/cli/.
You have 47 memory facts from previous sessions.
Want me to continue where you left off?"
Integrations

Works with the tools you already use.

CursorClaude CodeClaude.aiVS CodeAntigravityOpenCodeWindsurfZedGemini CLIClaude Desktop

If your tool supports MCP, Primer works with it. If not, use the Python or Node.js SDK.

Details

Built for how you actually work.

1.0 Memory

Structured memory. Not raw text.

Primer categorizes everything: facts (ground truth), rules (constraints), observations (patterns), and decisions (why you chose X). Agents query by type so a rule about committing is never confused with a fact about your database.

factArchitectural truth. Uses Postgres, not MySQL.
ruleConstraints. Never delete migrations.
obsPatterns noticed. Tests always fail on port 3001.
decisionRecorded choices. Chose esbuild over webpack.
Memory · 32 facts
All32
Pinned2
Facts11
Rules8
Observations9
Uses esbuild for bundling. Do not switch to webpack without testing all output targets.
fact2h ago
Never commit to main without running npm run build first.
rulepinned1d ago
Auth flow uses Supabase SSR. JWT stored in httpOnly cookie, not localStorage.
obs3h ago
Chose Supabase over PlanetScale. Row-level security was the deciding factor.
decision3d ago
2.0 Trust

Conflict detection across all your agents.

Two agents writing conflicting facts is caught automatically. You resolve it once — your decision is logged, and every future agent sees the resolution. Primer keeps the shared picture of your project consistent.

Conflicts · 1 open
Data fetching strategy
conflictcursor
Use React Server Components for data fetching
conflictclaude-code
Use client-side SWR hooks for all data fetching
resolvedyou
Decision: RSC for initial load, SWR for mutations
3.0 Guardrails

Policy that runs before the action.

Block writes to sensitive files, require human review for migrations, log every agent action. Rules defined in .primer/policy.json — plain JSON, version-controlled, reviewed like code.

Guardrails currently enforce at the MCP tool level in Cursor. Expanding to other tools iteratively.

Handoffs · session 14
antigravitynext agent4h ago
Implemented project grouping. Added group field to .primer/config.json. getRemoteMemory() now filters by repo OR group. Migration applied.
Next: Add dashboard UI filter for group. Publish v0.14.11.
Early users

From developers who used it first.

I used to re-explain my entire codebase at the start of every Cursor session. Primer just handles that now. It gets better the longer you use it.

Jabez  Developer

The guardrails alone are worth it. My agent tried to delete a migration file. Primer blocked it before I even noticed. Saved me an hour of debugging.

Sam  Developer

I switched from Cursor to Claude Code halfway through a feature. The agent picked up exactly where I left off. Same context, same rules. It felt like cheating.

Cyrin  Developer

Our whole team uses it now. No one has to explain the codebase to their agent from scratch anymore.

Charls  Developer

Setup took two minutes. I ran primer init, restarted Cursor, asked what it knew about the project. It described it perfectly.

Baruch M  Developer
Pricing

Free to start.

No credit card required. Scale when you need to.

Free$0
Local memory
Up to 100 facts
1 project
2 API keys
Pro$12/month
Cloud sync and backup
Unlimited facts
Unlimited projects
Unlimited API keys
Relay (public MCP URL)
FAQ

Common questions.

Give your agents a memory.

Free to start. Works with the tools you already use. Takes two minutes.