Skip to content

Signet-AI/signetai

Signet

S I G N E T A I

Local-first persistent memory for AI agents

CI status GitHub release npm Discussions Discord Apache-2.0 License OpenClaw Compatible

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.

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 (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_WORKSPACE means your active Signet workspace path. Default is ~/.agents, configurable via signet 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
  → raw transcript is preserved and distilled into structured memory
  → entities, constraints, and relations are linked into a navigable graph
  → traversal + flat search build a bounded candidate pool
  → predictive scorer reranks candidates against your interaction patterns
  → fail-open guards keep baseline ordering if the model is cold or unavailable
  → 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 + flat search -> fusion -> dampening
  |-- 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
  |     learned relevance model over structured candidates
  |-- 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, oh-my-pi, forge

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
packages/forge Forge native terminal harness and reference runtime implementation
@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/connector-oh-my-pi Oh My Pi integration
@signet/oh-my-pi-extension Oh My Pi extension bridge
@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

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+ or Bun
  • macOS or Linux
  • Optional for harness integrations: Claude Code, Codex, OpenCode, or OpenClaw

Embeddings (choose one):

  • Built-in (recommended) — no extra setup, runs locally via ONNX (nomic-embed-text-v1.5)
  • Ollama — alternative local option, requires nomic-embed-text model
  • OpenAI — cloud option, requires OPENAI_API_KEY

Contributing

New to open source? Start with Your First PR. For code conventions and project structure, see CONTRIBUTING.md. Open an issue before contributing significant features. Read the AI Policy before submitting AI-assisted work.

Contributors

NicholaiVogel BusyBee3333 stephenwoska2-cpu PatchyToes aaf2tbz ddasgupta4 alcar2364 maximhar

Made with love by members of Dashore Incubator & friends of Jake Shore and Nicholai Vogel.

License

Apache-2.0.


signetai.sh · docs · spec · discussions · issues

About

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.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors