Provides multi-agent file claims, advisory locks, and push protection within Git repositories to prevent AI agents from overwriting each other's work while tracking context provenance.
Indexes and searches local Markdown notes to provide AI agents with persistent memory, surfacing relevant context, project decisions, and session handoffs.
Integrates with Ollama to provide local semantic search capabilities through embeddings, enabling higher-precision retrieval of relevant notes and context.
Utilizes pre-commit hooks to perform PII scanning, detecting secrets and personal data before they are committed to the repository.
SAME — Persistent Memory for AI Coding Agents
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
# macOS / Linux
curl -fsSL https://statelessagent.com/install.sh | bash
# Windows (PowerShell)
irm https://statelessagent.com/install.ps1 | iexOr 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.
Related MCP server: Context7 MCP
See It Work
same demoIndexing 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
# 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 healthshows trust state across your vault.Works with your tools -- 17 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.
same guard settings set push-protect on # enable push protection
same guard scan # run PII scan manuallyHow It Works
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 SAME | With SAME |
Re-explain everything each session | AI 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 lost | Handoff recovers the session |
Copy-paste notes into chat |
|
Context compacted mid-task | Pinned notes survive compaction |
The Numbers
Metric | Value |
Retrieval precision | 99.5% on internal eval (105 synthetic test cases) |
MRR | 0.949 (right note first, almost every time) |
Prompt overhead | <200ms |
Binary size | ~12MB |
Setup time | Under 2 minutes |
Add to Your AI Tool
Claude Code (recommended)
same init # installs 6 hooks + MCP automaticallyCursor / Windsurf / Any MCP Client
Add to your MCP config (.mcp.json, Cursor settings, etc.):
{
"mcpServers": {
"same": {
"command": "npx",
"args": ["-y", "@sgx-labs/same", "mcp", "--vault", "/path/to/your/notes"]
}
}
}17 MCP tools available instantly. Works without Ollama (keyword fallback).
Switch between Claude Code and Cursor without losing context. Your memory travels with you.
Tool Compatibility
Claude Code gets full automatic handoffs via hooks. Cursor, Windsurf, Codex CLI, Gemini CLI get full MCP tool access (search, save, decisions, graph) but handoffs need to be triggered manually. We're working on automatic handoff support for more editors.
MCP Server
Tool | What it does |
| Semantic search across your knowledge base |
| Search with domain/tag/agent filters |
| Federated search across multiple vaults |
| Read full note content by path |
| Discover related notes |
| Pinned notes + latest handoff + git state |
| Recently modified notes |
| Create or update a note |
| Log a structured project decision |
| Write a session handoff |
| Re-scan and re-index the vault |
| Index health and statistics |
| Consolidate related notes via LLM |
| Generate orientation briefing |
| Vault health with trust analysis |
| Suppress a note from search results |
| Log improvement items with provenance |
SeedVaults
Pre-built knowledge vaults. One command to install.
same seed list # browse available seeds
same seed install claude-code-power-user # install oneSeed | Notes | What you get |
| 18 | Learn SAME itself — the universal on-ramp |
| 50 | Claude Code workflows and operational patterns |
| 56 | Agent design, orchestration, memory strategies |
| 56 | REST, GraphQL, auth, rate limiting, and more |
| 55 | Full-stack TypeScript patterns and best practices |
| 59 | Engineering leadership and team management |
| 117 | GTD, time blocking, habit systems |
| 61 | Security review checklists and frameworks |
Plus 9 more. Browse all 17 seeds on GitHub.
Privacy
All data stays on your machine. SAME creates a three-tier privacy structure:
Directory | Indexed | Committed | Use for |
Your notes | Yes | Your choice | Docs, decisions, research |
| No | No | API keys, credentials |
| Yes | No | Strategy, analysis |
No telemetry. No cloud. Path traversal blocked. Config files written with owner-only permissions.
More
Command | Description |
| Set up SAME for your project |
| See SAME in action with sample notes |
| 7 hands-on lessons |
| Ask a question, get cited answers |
| Search your notes |
| Search across all vaults |
| See what SAME is tracking |
| Run diagnostic checks |
| Advisory file ownership for multi-agent |
| Always include a note in sessions |
| Knowledge graph diagnostics |
| Local web dashboard |
| Browse available seed vaults |
| Install a seed vault |
| Manage multiple vaults |
| Enable push protection |
| Merge related notes into knowledge summaries |
| AI-generated orientation briefing |
| Vault health score with trust/provenance analysis |
| Best practices for vault hygiene and security |
| Rebuild search index |
| Back up and rebuild database |
| Update to latest version |
| Shell completions |
SAME uses .same/config.toml, generated by same init:
[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 = 2Supported 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
# 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 installStart 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 | mem0 | Letta | CLAUDE.md | |
Setup | 1 command | pip + config | pip or Docker | Edit file |
Runtime deps | None | Python + vector DB | Python + SQLAlchemy | None |
Offline | Full | Not default | With local models | Yes |
Cloud required | No | Default yes | No | No |
Telemetry | None | Default ON | Yes | None |
MCP tools | 17 | 9 | Client only | No |
Memory integrity | Provenance + trust | No | No | No |
Knowledge graph | Built-in | Requires Neo4j | No | No |
Cross-tool memory | Yes | API only | No | Claude only |
Runs on Pi | Yes (~12MB) | No | No | Yes |
Retrieval benchmarked against 105 ground-truth test cases with known-relevant notes.
Metric | Value |
Precision | 99.5% |
Coverage | 90.5% |
MRR | 0.949 |
BAD cases | 0 |
All evaluation uses synthetic vault data. No user data used.
Links
Contributing
Contributions welcome. Open an issue or start a discussion.
git clone https://github.com/sgx-labs/statelessagent.git
cd statelessagent
make build && make testSee 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.