everysessionleavesa•trace
remembers every decision, every dead end, every reason; no re-briefing, no re-discovery, no starting over.

How it works
Set it once. Never brief it again.
One command.
Install trace in any project. It connects to your AI coding agent via MCP and watches your sessions.
$ npx trace@latest init
✓ dependencies installed
✓ MCP server configured
✓ watching sessions
● trace — trace_import (MCP)
⏺ Import complete:
┌────────────────────┬─────────┐
│ Sessions processed │ 15 │
│ Batches run │ 25 │
│ Memories stored │ 25 │
│ Tokens used │ 35,622 │
│ Est. cost │ $0.2133 │
└────────────────────┴─────────┘
All 15 past sessions ingested into trace memory.
Nothing to trigger.
Trace runs in the background - automatically extracting memories as you work, and once more when your session ends. Run /save anytime to force it.
[hook: session active]
→ monitoring...
[hook: session end]
● tracing...
✓ 2 memories stored
✓ 1 dead end logged
✓ state captured
done.
Only what matters.
Every extraction finds the signal in the noise - what was resolved, what was ruled out, where the work stands - and writes it to memory. Nothing gets lost between sessions.
Memory #47
From the very first message.
At the start of every session, trace injects the most relevant memories before your agent answers anything. Mid-session, it queries memory before tackling anything new. Your agent knows where you left off, what was tried, and why the code looks the way it does.
● tracing...
● Injecting context...
↳ ruled out jwt secret mismatch (Apr 10)
↳ settled tokens in httpOnly cookies
↳ status auth done, refresh next
Based on your previous work, the issue is...
Query it yourself.
/traces shows you what's in memory - total, active, superseded, and the most recent. /traceit lets you search directly. The difference: /traces shows what's there. /traceit finds what's relevant.
$ /traces
● tracing...
→ Total: 117 | Active: 116 | Superseded: 1
→ [decision] GAP gender detection uses breadcrumbs first...
→ [state] V5 frontend complete...
→ [implementation] FitEngineFactory updated...
$ /traceit GAP gender detection
● tracing...
→ [decision] GAP uses breadcrumbs first (Mar 28)
→ [ruling] dataLayer deprecated — switched to GTM (Mar 21)
Sound
familiar?
"Re-explaining context at the start of every session."
→ trace injects it before you type the first word.
"Re-discovering what already failed, again."
→ every dead end is logged. your agent won't go there again.
"Knowledge living in one person's head."
→ shared, searchable, always current.
"Rereading files just to guess the intent."
→ every decision stored with the reason it was made.