freshcrate
Home > MCP Servers > signetai

signetai

Local-first identity, memory, and secrets for AI agents. Portable state across models and harnesses.

Description

Local-first identity, memory, and secrets for AI agents. Portable state across models and harnesses.

README


Models change. Harnesses change. Providers change. Your context should not.

Signet is the portable context layer for AI agents. It keeps identity, memory, provenance, secrets, skills, and working knowledge outside any single chat app, model provider, or harness. The execution surface can change. The agent keeps its footing.

The job is simple: bring your own context to the agents you already use, then keep that context inspectable and under your control. Signet runs beneath Claude Code, OpenCode, OpenClaw, Codex, Hermes Agent, and other harnesses so the durable layer survives the tool of the week.

Memory is ambient. Signet captures useful context between sessions, preserves the raw record, indexes it for recall, and injects relevant context before the next prompt starts. The agent wakes up with continuity instead of asking you to rebuild the room by hand.

Why teams adopt it:

  • less prompt re-explaining between sessions
  • one context layer across agents, models, harnesses, and providers
  • local-first storage with inspectable provenance and repair tools
  • a path away from harness-locked behavioral context

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, Codex, or Hermes Agent, 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.

Bring your own context

Portable memory only matters if the agent can see the world you already work inside. Signet is built around ordinary context, not a special knowledge-base ritual: project notes, transcripts, markdown files, PDFs, URLs, identity files, decisions, preferences, and the corrections that shape how work actually happens.

The durable record stays readable. The semantic layer helps the agent navigate it. Retrieval is a lens over the record, not a replacement for it. When a summary is stale, conflict-heavy, or decision-critical, the agent can climb back down to the source.

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 Sessions are captured automatically, no manual memory ceremony required
πŸ—‚οΈ Source-backed context Raw transcripts and workspace files remain available beneath summaries and recall results
🎯 Inspectable recall Hybrid search, graph traversal, provenance, scopes, and ranking signals explain why context surfaced
🏠 Local-first substrate Data lives on your machine in SQLite and markdown, portable by default
🀝 Cross-harness continuity Claude Code, OpenCode, OpenClaw, Codex, Pi, Hermes Agent, one shared context layer
🧩 SDK-first extensibility Typed SDKs, middleware, and plugin surfaces let builders shape Signet around their own agents

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 context layer across multiple agent harnesses

Signet may be overkill if you only need short-lived chat memory inside a single hosted assistant.

What Signet is not

Signet is not a chat app, not a harness, and not a fake second brain trying to outsmart the model. It is the durable layer underneath: files, memory, identity, provenance, retrieval, secrets, and permissions.

The harness should stay replaceable. The provider should provide intelligence, not custody. Signet keeps the continuity somewhere you can inspect, repair, move, and rebuild.

Why you can trust this

  • runs local-first by default
  • raw records and workspace files stay inspectable
  • SQLite powers the query layer; recall keeps provenance and source references
  • memory can be repaired (edit, supersede, delete, reclassify)
  • easy to build on: SDK, connectors, MCP, and workspace primitives let teams shape Signet around their agents, policies, and workflows
  • no vendor lock-in, your context stays portable

If you are building agents for an organization, Signet is meant to be shaped, not merely installed. Use the SDK, plugin SDK, connectors, and MCP surface to fit your own agents, permission model, workflows, and deployment style.

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
🎯 Feedback-aware ranking Recency, provenance, importance, and dampening signals help separate useful context from repeated noise
πŸ”¬ 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 + plugin SDK Typed client, React hooks, Vercel/OpenAI helpers, and plugin surfaces for extending the ecosystem
πŸ”Œ 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, OpenCode, Pi, or Hermes Agent β€” 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
Hermes Agent Supported Memory provider plugin
Pi Supported Extension + Hooks
Gemini CLI Planned β€”

Don't see your favorite harness? file an issue and request that it be added!

LongMemEval Benchmark

LongMemEval measures whether a memory system can recover and use facts across long-running, multi-session assistant conversations. Signet's current published run scores 97.6% answer accuracy under the MemoryBench rules profile.

That profile keeps the benchmark contract strict: memories are ingested through /api/memory/remember, recalled through /api/memory/recall, and answered from bounded daemon recall results. Search does not call an LLM.

See Benchmarks for the methodology and run workflow.

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

Signet separates memory into three layers:

workspace / transcripts
  truth layer: raw files, identity docs, source records, session history

semantic memory
  navigation layer: summaries, entities, decisions, constraints, relations

