
S I G N E T A I
Local-first persistent memory for AI agents
Website · Docs · Vision · Discussions · Discord · Contributing · AI Policy
Persistent memory for AI agents, across sessions, tools, and environments.
TL;DR
- Installs under your existing harness, not instead of it
- Captures and injects relevant memory automatically between sessions
- Runs local-first, with inspectable storage and no vendor lock-in
Most agents only remember when explicitly told to.
That is not memory, that's a filing cabinet.
Signet makes memory ambient. It extracts and injects context automatically, between sessions, before the next prompt starts. Your agent just has memory.
Why teams adopt it:
- less prompt re-explaining between sessions
- one memory layer across Claude Code, OpenCode, OpenClaw, and Codex
- clear visibility into what was recalled, why, and from which scope
Benchmark note: early LoCoMo results show 87.5% answer accuracy and 100% Hit@10 retrieval on an 8-question full-stack sample. Larger evaluation runs are in progress. Details
Quick start (about 5 minutes)
bun add -g signetai # or: npm install -g signetai
signet setup # interactive setup wizard
signet status # confirm daemon + pipeline health
signet dashboard # open memory + retrieval inspector
If you already use Claude Code, OpenCode, OpenClaw, or Codex, keep your existing harness. Signet installs under it.
First proof of value (2-session test)
Run this once:
signet remember "my primary stack is bun + typescript + sqlite"
Then in your next session, ask your agent:
what stack am i using for this project?
You should see continuity without manually reconstructing context. If not, inspect recall and provenance in the dashboard or run:
signet recall "primary stack"
Want the deeper architecture view? Jump to How it works or Architecture.
Core capabilities
These are the product surface areas Signet is optimized around:
| Core | What it does |
|---|---|
| 🧠 Ambient memory extraction | Sessions are distilled automatically, no memory tool calls required |
| 🕸️ Hybrid retrieval | Graph traversal + FTS5 + vector search for robust recall under real prompts |
| 💾 Session continuity | Checkpoint and transcript-backed context carried across sessions |
| 🏠 Local-first storage | Data lives on your machine in SQLite and markdown, portable by default |
| 🤝 Cross-harness runtime | Claude Code, OpenCode, OpenClaw, Codex, one shared memory substrate |
Is Signet right for you?
Use Signet if you want:
- memory continuity across sessions without manual prompt bootstrapping
- local ownership of agent state and history
- one memory layer across multiple agent harnesses
Signet may be overkill if you only need short-lived chat memory inside a single hosted assistant.
Why you can trust this
- runs local-first by default
- memory is stored in SQLite + markdown
- recall is inspectable with provenance and scopes
- memory can be repaired (edit, supersede, delete, reclassify)
- no vendor lock-in, your data stays portable
What keeps it reliable
These systems improve quality and reliability of the core memory loop:
| Supporting | What it does |
|---|---|
| 📜 Lossless transcripts | Raw session history preserved alongside extracted memories |
| 🎯 Predictive scorer | Learns your interaction patterns to prioritize likely-useful context |
| 🔬 Noise filtering | Hub and similarity controls reduce low-signal memory surfacing |
| 📄 Document ingestion | Pull PDFs, markdown, and URLs into the same retrieval pipeline |
| 🖥️ CLI + Dashboard | Operate and inspect the system from terminal or web UI |
Advanced capabilities (optional)
These extend Signet for larger deployments and custom integrations:
| Advanced | What it does |
|---|---|
| 🔐 Agent-blind secrets | Encrypted secret storage, injected at execution time, not exposed to agent text |
| 👯 Multi-agent policies | Isolated/shared/group memory visibility for multiple named agents |
| 🔄 Git sync | Identity and memory can be versioned in your own remote |
| 📦 SDK + middleware | Typed client, React hooks, and Vercel AI SDK middleware |
| 🔌 MCP aggregation | Register MCP servers once, expose across connected harnesses |
| 👥 Team controls | RBAC, token policy, and rate limits for shared deployments |
| 🏪 Ecosystem installs | Install skills and MCP servers from skills.sh and ClawHub |
| ⚖️ Apache 2.0 | Fully open source, forkable, and self-hostable |
When memory is wrong
Memory quality is not just recall quality. It is governance quality.
Signet is built to support:
- provenance inspection (where a memory came from)
- scoped visibility controls (who can see what)
- memory repair (edit, supersede, delete, or reclassify)
- transcript fallback (verify extracted memory against raw source)
- lifecycle controls (retention, decay, and conflict handling)
Harness support
Signet is not a harness. It doesn't replace Claude Code, OpenClaw, or OpenCode — it runs alongside them as an enhancement. Bring the harness you already use. Signet handles the memory layer underneath it.
| Harness | Status | Integration |
|---|---|---|
| Claude Code | Supported | Hooks |
| OpenCode | Supported | Plugin + Hooks |
| OpenClaw | Supported | Runtime plugin + NemoClaw compatible |
| Codex | Supported | Hooks + MCP server |
| Gemini CLI | Planned | — |
Don't see your favorite harness? file an issue and request that it be added!
LoCoMo Benchmark
LoCoMo is the standard benchmark for conversational memory systems. No standardized leaderboard exists — each system uses different judge models, question subsets, and evaluation prompts. These numbers are collected from published papers and repos.
| Rank | System | Score | Metric | Open Source | Local? | LLM at Search? |
|---|---|---|---|---|---|---|
| 1 | Kumiho | 97.5% adv, 0.565 F1 | Official F1 + adv subset | SDK open | No | Yes |
| 2 | EverMemOS | 93.05% | Judge (self-reported) | No | No | Yes |
| 3 | MemU | 92.09% | Judge | Yes | No | Yes |
| 4 | MemMachine | 91.7% | Judge | No | No | Yes |
| 5 | Hindsight | 89.6% | Judge | Yes (MIT) | No | Yes |
| 6 | SLM V3 Mode C | 87.7% | Judge | Yes (MIT) | Partial | Yes |
| 7 | Signet | 87.5% | Judge (GPT-4o) | Yes (Apache) | Yes | No |
| 8 | Zep/Graphiti | ~85% | Judge (third-party est) | Partial | No | Yes |
| 9 | Letta/MemGPT | ~83% | Judge | Yes (Apache) | No | Yes |
| 10 | Engram | 80% | Judge | Yes | No | Yes |
| 11 | SLM V3 Mode A | 74.8% | Judge | Yes (MIT) | Yes | No |
| 12 | Mem0+Graph | 68.4% | J-score (disputed) | Partial | No | Yes |
| 13 | SLM Zero-LLM | 60.4% | Judge | Yes (MIT) | Yes | No |
| 14 | Mem0 (independent) | ~58% | Judge | Partial | No | Yes |
Current Signet run: 87.5% answer accuracy, 100% Hit@10 retrieval, MRR 0.615 on an 8-question sample.
We treat this as an encouraging early signal, not a final claim. The sample size is small and larger-scale runs are in progress.
What this result does show today:
- retrieval hit rate was 100% for this run (no empty recalls)
- the correct supporting memory typically surfaced near the top (MRR 0.615)
- search-time recall operated without extra LLM inference calls
See Benchmarks for methodology, progression, and how to run your own evaluation.
Install (detailed)
bun add -g signetai # or: npm install -g signetai
signet setup # interactive setup wizard
The wizard initializes $SIGNET_WORKSPACE/, configures your harnesses, sets up
an embedding provider, creates the database, and starts the daemon.
Path note:
$SIGNET_WORKSPACEmeans your active Signet workspace path. Default is~/.agents, configurable viasignet workspace set <path>.
Tell your agent to install it
Paste this to your AI agent:
Install and fully configure Signet AI by following this guide exactly: https://signetai.sh/skill.md
CLI use
signet status # check daemon health
signet dashboard # open the web UI
signet remember "prefers bun over npm"
signet recall "coding preferences"
Multi-agent
Multiple named agents share one daemon and database. Each agent gets its
own identity directory (~/.agents/agents/<name>/) and configurable
memory visibility:
signet agent add alice --memory isolated # alice sees only her own memories
signet agent add bob --memory shared # bob sees all global memories
signet agent add ci --memory group --group eng # ci sees memories from the eng group
signet agent list # roster + policies
signet remember "deploy key" --agent alice --private # alice-only secret
signet recall "deploy" --agent alice # scoped to alice's visible memories
signet agent info alice # identity files, policy, memory count
OpenClaw users get zero-config routing — session keys like
agent:alice:discord:direct:u123 are parsed automatically; no
agentId header needed.
In connected harnesses, skills work directly:
/remember critical: never commit secrets to git
/recall release process
How it works
session ends
→ distillation engine extracts entities, facts, and relationships
→ knowledge graph links them to existing memory
→ decisions auto-detected and promoted to always-surface constraints
→ raw transcript preserved alongside extracted facts (lossless retention)
→ predictive scorer ranks candidates against your interaction patterns
→ post-fusion dampening separates signal from noise
→ right context injected before the next prompt starts
No configuration required. No tool calls. The pipeline runs in the background and the agent wakes up with its memory intact.
Read more: Why Signet · Architecture · Knowledge Graph · Pipeline
Architecture
CLI (signet)
setup, knowledge, secrets, skills, hooks, git sync, service mgmt
Daemon (@signet/daemon, localhost:3850)
|-- HTTP API (modular endpoints for memory, retrieval, auth, and tooling)
|-- Distillation Layer
| extraction -> decision -> graph -> retention
|-- Retrieval
| traversal-primary -> cosine re-scoring -> dampening -> hybrid fallback
|-- Lossless Transcripts
| raw session storage -> expand-on-recall join
|-- Hints Worker
| prospective indexing -> FTS5 index
|-- Inline Entity Linker
| write-time entity extraction (no LLM), decision auto-protection
|-- Predictive Scorer
| entity-weight traversal, per-user trained model
|-- Document Worker
| ingest -> chunk -> embed -> index
|-- MCP Server
| tool registration, aggregation, blast radius endpoint
|-- Auth Middleware
| local / team / hybrid, RBAC, rate limiting
|-- File Watcher
identity sync, per-agent workspace sync, git auto-commit
|-- Multi-Agent
roster sync, agent_id scoping, read-policy SQL enforcement
Core (@signet/core)
types, identity, SQLite, hybrid search, graph traversal
SDK (@signet/sdk)
typed client, React hooks, Vercel AI SDK middleware
Connectors
claude-code, opencode, openclaw, codex
Packages
| Package | Role |
|---|---|
@signet/core | Types, identity, SQLite, hybrid + graph search |
@signet/cli | CLI, setup wizard, dashboard |
@signet/daemon | API server, distillation layer, auth, analytics, diagnostics |
@signet/sdk | Typed client, React hooks, Vercel AI SDK middleware |
@signet/connector-base | Shared connector primitives and utilities |
@signet/connector-claude-code | Claude Code integration |
@signet/connector-opencode | OpenCode integration |
@signet/connector-openclaw | OpenClaw integration |
@signet/connector-codex | Codex CLI integration |
@signet/opencode-plugin | OpenCode runtime plugin — memory tools and session hooks |
@signetai/signet-memory-openclaw | OpenClaw runtime plugin |
@signet/extension | Browser extension for Chrome and Firefox |
@signet/tray | Desktop system tray application |
@signet/native | Native accelerators |
predictor | Predictive memory scorer sidecar (Rust) |
signetai | Meta-package (signet binary) |
Documentation
- Quickstart
- CLI Reference
- Configuration
- Hooks
- Harnesses
- Secrets
- Skills
- Auth
- Dashboard
- SDK
- API Reference
- Knowledge Architecture
- Knowledge Graph
- Benchmarks
- Roadmap
Research
| Paper / Project | Relevance |
|---|---|
| Lossless Context Management (Voltropy, 2026) | Hierarchical summarization, guaranteed convergence. Patterns adapted in LCM-PATTERNS.md. |
| Recursive Language Models (Zhang et al., 2026) | Active context management. LCM builds on and departs from RLM's approach. |
| acpx (OpenClaw) | Agent Client Protocol. Structured agent coordination. |
| lossless-claw (Martian Engineering) | LCM reference implementation as an OpenClaw plugin. |
| openclaw (OpenClaw) | Agent runtime reference. |
| arscontexta | Agentic notetaking patterns. |
| ACAN (Hong et al.) | LLM-enhanced memory retrieval for generative agents. |
| Kumiho (Park et al., 2026) | Prospective indexing. Hypothetical query generation at write time. Reports 0.565 F1 on the official split and 97.5% on the adversarial subset. |
Development
git clone https://github.com/Signet-AI/signetai.git
cd signetai
bun install
bun run build
bun test
bun run lint
cd packages/daemon && bun run dev # Daemon dev (watch mode)
cd packages/cli/dashboard && bun run dev # Dashboard dev
Requirements: Node.js 18+, Bun, Ollama (recommended) or OpenAI API key. macOS or Linux.
Contributing
See CONTRIBUTING.md. Build on existing patterns.
Open an issue before contributing significant features. Read the
AI Policy before submitting AI-assisted work.
Contributors
License
Apache-2.0.
signetai.sh · docs · spec · discussions · issues