CLI Reference — Signet Docs

Docs / Reference

CLI Reference

Complete reference for all Signet CLI commands.

Signet CLI Reference

Complete reference for all Signet CLI commands. For the Daemon HTTP API, see Api. For initial setup walkthrough, see Quickstart.

Path note: $SIGNET_WORKSPACE means your active Signet workspace path. Default is ~/.agents, configurable via signet workspace set <path>.


Installation

# bun (recommended)
bun add -g signetai

# npm
npm install -g signetai

# or installer script
curl -sL https://signetai.sh/install | bash

Runtime operations that need package execution (skills, updates) follow the primary package manager captured during setup, with deterministic fallback when unavailable.


Commands Overview

CommandDescription
signetShow help, examples, and command map
signet setupFirst-time setup wizard
signet configureInteractive config editor (signet config alias)
signet statusShow daemon and agent status
signet doctorRun local health checks
signet dashboardOpen web UI in browser
signet daemonGrouped daemon subcommands
signet daemon startStart the daemon
signet daemon stopStop the daemon
signet daemon restartRestart the daemon
signet daemon logsView daemon logs
signet rememberSave a memory
signet recallSearch memories
signet exportExport a portable bundle
signet importImport a portable bundle
signet migrate-schemaMigrate database to unified schema
signet migrate-vectorsMigrate BLOB vectors to sqlite-vec format
signet syncSync built-in templates and skills
signet secretManage encrypted secrets
signet skillManage agent skills from registry
signet gitGit sync management for $SIGNET_WORKSPACE
signet hookLifecycle hook commands
signet updateCheck, install, and manage auto-updates
signet bypassPer-session hook bypass toggle
signet embedManage memory embeddings

signet (No Arguments)

Shows the top-level help output with examples. This keeps the CLI safe to call from scripts and agents without dropping into an interactive menu.

  ◈ signet v0.1.0
  own your agent. bring it anywhere.

  Usage: signet [options] [command]

  Examples:
    signet setup
    signet status
    signet doctor
    signet daemon start
    signet remember "Nicholai prefers command-first CLIs"

Use explicit commands for interactive flows:

  • signet setup — initialize or migrate a workspace
  • signet configure — edit agent settings interactively
  • signet doctor — troubleshoot local issues

signet setup

Interactive first-time setup wizard (with optional non-interactive mode). Creates the $SIGNET_WORKSPACE/ directory and all necessary files.

signet setup
signet setup --path /custom/path
signet setup --non-interactive \
  --name "My Agent" \
  --harness claude-code \
  --embedding-provider ollama \
  --extraction-provider claude-code

Options:

OptionDescription
-p, --path <path>Custom base path (default: $SIGNET_WORKSPACE)
--non-interactiveRun setup without prompts
--name <name>Agent name in non-interactive mode
--description <description>Agent description in non-interactive mode
--harness <harness>Repeatable/comma-separated harness list (claude-code, opencode, openclaw, codex)
--embedding-provider <provider>Non-interactive embedding provider (ollama, openai, native, none) — required in non-interactive setup
--embedding-model <model>Non-interactive embedding model
--extraction-provider <provider>Non-interactive extraction provider (claude-code, codex, ollama, opencode, openrouter, none) — required in non-interactive setup
--extraction-model <model>Non-interactive extraction model
--search-balance <alpha>Non-interactive search alpha (0-1)
--openclaw-runtime-path <mode>Non-interactive OpenClaw mode (plugin, legacy)
--configure-openclaw-workspacePatch discovered OpenClaw configs to $SIGNET_WORKSPACE
--open-dashboardOpen dashboard after non-interactive setup
--skip-gitSkip git initialization/commits in non-interactive mode

Non-interactive behavior:

  • setup method: create new identity (no GitHub import)
  • embedding provider must be explicitly provided via --embedding-provider
  • extraction provider must be explicitly provided via --extraction-provider
  • git: enabled unless --skip-git is passed

Extraction safety note:

  • intended usage is claude-code on Haiku, codex on GPT Mini with a Pro/Max subscription, or local ollama with at least qwen3:4b
  • set --extraction-provider none on a VPS if you do not want background extraction
  • remote API extraction can create extreme usage fees fast

