Quickstart
Get Signet running in about five minutes. For the full Configuration reference, see that doc. For CLI commands, see Cli.
Why Signet
Your agent starts every session from zero. It doesn’t know what you worked on yesterday. It doesn’t know your preferences, your projects, or the decisions you’ve already made together. Every session is a first date.
The industry’s answer to this has often been to give agents memory tools — “remember this,” “recall that.” That’s not memory. That’s a filing cabinet the agent sometimes opens. It puts the LLM in charge of micromanaging what to store and when to retrieve it.
Signet takes a different approach. The goal is ambient context selection: turn interactions into durable memory substrate, then learn what should surface automatically when the next session begins.
The distillation layer
At the end of every conversation, Signet reviews the session and distills it. A local LLM breaks the conversation into atomic facts, checks them against what’s already known, and decides whether to add new facts, skip duplicates, or record proposals for more complex changes. Your agent won’t store “prefers dark mode” fourteen times.
The knowledge graph
Named entities — people, projects, tools, concepts — are extracted and linked. When you ask about a project, Signet traverses the graph: the project’s architecture, the people involved, the tools it depends on, the constraints that apply. This structure improves the quality of candidate context instead of treating memory as a flat pile of fragments.
The predictive scorer
A predictive scorer can use that structured candidate pool to learn what context is actually useful in your sessions. The aim is not just storage or retrieval, but selecting the most helpful context automatically, with high precision. The scorer is unique to each user. Your weights never leave your machine.
Crucially, the system should learn from regret, not just reuse. If injected context does not help, that should become negative evidence instead of being silently reinforced forever.
Retrieval
Retrieval blends graph traversal, keyword search, and semantic similarity into a bounded candidate set, then reranks and filters it. The constellation view in the dashboard lets you inspect the agent’s knowledge topology.
Document ingest
Feed any document into the distillation layer. PDFs, specs, reference pages, URLs. They’re chunked, embedded, and indexed alongside your agent’s insights.
Safety guarantees
- Raw-first: content is persisted before any LLM processing begins
- Pinned insights are sacred: the distillation layer cannot modify them. Only you can.
- Everything is recoverable: deletions are soft, with a recovery window and full audit trail
Automatic destructive memory mutations remain conservative and gated in the current implementation. Explicit user/operator repair flows are the reliable path today.
The same agent follows you across Claude Code, OpenCode, and OpenClaw. Same personality, same knowledge, same secrets. Switch tools without starting over.
For deeper technical details, see Architecture. For the long-term vision, see VISION.md.
Prerequisites
- Node.js 18+ (or Bun 1.0+)
- One of: Ollama (for local embeddings) or an OpenAI API key
- macOS or Linux (Windows support planned)
Install
# bun (recommended)
bun add -g signetai
# npm
npm install -g signetai
# or one-line installer
curl -sL https://signetai.sh/install | bash
Running signet setup launches an interactive wizard that walks you through
the full setup. You don’t need to read anything else first. Signet records
your primary package manager during setup and reuses it for skill installs
and update commands.
For agent-driven onboarding, use non-interactive mode:
signet setup --non-interactive \
--name "My Agent" \
--harness claude-code \
--embedding-provider ollama \
--extraction-provider claude-code
In non-interactive mode, agents should ask the user to choose both providers first, then pass those choices explicitly.
Extraction safety note:
- intended usage is Claude Code on Haiku, Codex CLI on GPT Mini with a
Pro/Max subscription, or local Ollama with at least
qwen3:4b - on a VPS, set extraction to
noneunless you explicitly want background LLM calls - remote API extraction can rack up extreme fees fast
Setup Wizard
The wizard asks a series of questions:
1. Agent name
Pick a name for your agent — this appears in harness prompts and the dashboard.
2. Harnesses
Select which AI platforms you use. Signet will configure integrations for each:
- Claude Code — hooks + CLAUDE.md sync
- OpenCode — plugin + AGENTS.md sync
- OpenClaw — adapter-openclaw hooks
- Codex — wrapper install + session hooks
3. Embedding provider
Embeddings power semantic (meaning-based) memory search. Choose:
- Built-in (recommended) — no extra setup required.
- Ollama — runs locally, free, no API key needed. Setup checks your binary, service, and model, and guides install/pull when needed.
- OpenAI — uses the OpenAI embeddings API. Requires
OPENAI_API_KEY. - Skip — memory still works via keyword search, just no semantic search.
4. Embedding model
For Ollama, nomic-embed-text is a good default. Setup can pull it for
you (with confirmation), or you can do it manually:
ollama pull nomic-embed-text
5. Search balance
The alpha setting controls how much weight goes to semantic vs. keyword
search. 0.7 (70% semantic, 30% keyword) works well for most people.
6. Git & auto-commit
The wizard can initialize a git repo in $SIGNET_WORKSPACE/ so every change to
your agent files is automatically versioned.
After the wizard completes, the Daemon starts automatically and the
Dashboard opens at http://localhost:3850.
What Gets Created
$SIGNET_WORKSPACE/
├── agent.yaml # Your config & manifest
├── AGENTS.md # Agent identity & instructions
├── SOUL.md # Personality & tone
├── MEMORY.md # Generated working memory (starts empty)
├── memory/
│ ├── memories.db # SQLite memory database
│ └── scripts/ # Optional batch tools (memory.py)
├── skills/
│ ├── remember/ # Built-in: /remember command
│ └── recall/ # Built-in: /recall command
└── .daemon/
└── logs/ # Daemon logs
If you selected Claude Code:
~/.claude/CLAUDE.md— auto-synced from AGENTS.md~/.claude/settings.json— hooks for session start/end
If you selected OpenCode:
~/.config/opencode/AGENTS.md— auto-synced~/.config/opencode/plugins/signet.mjs— bundled plugin with remember/recall tools
What Signet Does
Once running, Signet gives you a persistent agent identity that works across all your AI tools. The core features:
- Memory pipeline — conversations are processed automatically by
Pipeline V2, which extracts meaningful facts and decisions using a
configured extraction backend. The safe intended setups are Claude
Code on Haiku, Codex on GPT Mini, or local Ollama with at least
qwen3:4b. Set the extraction provider tononeif you want Signet without background extraction. Memories accumulate over time and are recalled in future sessions. - Hybrid search — recall combines semantic and keyword search so you find relevant memories even when phrasing varies.
- Connectors — platform adapters for Claude Code, OpenCode, and OpenClaw keep your agent config in sync across tools.
- Analytics — the dashboard tracks memory growth, session activity, and pipeline health over time.
- Document ingest — feed local files or URLs into the memory pipeline to give your agent persistent knowledge about a codebase, spec, or doc.
- Diagnostics — built-in health checks and pipeline status endpoints help you spot issues fast.
- SDK — embed Signet into your own apps via
@signet/sdk. - Secrets — API keys stored encrypted at rest, never exposed to agents directly.
- Skills — installable instruction packages that extend agent behavior.
- Auth — token-based access control for local, team, and hybrid deployments. See Auth for details.
Basic Usage
Check status
signet status
Shows daemon state, file health, and memory count.
Open the dashboard
signet dashboard
Opens http://localhost:3850 in your browser. From here you can edit
your agent config, browse memories, view analytics, and manage skills.
You can also reach it directly in your browser any time the daemon is
running.
Save a memory
Use the CLI or /remember command in any connected harness:
# CLI
signet remember "nicholai prefers bun over npm"
signet remember "critical memory" --critical
signet remember "tagged memory" -t project,signet
# In harness
/remember nicholai prefers bun over npm
/remember critical: never commit secrets to git
/remember [project,signet]: daemon runs on port 3850
The critical: prefix or --critical flag pins a memory so it never
decays. The [tag1,tag2]: prefix or -t flag adds searchable tags.
You can also let the pipeline do this automatically — at the end of a
session, Pipeline V2 reads the conversation and extracts memories on its
own. Manual /remember is for things you want to ensure are captured.
Search memories
# CLI
signet recall "coding preferences"
signet recall "signet" --type decision -l 5
# In harness
/recall coding preferences
/recall signet architecture
/recall what did we decide about authentication
View daemon logs
signet daemon logs
signet daemon logs -n 100
Stop/start the daemon
signet daemon stop
signet daemon start
signet daemon restart
Managing Secrets
Store API keys and other sensitive values encrypted at rest:
# Add a secret (value is never echoed)
signet secret put OPENAI_API_KEY
# List stored secrets (names only)
signet secret list
# Remove a secret
signet secret delete GITHUB_TOKEN
Secrets are encrypted with libsodium using a machine-bound key. Agents never see secret values directly.
Managing Skills
Skills are packaged instructions in $SIGNET_WORKSPACE/skills/. They extend
what your agent can do.
# See what's installed
signet skill list
# Search the skills.sh registry
signet skill search browser
# Install a skill
signet skill install browser-use
# Remove a skill
signet skill remove weather
Install as a System Service
To have Signet start automatically on boot:
cd packages/daemon
bun run install:service
macOS (launchd):
launchctl load ~/Library/LaunchAgents/ai.signet.daemon.plist
Linux (systemd):
systemctl --user enable signet.service
systemctl --user start signet.service
Editing Your Agent
Your agent identity lives in two key files:
$SIGNET_WORKSPACE/AGENTS.md — What the agent knows and how it should
behave. This is the file that syncs to all your harnesses.
$SIGNET_WORKSPACE/SOUL.md — Personality, voice, values. Mostly for your
own reference or for harnesses that load it separately.
Edit them directly in your editor or via the dashboard’s config editor. Changes sync to harnesses automatically within 2 seconds.
Auth and Team Deployments
By default, Signet runs in local mode with no auth required on requests. In the default local setup, the daemon also binds to localhost only, which keeps that unauthenticated mode local by default. For team deployments or self-hosted remote access, Signet supports token-based auth with roles and scopes. See Auth and Self-Hosting for setup details.
Troubleshooting
Daemon won’t start
Check if port 3850 is in use:
lsof -i :3850
Remove a stale PID file if needed:
rm $SIGNET_WORKSPACE/.daemon/pid
signet daemon start
Embeddings not working
Make sure Ollama is running:
ollama serve &
ollama pull nomic-embed-text
Or check that OPENAI_API_KEY is set in your environment (or stored
as a secret and referenced in agent.yaml).
Changes not syncing to Claude Code
Make sure ~/.claude/ exists and you have the harness configured:
ls ~/.claude/CLAUDE.md
signet status
Dashboard not loading
curl http://localhost:3850/health
signet daemon logs
Next Steps
- Configuration Reference — all agent.yaml options
- Memory System — how remember/recall works
- Pipeline — how Pipeline V2 extracts and processes memories
- Connectors — platform connector details
- Hooks — lifecycle hooks for harness integration
- Analytics — session and memory analytics
- Diagnostics — health checks and pipeline status
- Documents — ingest files and URLs into memory
- SDK — embed Signet in your own apps
- Auth — token-based auth and team deployment modes
- Harnesses — detailed integration docs
- API Reference — HTTP API for scripting and tooling