Your agent forgets everything.
Term doesn't.

Structured, persistent memory for coding agents. What your team learns in one session compounds across every session, every developer, every tool.

brew install withterm/tap/trm
View on GitHub

Your agent has a goldfish memory

Every session today

  • 1.Sarah spends 47 minutes debugging a Redis connection pool issue
  • 2.Her agent discovers the fix: set maxRetriesPerRequest and connectTimeout
  • 3.Session ends. Knowledge evaporates.
  • 4.Marcus hits the same issue two weeks later. 47 more minutes.

Every session with Term

  • 1.Sarah's agent saves the fix as a typed debugging pattern via trm remember
  • 2.Term indexes it with project context, files involved, and confidence score
  • 3.Marcus's agent gets briefed at session start: "Known issue: Redis pool exhaustion under BullMQ. Fix: set explicit timeouts."
  • 4.Marcus resolves it in 4 minutes.
20%

of the average workweek is spent searching for internal information(McKinsey)

47 → 4 min

resolution time when team knowledge is available at session start

6%

accuracy on enterprise schemas without context(Spider 2.0 benchmark)

How it works

1

Capture

Your agent decides what's worth remembering — not a noisy transcript parser.

{
  "type": "debugging_pattern",
  "title": "Redis connection pool exhaustion under BullMQ",
  "content": "Jobs exceeding 5min runtime cause pool exhaustion. Fix: set maxRetriesPerRequest=3 and connectTimeout=5000.",
  "context": {
    "files": ["src/workers/payment-processor.ts"],
    "tools": ["redis", "bullmq"]
  }
}
2

Structure

Every memory is typed, timestamped, confidence-scored, and project-tagged. Not a blob of markdown.

debugging patternsarchitectural decisionsconventionsedge casesintegration knowledgeworkflow patternsperformance insights
3

Serve

At session start, Term injects a token-budgeted briefing — only what's relevant, ranked by usefulness.

## Term: 7 memories for this project

**Conventions:**
- API errors must include request_id
- Use event sourcing for payments, NOT profiles

**Active gotchas:**
- Plaid sandbox returns different account IDs per call
- Redis connections leak when BullMQ jobs exceed 5min

**Recent:**
- [debugging] Fixed N+1 in user list endpoint

How Term compares

CLAUDE.md and auto-memory are built into Claude Code. Term builds on top.

CLAUDE.md / .cursorrules
Auto-memory
Term
Who writes it
You, manually
Claude decides
Claude, with structure
Organization
Free-form markdown
Topic-based files
7 typed categories
Search
Ctrl+F in files
Claude reads on-demand
Full-text search API
Context loading
Full file every session
200 lines + on-demand reads
Token-budgeted briefing
Session hooks
None
None
Start, compact, stop
Storage
Scattered .md files
~/.claude/projects/
Single portable SQLite
Platform
Claude Code
Claude Code only
MCP-native, works everywhere

Zero-config architecture

Claude Code
Cursorsoon
Copilotsoon

Term MCP Server

Resources
Tools
Prompts

SQLite + sqlite-vec

Single file, zero config

Single binary. No Docker. No Postgres. No API keys.

Get started in 2 minutes

The entire setup is three commands.

1# Install
2brew install withterm/tap/trm
3
4# Initialize in your project
5cd your-project && trm init
6
7# That's it. Start a Claude Code session.

trm init adds the MCP server to your project, configures session hooks, and starts listening. Your next Claude Code session will have memory.

Free. Local-first. Yours.

Term runs entirely on your machine. Your memories stay in a local SQLite database — no cloud required, no data leaves your laptop.

Freeforever
  • Unlimited memories
  • Local SQLite storage
  • MCP integration
  • Semantic search via embeddings
  • Works with Claude Code, Cursor, Copilot
  • Open source (MIT)

Team features coming soon

What one developer learns, every agent knows. We're building shared team memory with cloud sync. Join the waitlist to get early access.

No spam. We'll only email about team features.

The best model won't beat the richest context.

Term is open source and free for individual developers.

brew install withterm/tap/trm
View on GitHub