Wizard steps:

  1. Agent Name - What to call your agent
  2. Harnesses - Which AI platforms you use:
    • Claude Code (Anthropic CLI)
    • OpenCode
    • OpenClaw
    • Codex
  3. OpenClaw Workspace - Appears only when an existing OpenClaw config is detected; workspace is patched only if you opt in
  4. Description - Short agent description
  5. Embedding Provider:
    • Built-in (recommended, no setup required)
    • Ollama (local)
    • OpenAI API
    • Skip embeddings
  6. Embedding Model - Based on provider:
    • Built-in: nomic-embed-text-v1.5
    • Ollama: nomic-embed-text, all-minilm, mxbai-embed-large
    • OpenAI: text-embedding-3-small, text-embedding-3-large
    • Ollama selections run preflight checks for binary availability, service health, and model presence; if checks fail, setup offers retry, switch to built-in embeddings, switch to OpenAI, or continue without embeddings
  7. Search Balance - Semantic vs keyword weighting
  8. Advanced Settings (optional):
    • top_k - Search candidates per source
    • min_score - Minimum search score threshold
    • session_budget - Context character limit
    • decay_rate - Memory importance decay
  9. Import - Optionally import from another platform
  10. Git - Initialize version control
  11. Launch Dashboard - Open web UI

What gets created:

$SIGNET_WORKSPACE/
├── agent.yaml           # Configuration
├── AGENTS.md            # Agent identity
├── MEMORY.md            # Working memory
├── memory/
│   ├── memories.db      # SQLite database
│   └── scripts/         # Memory tools
├── harnesses/
├── hooks/               # OpenClaw hooks (if selected)
│   └── agent-memory/
└── .daemon/
    └── logs/

If harnesses are selected, their configs are also created:

  • Claude Code: ~/.claude/settings.json with hooks, ~/.claude/CLAUDE.md
  • OpenCode: ~/.config/opencode/plugins/signet.mjs plugin, ~/.config/opencode/AGENTS.md
  • OpenClaw: $SIGNET_WORKSPACE/hooks/agent-memory/ hook directory
  • Codex: wrapper installed at ~/.config/signet/bin/codex with session hooks

signet configure

Interactive configuration editor for modifying $SIGNET_WORKSPACE/agent.yaml.

signet configure
signet config      # Alias

Sections:

  1. Agent identity - Name and description
  2. Harnesses - AI platform selection
  3. Embedding provider - Ollama/OpenAI settings
  4. Search settings - Alpha, top_k, min_score
  5. Memory settings - Session budget, decay rate
  6. View current config - Display agent.yaml contents

Changes are saved to agent.yaml immediately.


signet status

Show comprehensive status of the Signet installation.

signet status
signet status --path /custom/path

Options:

OptionDescription
-p, --path <path>Custom base path

Output:

  ◈ signet v0.1.0
  own your agent. bring it anywhere.

  Status

  ● Daemon running
    PID: 12345
    Uptime: 2h 15m
    Dashboard: http://localhost:3850

  ✓ AGENTS.md
  ✓ agent.yaml
  ✓ memories.db

  Memories: 42
  Conversations: 7

  Path: /home/user/.agents

signet dashboard

Open the Signet web dashboard in your default browser.

signet dashboard
signet ui          # Alias

Options:

OptionDescription
-p, --path <path>Custom base path

If the daemon is not running, it will be started automatically.


Daemon Commands

Daemon operations live under the signet daemon subcommand group. The top-level shortcuts still exist as backwards-compatible aliases, but the grouped form is the preferred surface.

signet daemon start
signet daemon stop
signet daemon restart
signet daemon status
signet daemon logs

# Backwards-compatible aliases
signet start
signet stop
signet restart
signet logs

signet daemon start

Start the Signet daemon if not already running.

  ◈ signet v0.1.0
  own your agent. bring it anywhere.

✔ Daemon started
  Dashboard: http://localhost:3850

Top-level alias: signet start

signet daemon stop

Stop the running Signet daemon.

Top-level alias: signet stop

signet daemon restart

Stop and start the daemon. Useful after installing an update.

Top-level alias: signet restart

signet daemon logs

View daemon logs.

signet daemon logs
signet daemon logs -n 100
signet daemon logs --follow
signet daemon logs --level warn
signet daemon logs --category memory

Top-level alias: signet logs

Options:

OptionDescription
-n, --lines <n>Number of lines to show (default: 50)
-f, --followFollow log output in real-time
-l, --level <level>Filter by level: debug, info, warn, error
-c, --category <category>Filter by category: daemon, api, memory, sync, git, watcher

Service Installation

The daemon can be installed as a system service (systemd on Linux, launchd on macOS) using the daemon package’s bun scripts:

cd packages/daemon
bun run install:service    # Install as systemd/launchd service
bun run uninstall:service  # Remove the service

These are package-level scripts, not top-level signet CLI commands. They register a unit that starts the daemon automatically at login.


signet remember

Save a memory to the database. The daemon embeds it for vector search if an embedding provider is configured.

signet remember "User prefers dark mode"
signet remember "critical: never push to main" --critical
signet remember "deploy runs on Friday" --tags devops,deploy --who user

Options:

