Signetai
Signet is an open protocol for agent identity, knowledge, and trust. It defines how an agent should persist across sessions, learn from its operator, and carry its identity between tools.
Install / Use
/learn @Signet-AI/SignetaiREADME
S I G N E T A I
Local-first persistent memory for AI agents
<a href="https://github.com/Signet-AI/signetai/actions"><img src="https://img.shields.io/github/actions/workflow/status/Signet-AI/signetai/release.yml?branch=main&style=for-the-badge" alt="CI status"></a> <a href="https://github.com/Signet-AI/signetai/releases"><img src="https://img.shields.io/github/v/release/Signet-AI/signetai?include_prereleases&style=for-the-badge" alt="GitHub release"></a> <a href="https://www.npmjs.com/package/signetai"><img src="https://img.shields.io/npm/v/signetai?style=for-the-badge" alt="npm"></a> <a href="https://github.com/Signet-AI/signetai/discussions"><img src="https://img.shields.io/github/discussions/Signet-AI/signetai?style=for-the-badge" alt="Discussions"></a> <a href="https://discord.gg/pHa5scah9C"><img src="https://img.shields.io/badge/Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white" alt="Discord"></a> <a href="LICENSE"><img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg?style=for-the-badge" alt="Apache-2.0 License"></a> <a href="https://github.com/openclaw/openclaw"><img src="https://img.shields.io/badge/OpenClaw-Compatible-orange?style=for-the-badge" alt="OpenClaw Compatible"></a> <a href="https://solvedby.us/Signet-AI/signetai"><img src="https://solvedby.us/api/badge/Signet-AI/signetai" alt="StarRank"></a>
Website · Docs · Vision · Discussions · Discord · Contributing · AI Policy
</div>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.
Structured memory, graph traversal, and hybrid retrieval matter, but they are not the point. They are substrate for the larger job Signet is building toward: deciding what should enter the model's context window right now, with enough precision to help instead of distract.
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.
Docker self-hosting
Run Signet as a containerized daemon with first-party Compose assets:
cd deploy/docker
cp .env.example .env
docker compose up -d --build
See docs/SELF-HOSTING.md for token bootstrap,
backup, and upgrade runbook details.
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 | | 🎯 Predictive context selection | Structured memory and session feedback build toward a scorer that learns what context is actually useful | | 💾 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 | | 🕸️ Structured retrieval substrate | Graph traversal + FTS5 + vector search produce bounded candidate context | | 🎯 Predictive scorer | Wired into the system as a maturing path toward learned reranking from session outcomes, including regret signals | | 🔬 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 | | Forge | First-party | Native runtime / reference harness | | 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](https://