query layer
  retrieval lens: FTS, vector search, graph traversal, scopes, provenance

The record is preserved first. The daemon indexes it, extracts useful structure, and keeps recall bounded and inspectable. The agent gets the right context before the next prompt starts, with a path back to the raw source when the semantic layer is not enough.

After setup, there is no per-session memory ceremony. The pipeline runs in the background and the agent wakes up with its memory intact.

Read more: Why Signet Β· Architecture Β· Knowledge Graph Β· Pipeline

Architecture

Workspace (~/.agents/)
  AGENTS.md, SOUL.md, IDENTITY.md, USER.md, MEMORY.md, transcripts, memory files
  readable source records and agent identity files

CLI (signet)
  setup, knowledge, secrets, skills, hooks, git sync, service mgmt

Daemon (@signet/daemon, localhost:3850)
  |-- HTTP API (memory, retrieval, auth, skills, updates, tooling)
  |-- File Watcher
  |     identity sync, per-agent workspace sync, git auto-commit
  |-- Distillation Layer
  |     extraction -> decision -> graph -> retention
  |-- Retrieval
  |     FTS + vectors + graph traversal -> fusion -> dampening
  |-- Lossless Transcripts
  |     raw session storage -> expand-on-recall join
  |-- Document Worker
  |     ingest -> chunk -> embed -> index
  |-- Ranking + Feedback
  |     bounded candidate ordering, provenance, source-aware scoring
  |-- MCP Server
  |     tool registration, aggregation, blast radius endpoint
  |-- Auth Middleware
  |     local / team / hybrid, RBAC, rate limiting
  |-- Multi-Agent
        roster sync, agent_id scoping, read-policy SQL enforcement

Core (@signet/core)
  types, identity, SQLite storage/query, hybrid search, graph traversal

SDK (@signet/sdk)
  typed client, React hooks, Vercel/OpenAI helpers, plugin-facing primitives

Connectors
  claude-code, opencode, openclaw, codex, oh-my-pi, pi, hermes-agent, 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/OpenAI helpers, plugin-facing primitives
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/connector-hermes-agent Hermes Agent integration
@signet/connector-pi Pi coding agent integration
@signet/oh-my-pi-extension Oh My Pi extension bridge
@signet/pi-extension Pi extension β€” memory tools, lifecycle, and session hooks
@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/desktop Electron desktop application
@signet/tray Shared tray/menu bar utilities
@signet/native Native accelerators
predictor Experimental Rust sidecar for learned relevance ranking
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.

Star History

Star history chart for Signet-AI/signetai

Contributors

NicholaiVogel BusyBee3333 stephenwoska2-cpu PatchyToes aaf2tbz ddasgupta4 alcar2364 maximhar lost-orchard Ostico gpzack

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

Release History