OptionDescription
-w, --who <who>Who is remembering (default: user)
-t, --tags <tags>Comma-separated tags
-i, --importance <n>Importance score, 0-1 (default: 0.7)
--criticalMark as critical/pinned

Output:

✔ Saved memory: mem_abc123 (embedded)
  Tags: devops,deploy

signet recall

Search memories using hybrid vector + keyword search.

signet recall "user preferences"
signet recall "deploy process" --limit 5
signet recall "auth" --tags backend --who claude-code
signet recall "secrets" --json

Options:

OptionDescription
-l, --limit <n>Max results (default: 10)
-t, --type <type>Filter by memory type
--tags <tags>Filter by tags (comma-separated)
--who <who>Filter by author
--jsonOutput raw JSON

signet export / signet import

Export and import portable Signet bundles. This is the supported path for moving an agent between machines or backing up identity + memory state from the CLI.

signet export
signet export --json
signet import ./signet-export-2026-03-22
signet import ./signet-export-2026-03-22.json --json --conflict merge

signet export writes a portable bundle containing:

  • identity files
  • agent.yaml
  • memories
  • entities
  • relations
  • installed skills

signet import restores those files into $SIGNET_WORKSPACE/. Conflict handling for memories is controlled with --conflict:

  • skip — keep existing memories and skip duplicates
  • overwrite — replace matching memories
  • merge — merge compatible records when supported

signet migrate-schema

Migrate an existing memory database to Signet’s unified schema. Useful when upgrading from an older version or copying $SIGNET_WORKSPACE/ between machines.

signet migrate-schema
signet migrate-schema --path /custom/path

Supported source schemas:

SchemaSource
pythonOriginal Python memory system
cli-v1Early Signet CLI (v0.1.x)
coreCurrent unified schema (no migration needed)

Migration is idempotent - safe to run multiple times. All existing memories are preserved. The daemon is stopped and restarted automatically during the process.

Output:

- Checking database schema...
  Migrating from python schema...
  ✓ Migrated 261 memories from python to core

  Migration complete!

signet migrate-vectors

Migrate existing BLOB-format embeddings to the sqlite-vec format. Run this once after upgrading from a version that stored vectors as raw BLOBs.

signet migrate-vectors
signet migrate-vectors --keep-blobs
signet migrate-vectors --dry-run

Options:

OptionDescription
--keep-blobsKeep the old BLOB column after migration (safer rollback)
--remove-zvecDelete vectors.zvec file after successful migration
--dry-runShow what would be migrated without making changes

signet sync

Sync built-in template files and skills to your $SIGNET_WORKSPACE/ directory, and re-register hooks for any detected harnesses. Run this after an upgrade if built-in skills appear stale.

signet sync

signet secret

Manage encrypted Secrets stored via the daemon, including 1Password service-account integration.

signet secret put OPENAI_API_KEY
signet secret put GITHUB_TOKEN ghp_...   # value inline
signet secret list
signet secret delete GITHUB_TOKEN
signet secret has OPENAI_API_KEY

# 1Password integration
signet secret onepassword connect
signet secret onepassword status
signet secret onepassword vaults
signet secret onepassword import --vault Engineering --prefix OP
signet secret onepassword disconnect

Subcommands:

CommandDescription
signet secret put <name> [value]Store a secret; prompts if value omitted
signet secret listList all secret names (never values)
signet secret delete <name>Delete a secret (prompts for confirmation)
signet secret has <name>Check existence; exits 0 if found, 1 if not
signet secret onepassword connect [token]Save/validate a 1Password service account token
signet secret onepassword statusShow 1Password connection and vault access status
signet secret onepassword vaultsList accessible 1Password vaults
signet secret onepassword importImport password-like fields from 1Password into Signet secrets
signet secret onepassword disconnectRemove stored 1Password service account token

A GITHUB_TOKEN secret is used by signet git to authenticate pushes to a remote repository.


signet skill

Manage agent Skills from the GitHub-based registry. Skills are installed to $SIGNET_WORKSPACE/skills/ and symlinked into harness config directories.

signet skill list
signet skill install browser-use
signet skill uninstall weather
signet skill search github
signet skill show <name>

Subcommands:

CommandDescription
signet skill listList installed skills
signet skill install <name>Install a skill from the registry
signet skill uninstall <name>Remove an installed skill
signet skill search <query>Search the GitHub skills registry
signet skill show <name>Show skill details

Registry search queries GitHub for repositories tagged agent-skill or containing a SKILL.md file. Unauthenticated searches are limited to 10 requests per minute.


signet git

Git sync management for the $SIGNET_WORKSPACE directory. A GITHUB_TOKEN secret must be set for push operations.

signet git status
signet git sync
signet git pull
signet git push
signet git enable
signet git enable --interval 600
signet git disable

