trackmcp
Back to directory
sgx-labs

statelessagent

View on GitHub

Your AI forgets everything between sessions. SAME fixes that. Local-first, no API keys, single binary.

23 stars GoOthers Updated Aug 7, 2026
ai-agentclaude-codecursorgolangllm-memorymcp-serverobsidianragsemantic-searchsqlite-vecwindsurfcontext-surfacingai-memorylocal-firstmcpmodel-context-protocolsqlitevector-search

Documentation

SAME — Persistent Memory for AI Coding Agents

License: BSL 1.1
Go
Latest Release
GitHub Stars
MCP Tools
Discord

Your AI forgets everything between sessions. SAME fixes that.

SAME gives every AI coding tool persistent memory. Claude Code, Cursor, Windsurf, Codex CLI, Gemini CLI — one memory layer that works everywhere. It indexes your markdown notes, surfaces relevant context automatically, and records decisions and handoffs so your AI picks up where it left off.

One binary. Fully local. No cloud. No telemetry. Mac, Linux, Windows, Raspberry Pi.

Install

bash
# macOS / Linux
curl -fsSL https://statelessagent.com/install.sh | bash

# Windows (PowerShell)
irm https://statelessagent.com/install.ps1 | iex

Or via npm (all platforms): `npm install -g @sgx-labs/same`

Installed via npm? Update with `npx same@latest` or `npm update -g @sgx-labs/same`.

See It Work

bash
same demo
code
Indexing 5 sample notes...
Searching: "authentication decision"

  1. decisions/auth-strategy.md (score: 0.94)
     "We chose JWT with refresh tokens for..."

  2. notes/api-security.md (score: 0.87)
     "Auth middleware validates tokens at..."

Asking: "what did we decide about authentication?"

  Based on your notes, you decided to use JWT with refresh
  tokens (decisions/auth-strategy.md). The API middleware
  validates tokens at the gateway level (notes/api-security.md).

No accounts. No API keys. Everything runs locally.

Quickstart

bash
# 1. Point SAME at your project
cd ~/my-project && same init

# 2. Test search
same search "authentication decision"

# 3. Done. Your AI now has memory.
# Start Claude Code, Cursor, or any MCP client.

`same init` sets up hooks and MCP tools automatically. Your AI gets relevant context on every session start.

Key Features

  • Your AI remembers everything -- Decisions, handoffs, and context survive across sessions. Close your terminal, switch projects, come back tomorrow. Nothing gets lost.
  • Memory integrity -- Tracks provenance (where notes came from), detects when source files change, and flags stale knowledge. Stale notes rank lower in search automatically. `same health` shows trust state across your vault.
  • Dual-layer memory -- Extracts atomic facts from your notes via LLM. Facts are independently searchable and boost source notes in search results. The right answer surfaces even when the fact is buried in an unrelated conversation.
  • Streamable HTTP transport -- `same web --mcp` enables an HTTP MCP endpoint with Bearer token auth. Connect from Open WebUI, LobeChat, or any HTTP MCP client — no stdio required.
  • Works with your tools -- 19 MCP tools for Claude Code, Cursor, Windsurf, or any MCP client. Search, save decisions, create handoffs without leaving your editor.
  • Safe for teams -- Multiple AI agents on the same codebase won't step on each other. File claims, push protection, and attribution built in.
  • Instant expertise -- 17 pre-built knowledge vaults with 870+ curated notes. One command to install. Your AI gets domain knowledge in seconds.
  • Connected knowledge -- See how decisions, files, and notes relate to each other. Ask "what depends on this?" and get real answers. Powered by SQLite.

Security & Teams

SAME includes built-in PII scanning and push protection:

  • PII scanning -- Pre-commit hooks detect emails, API keys, secrets, and personal data before they reach git. Configurable blocklists with false-positive review workflow.
  • Push protection -- Multi-agent file claims prevent AI agents from overwriting each other's work. Advisory locks with attribution.
  • Audit logging -- Every guard scan, every allow decision, every override is logged.
  • Privacy tiers -- `_PRIVATE/` is never indexed. `research/` is indexed but never committed. Your notes, your rules.