VersionChangesUrgencyDate
v0.103.3## [0.103.3] - 2026-04-21 Release summary: 1 bug fix. Tag range: `v0.103.2..v0.103.3`. ### Bug Fixes - **daemon**: dedupe summary fact hash collisions (#544)High4/21/2026
v0.103.2## [0.103.2] - 2026-04-21 Release summary: 1 bug fix. Tag range: `v0.103.1..v0.103.2`. ### Bug Fixes - **daemon**: suppress OpenCode notifications for extraction sessions (#537)High4/21/2026
v0.103.1## [0.103.1] - 2026-04-21 Release summary: 1 bug fix. Tag range: `v0.103.0..v0.103.1`. ### Bug Fixes - **daemon**: skip unchanged artifact reindex on cold start (#542)High4/21/2026
v0.103.0## [0.103.0] - 2026-04-21 Release summary: 1 feature and 1 bug fix. Tag range: `v0.102.7..v0.103.0`. ### Features - **connector-gemini**: add Gemini CLI harness connector (#541) ### Bug Fixes - **daemon**: make writeImmutableArtifact idempotent for job retries (#543)High4/21/2026
v0.102.7## [0.102.7] - 2026-04-20 Release summary: 1 bug fix. Tag range: `v0.102.6..v0.102.7`. ### Bug Fixes - **daemon**: dedupe automatic hooks by runtime path (#540)High4/20/2026
v0.102.6## [0.102.6] - 2026-04-20 Release summary: 1 bug fix. Tag range: `v0.102.5..v0.102.6`. ### Bug Fixes - **cli**: run Bun global installs with Bun (#539)High4/20/2026
v0.102.5## [0.102.5] - 2026-04-20 Release summary: 1 refactor. Tag range: `v0.102.4..v0.102.5`. ### Refactoring - **memory**: align recall and remember surfaces (#531)High4/20/2026
v0.102.4## [0.102.4] - 2026-04-20 Release summary: internal maintenance release with no conventional commit entries captured. Tag range: `v0.102.3..v0.102.4`. No notable changes were captured from conventional commit subjects for this release.High4/20/2026
v0.102.3## [0.102.3] - 2026-04-19 Release summary: 1 bug fix. Tag range: `v0.102.2..v0.102.3`. ### Bug Fixes - **daemon**: resolve all typescript strict-mode errors in daemon package (#527)High4/19/2026
v0.102.2## [0.102.2] - 2026-04-19 Release summary: internal maintenance release with no conventional commit entries captured. Tag range: `v0.102.1..v0.102.2`. No notable changes were captured from conventional commit subjects for this release.High4/19/2026
v0.102.1## [0.102.1] - 2026-04-18 Release summary: 1 bug fix. Tag range: `v0.102.0..v0.102.1`. ### Bug Fixes - **hermes**: scope Signet memory to named agents (#504)High4/18/2026
v0.102.0## [0.102.0] - 2026-04-18 Release summary: 1 feature. Tag range: `v0.101.2..v0.102.0`. ### Features - **dashboard**: add plugin registry panel (#524)High4/18/2026
v0.101.2## [0.101.2] - 2026-04-18 Release summary: 1 bug fix. Tag range: `v0.101.1..v0.101.2`. ### Bug Fixes - **ci**: align desktop release build prerequisites (#525)High4/18/2026
v0.101.1## [0.101.1] - 2026-04-17 Release summary: 1 bug fix. Tag range: `v0.101.0..v0.101.1`. ### Bug Fixes - **cli**: pass AGENTS_DIR directly in runSyncTemplates instead of accepting a parameter (#523)High4/18/2026
v0.101.0## [0.101.0] - 2026-04-17 Release summary: 1 feature. Tag range: `v0.100.1..v0.101.0`. ### Features - **desktop**: replace Tauri shell with Electron app (#519)High4/17/2026
v0.100.1## [0.100.1] - 2026-04-17 Release summary: 1 bug fix. Tag range: `v0.100.0..v0.100.1`. ### Bug Fixes - **daemon**: wire enableOllamaFallback config and add native embedding init cooldown (#520)High4/17/2026
v0.100.0## [0.100.0] - 2026-04-17 Release summary: 1 feature. Tag range: `v0.99.8..v0.100.0`. ### Features - **plugins**: add plugin SDK core v1 secrets registry (#518)High4/17/2026
v0.99.8## [0.99.8] - 2026-04-17 Release summary: 1 bug fix. Tag range: `v0.99.7..v0.99.8`. ### Bug Fixes - **codex**: prevent session-start hook timeouts (#517)High4/17/2026
v0.99.7## [0.99.7] - 2026-04-17 Release summary: 1 performance improvement and 2 docs updates. Tag range: `v0.99.6..v0.99.7`. ### Performance - **knowledge-graph**: paginate entity IDs before counting to avoid full GROUP BY (#516) ### Docs - **specs**: add recall confidence gate record - **specs**: define plugin sdk core v1High4/17/2026
v0.99.6## [0.99.6] - 2026-04-16 Release summary: 1 refactor. Tag range: `v0.99.5..v0.99.6`. ### Refactoring - **cli**: prompt for sync after restart (#514)High4/16/2026
v0.99.5## [0.99.5] - 2026-04-16 Release summary: internal maintenance release with no conventional commit entries captured. Tag range: `v0.99.4..v0.99.5`. No notable changes were captured from conventional commit subjects for this release.High4/16/2026
v0.99.4## [0.99.4] - 2026-04-16 Release summary: 1 bug fix. Tag range: `v0.99.3..v0.99.4`. ### Bug Fixes - **daemon**: resolve FD exhaustion and event loop blocking with thousands of memory artifacts (#513)High4/16/2026
v0.99.3## [0.99.3] - 2026-04-15 Release summary: 1 bug fix. Tag range: `v0.99.2..v0.99.3`. ### Bug Fixes - **daemon**: thread deadline into OpenCode session creation (#511)High4/15/2026
v0.99.2## [0.99.2] - 2026-04-14 Release summary: 1 bug fix. Tag range: `v0.99.1..v0.99.2`. ### Bug Fixes - **daemon**: unify LLM concurrency (#509) (#510)High4/14/2026
v0.99.1## [0.99.1] - 2026-04-14 Release summary: 1 bug fix. Tag range: `v0.99.0..v0.99.1`. ### Bug Fixes - **session-tracker**: prevent bypass memory leak in OpenCode provider (#502)Medium4/14/2026
v0.99.0Desktop build artifactsMedium4/14/2026
v0.98.18## [0.98.18] - 2026-04-14 Release summary: 1 bug fix. Tag range: `v0.98.17..v0.98.18`. ### Bug Fixes - **pipeline**: reduce OpenCode session overhead for pipeline jobs (#505)Medium4/14/2026
v0.98.17## [0.98.17] - 2026-04-14 Release summary: 1 bug fix. Tag range: `v0.98.16..v0.98.17`. ### Bug Fixes - **daemon,openclaw,cli**: five correctness bugs found via sqmd structural review (#503)Medium4/14/2026
v0.98.16## [0.98.16] - 2026-04-13 Release summary: 1 bug fix. Tag range: `v0.98.15..v0.98.16`. ### Bug Fixes - **hooks**: prompt agents to check memory before acting (#500)Medium4/13/2026
v0.98.15## [0.98.15] - 2026-04-13 Release summary: 1 bug fix. Tag range: `v0.98.14..v0.98.15`. ### Bug Fixes - **daemon**: enable Signet pipeline through GitHub Copilot providers (#498)Medium4/13/2026
v0.98.14## [0.98.14] - 2026-04-12 Release summary: 2 bug fixes and 1 docs update. Tag range: `v0.98.13..v0.98.14`. ### Bug Fixes - **connector-codex**: emit valid Codex hooks.json schema (#495) - gate dependency synthesis on extraction progress (#492) ### Docs - **readme**: add Ostico as contributor (#494)Medium4/12/2026
v0.98.13## [0.98.13] - 2026-04-12 Release summary: 1 bug fix and 1 docs update. Tag range: `v0.98.12..v0.98.13`. ### Bug Fixes - **mcp**: expose pinned param in memory_store and memory_modify (#491) ### Docs - align generated site metadata (#489)Medium4/12/2026
v0.98.12## [0.98.12] - 2026-04-11 Release summary: 1 docs update. Tag range: `v0.98.11..v0.98.12`. ### Docs - refresh public Signet positioning (#488)Medium4/11/2026
v0.98.11## [0.98.11] - 2026-04-10 Release summary: 1 bug fix. Tag range: `v0.98.10..v0.98.11`. ### Bug Fixes - **release**: rebuild changelog with readable highlights (#487)Medium4/10/2026
v0.98.10No changelog section found for v0.98.10Medium4/10/2026
v0.98.9No changelog section found for v0.98.9Medium4/9/2026
v0.98.8No changelog section found for v0.98.8Medium4/9/2026
v0.98.7No changelog section found for v0.98.7Medium4/8/2026
v0.98.6No changelog section found for v0.98.6Medium4/8/2026
v0.98.5No changelog section found for v0.98.5Medium4/8/2026
v0.98.4No changelog section found for v0.98.4Medium4/8/2026
v0.98.3No changelog section found for v0.98.3Medium4/8/2026
v0.98.2No changelog section found for v0.98.2Medium4/8/2026
v0.98.1No changelog section found for v0.98.1Medium4/7/2026
v0.98.0No changelog section found for v0.98.0Medium4/7/2026
v0.96.0No changelog section found for v0.96.0Medium4/7/2026
v0.97.0No changelog section found for v0.97.0Medium4/7/2026
v0.95.0No changelog section found for v0.95.0Medium4/6/2026
v0.94.0No changelog section found for v0.94.0Medium4/6/2026
v0.93.7No changelog section found for v0.93.7Medium4/5/2026

Dependencies & License Audit

Loading dependencies...

Similar Packages

instarPersistent Claude Code agents with scheduling, sessions, memory, and Telegram.v0.17.14
opencode-magic-contextOpenCode plugin for Magic Context β€” cache-aware infinite context, cross-session memory, and background history compression for AI coding agentsv0.13.2
claw-pilotMulti-agent orchestration runtime with task board, flow engine, budget control, MCP integration and real-time dashboard. Self-hosted on Linux/macOS.v0.81.1
ClawMemOn-device context engine and memory for AI agents. Claude Code, Hermes and OpenClaw. Hooks + MCP server + hybrid RAG search.main@2026-04-19
mayrosProduction-ready AI agent framework β€” semantic memory, multi-agent mesh, MCP server, intelligent routing, governance, and 67+ platform integrations.v0.3.2