Subcommands:

CommandDescription
signet git statusShow git status, sync state, and token presence
signet git syncPull remote changes then push
signet git pullPull changes from remote
signet git pushPush commits to remote
signet git enableEnable daemon auto-sync
signet git disableDisable daemon auto-sync

signet git enable options:

OptionDescription
-i, --interval <seconds>Sync interval in seconds (default: 300)

signet hook

Lifecycle hook commands for harness integration. These are called by connector packages automatically; you rarely need to invoke them directly.

signet hook session-start --harness claude-code
signet hook user-prompt-submit --harness claude-code
signet hook session-end --harness claude-code
signet hook pre-compaction --harness claude-code
signet hook compaction-complete --harness claude-code --summary "..."
signet hook synthesis
signet hook synthesis-complete --content "..."

Subcommands:

CommandDescription
signet hook session-startInitialize session, inject context
signet hook user-prompt-submitInject relevant memories for a prompt
signet hook session-endExtract and save memories from transcript
signet hook pre-compactionGet summary instructions before compaction
signet hook compaction-completeSave session summary after compaction
signet hook synthesisGet the MEMORY.md synthesis prompt
signet hook synthesis-completeSave synthesized MEMORY.md content

Most subcommands require -H, --harness <harness> identifying the calling platform (e.g. claude-code, opencode, openclaw). If the daemon is

When hook payloads are provided over stdin, the CLI now prefers canonical session_key / sessionKey fields before legacy session_id aliases. signet hook user-prompt-submit forwards preferred userMessage when it is provided, while still carrying legacy userPrompt compatibility fields. signet hook session-end forwards both stdin transcript_path / transcriptPath and inline transcript content for lossless capture. signet hook compaction-complete also forwards stdin cwd as the fallback project scope when transcript persistence has not landed yet. not running, hooks exit cleanly with code 0 so the harness is not blocked.


signet update

Check for updates, install them manually, or configure unattended auto-installs. Running signet update with no subcommand is equivalent to signet update check.

signet update               # same as check
signet update check
signet update check --force
signet update install
signet update status
signet update enable
signet update enable --interval 3600
signet update disable

Subcommands:

CommandDescription
signet update checkCheck if a newer version is available
signet update installDownload and install the latest version
signet update statusShow auto-update settings and last result
signet update enableEnable unattended background installs
signet update disableDisable unattended background installs

signet update check options:

OptionDescription
-f, --forceForce a fresh check, ignoring cached result

signet update enable options:

OptionDescription
-i, --interval <seconds>Check interval in seconds (default: 21600; range: 300-604800)

After signet update install completes, a daemon restart is required to run the new version: signet daemon restart.


signet bypass

Toggle per-session hook bypass. When bypass is enabled for a session, all Signet hooks return empty no-op responses — the daemon is still running, but it stays silent for that session. MCP tools (memory_search, memory_store, etc.) continue to work normally.

signet bypass                   # List active sessions with bypass status
signet bypass --list            # Same as above
signet bypass <session-key>     # Enable bypass for a session
signet bypass --off <session-key>  # Disable bypass for a session

Subcommands:

CommandDescription
signet bypassList active sessions and their bypass status
signet bypass --listSame as signet bypass with no arguments
signet bypass <session-key>Enable bypass for the given session
signet bypass --off <session-key>Disable bypass for the given session

You can also bypass hooks entirely at the process level using the SIGNET_BYPASS environment variable (see below).


signet embed

Manage memory embeddings. Requires the daemon to be running.

signet embed backfill
signet embed backfill --batch-size 100
signet embed backfill --dry-run
signet embed gaps

Subcommands:

CommandDescription
signet embed backfillRe-embed memories missing vector embeddings
signet embed gapsShow count of memories missing embeddings

signet embed backfill options:

OptionDescription
--batch-size <n>Memories per batch (default: 50)
--dry-runPreview without calling the embedding provider

After backfill completes, coverage is printed:

  Coverage: 100.0% (1200/1200 embedded)

Environment Variables

VariableDescriptionDefault
SIGNET_PORTDaemon HTTP port3850
SIGNET_PATHBase agents directory$SIGNET_WORKSPACE
SIGNET_HOSTDaemon host for local calls and default bind address127.0.0.1
SIGNET_BINDExplicit daemon bind address overrideSIGNET_HOST
SIGNET_LOG_FILEExplicit daemon log file pathunset
SIGNET_LOG_DIRDaemon log directory override$SIGNET_WORKSPACE/.daemon/logs
SIGNET_SQLITE_PATHmacOS explicit SQLite dylib override used by the daemon before opening the databaseunset
SIGNET_BYPASSSkip all hook processing (exit immediately)unset

Exit Codes

CodeMeaning
0Success
1General error