bash
same guard settings set push-protect on    # enable push protection
same guard scan                            # run PII scan manually

How It Works

code
Your Notes (.md)  -->  Embeddings  -->  SQLite  -->  Your AI Tool
                       (local or        (search      (Claude Code,
                        cloud)           + rank)      Cursor, etc.)

Your markdown notes get embedded and stored in SQLite. When your AI starts a session, SAME surfaces relevant context via hooks or MCP. Decisions get extracted. Handoffs get generated. The next session picks up where the last one stopped.

No Ollama? No problem. SAME runs with zero external dependencies using keyword search (SQLite FTS5). Add Ollama later for semantic search -- `same reindex` upgrades instantly.

Why SAME

Without SAMEWith SAME
Re-explain everything each sessionAI picks up where you left off
"Didn't we decide to use JWT?"Decision surfaces automatically
"Is this note still accurate?"Trust state flags stale knowledge
Close terminal = context lostHandoff recovers the session
Copy-paste notes into chat`same ask` with source citations
Context compacted mid-taskPinned notes survive compaction

The Numbers

MetricValue
Recall@5100% keyword, 84% semantic on internal eval (68 cases). Held-out: 90% Recall@5 on 30 blind cases (see `eval/METHODOLOGY.md`)
MRR0.65 keyword, 0.62 semantic
Prompt overhead**

Full CLI Reference

CommandDescription
`same init`Set up SAME for your project
`same demo`See SAME in action with sample notes
`same tutorial`7 hands-on lessons
`same ask `Ask a question, get cited answers
`same search `Search your notes
`same search --all `Search across all vaults
`same status`See what SAME is tracking
`same doctor`Run diagnostic checks
`same claim --agent `Advisory file ownership for multi-agent
`same pin `Always include a note in sessions
`same graph stats`Knowledge graph diagnostics
`same web`Local web dashboard
`same seed list`Browse available seed vaults
`same seed install `Install a seed vault
`same vault list\add\remove\default`Manage multiple vaults
`same guard settings set push-protect on`Enable push protection
`same consolidate`Merge related notes into knowledge summaries
`same brief`AI-generated orientation briefing
`same health`Vault health score with trust/provenance analysis
`same stale`List all stale notes in your vault
`same search --trust stale`Filter search by trust state
`same search --type decision`Filter search by content type
`same ignore`View/manage .sameignore patterns
`same facts`View, search, and manage extracted facts
`same config set `Set config values from CLI
`same brief --no-llm`Structured briefing without LLM
`same tips`Best practices for vault hygiene and security
`same reindex [--force]`Rebuild search index
`same repair`Back up and rebuild database
`same update`Update to latest version
`same completion [bash\zsh\fish]`Shell completions

Configuration

SAME uses `.same/config.toml`, generated by `same init`:

toml
[vault]
path = "/home/user/notes"
handoff_dir = "sessions"
decision_log = "decisions.md"

[embedding]
provider = "ollama"           # "ollama", "openai", "openai-compatible", or "none"
model = "nomic-embed-text"

[memory]
max_token_budget = 800
max_results = 2

Supported embedding models: `nomic-embed-text` (default), `snowflake-arctic-embed2`, `mxbai-embed-large`, `all-minilm`, `text-embedding-3-small` (OpenAI), and more.

Configuration priority (highest wins): CLI flags > Environment variables > Config file > Defaults

More Install Options

bash
# Docker
git clone --depth 1 https://github.com/sgx-labs/statelessagent.git
cd statelessagent && docker build -t same .

# Build from source (requires Go 1.25+)
git clone --depth 1 https://github.com/sgx-labs/statelessagent.git
cd statelessagent && make install

Troubleshooting

Start with `same doctor` -- it runs 20+ checks and tells you what's wrong.

"No vault found" -- Run `same init` from inside your notes folder, or set `VAULT_PATH=/path/to/notes`.

"Ollama not responding" -- SAME falls back to keyword search automatically. Test with `curl http://localhost:11434/api/tags`.

Hooks not firing -- Run `same setup hooks` to reinstall. Verify with `same status`.

Database issues -- Run `same repair` to back up and rebuild.

SAME vs. Alternatives

SAMEmem0LettaCLAUDE.md
Setup1 commandpip + configpip or DockerEdit file
Runtime depsNonePython + vector DBPython + SQLAlchemyNone
OfflineFullNot defaultWith local modelsYes
Cloud requiredNoDefault yesNoNo
TelemetryNoneDefault ONYesNone
MCP tools199Client onlyNo
Memory integrityProvenance + trustNoNoNo
Knowledge graphBuilt-inRequires Neo4jNoNo
Cross-tool memoryYesAPI onlyNoClaude only
Runs on PiYes (~14MB)NoNoYes

Eval Methodology

Internal evaluation on 105 tuning cases. Held-out validation: 93.3% Recall@5 on 30 blind test cases (see `eval/METHODOLOGY.md`).

MetricValueDataset
Recall@5 (keyword)100%Internal (68 cases)
Recall@5 (semantic)84%Internal (68 cases)
MRR (keyword)0.65Internal (68 cases)
Recall@590%Held-out (30 blind cases)

All evaluation uses synthetic vault data. No user data used.

Contributing

Contributions welcome. Open an issue or start a discussion.

bash
git clone https://github.com/sgx-labs/statelessagent.git
cd statelessagent
make build && make test

See SECURITY.md for security-related reports.

Support

Buy me a coffee | GitHub Sponsors

License

BSL 1.1. Free for personal, educational, hobby, research, and evaluation use. Converts to Apache 2.0 on 2030-02-02. See LICENSE.


Frequently asked questions

What is statelessagent?

statelessagent is Your AI forgets everything between sessions. SAME fixes that. Local-first, no API keys, single binary.

How do I install statelessagent?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is statelessagent open source?

Yes — it is hosted on GitHub at https://github.com/sgx-labs/statelessagent and has 23 stars.

Related MCP tools

agentic-boxmemora

Give your AI agents persistent, collective memory — with deduplicating absorb, supersession lineage, semantic search, and a graph UI. Speaks MCP.

715 Python
ai-agentclaudeknowledge-graph+13
riponcmprojectmem

Open-source coding agent memory. Records issues, attempts, fixes and decisions, then warns your agent before it repeats an approach that already failed. Native MCP server for Claude Code, Cursor, Antigravity and Codex. 100% local, no cloud, no telemetry. MIT.

796 Python
ai-agentsai-memoryai-tools+17
AVIDS2memorix

Open-source cross-agent memory layer for coding agents via MCP. Compatible with Claude Code, Codex, Cursor, Windsurf, Gemini CLI, Antigravity, OpenClaw, Hermes Agent, Oh-my-Pi, Pi, Copilot, Kiro, OpenCode, and Trae.

721 TypeScript
ai-codingclaude-codecopilot+17
KnockOutEZwigolo

The go-to web for your AI coding agent — local-first search, fetch, crawl & research over MCP. No API keys, no cloud, $0/query. Public beta.

4,906 TypeScript
mcpagentai+17
IvanMurzakUnity-MCP

AI Skills, MCP Tools, and CLI for Unity Engine. Full AI develop and test loop. Use cli for quick setup. Efficient token usage, advanced tools. Any C# method may be turned into a tool by a single line. Works with Claude Code, Gemini, Copilot, Cursor and any other absolutely for free.

4,137 C#
aiai-integrationgame-development+16
jgravellejcodemunch-mcp

Cut AI token costs 95%+ on code exploration. The leading MCP server for precise, symbol-level GitHub code retrieval via tree-sitter AST. Works with Claude Code, Cursor & any MCP client. 313B+ tokens saved.

2,651 Python
claudeclaude-codeai-coding+17

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP