Integrations
Claude Code
Claude Code is the only client where memory is fully automatic. Four hooks run inside every session: memory is captured as you talk, and injected before Claude reads your prompt. You write zero sigil remember calls.
sigil init # or the browser wizard — both wire itsigil doctor # verifySigil merges four hook entries into ~/.claude/settings.json and adds one @~/.sigil/CLAUDE.md import line to your global ~/.claude/CLAUDE.md. Existing hooks and settings are preserved, never overwritten.
The four hooks
Section titled “The four hooks”UserPromptSubmit
Section titled “UserPromptSubmit”Runs before Claude sees your message. Hybrid-searches your memory with your prompt, and injects the top-K facts as additionalContext.
No tool call, no round trip, no paste. Claude reads your context before reading your prompt.
~1.5K tokens per prompt, whether your corpus has ten facts or a hundred thousand.
PostToolUse
Section titled “PostToolUse”Runs after every Edit, Write, and Bash. Captures the observation as a fact candidate, deduplicated by SHA-256 against a five-minute window — so a loop of edits doesn’t produce fifty near-identical rows.
Runs at the end of your turn. Classifies your last message:
| preference | “I prefer tabs over spaces” |
| decision | “We’re moving retries to the Postgres job table” |
| constraint | “We must stay under 50ms p99” |
| claim | “The auth service is owned by the platform team” |
Then extracts atomic facts, links entities, and runs AUDM against existing memory — so a contradiction supersedes rather than accumulating, and a restatement is recognized as already known.
This is the hook that makes capture invisible.
SessionEnd
Section titled “SessionEnd”Summarizes the session into its claude_session pod and promotes facts that kept mattering.
The summary attaches to both the session pod and the project pod. The session copy expires at 90 days; the project copy is durable — which is how a session’s conclusions outlive the session.
The hot-context snapshot
Section titled “The hot-context snapshot”Separately from search, your top-20 facts live in ~/.sigil/CLAUDE.md, imported by your global Claude config. Zero latency, always present, query-independent.
That last property is the point. “Keep explanations short” is relevant to every answer and semantically similar to no prompt — it would never be retrieved by any search. The snapshot is the channel that delivers it. See Hot context.
sigil context # rebuild itsigil context --explain # show which pod kind filled each slotUsing the CLI from inside a session
Section titled “Using the CLI from inside a session”Claude Code has a Bash tool, so it can also use Sigil directly. The instructions Sigil installs tell it to:
sigil search "..." # drill into something the injection missedsigil remember --bg "..." "..." # save explicitly when you ask it tosigil ingest ./DESIGN.md # store a document wholesigil docs # list this project's documentsYou can run these yourself too — prefix with ! in the Claude Code prompt to run a command in the session.
~/.claude/settings.json 4 hook entries (merged, not overwritten)~/.claude/CLAUDE.md one @import line~/.sigil/CLAUDE.md instructions + hot-context snapshot~/.sigil/.hook-errors.log append-only diagnostic logFailure behaviour
Section titled “Failure behaviour”A broken memory layer must never block a working prompt.
Every hook wraps in a top-level try/catch that fails silently. If Sigil is down, misconfigured, or mid-update, your prompt still goes through — you lose memory, not your work.
Errors append to ~/.sigil/.hook-errors.log. After five unacknowledged errors in 24 hours sigil doctor exits non-zero, so CI and scripts can catch a degrading install.
sigil doctor # includes the hook error budgetsigil doctor --ack # acknowledge current errors without re-running checksLatency
Section titled “Latency”| Cold start (first invocation) | 200–400ms — Node boot, connect, search |
| Warm | 30–60ms |
| Hot-context snapshot | 0ms — it’s a file |
The daemon exists to keep the warm path warm.
If cold start bothers you
Section titled “If cold start bothers you”Remove only the UserPromptSubmit entry from ~/.claude/settings.json:
- You keep
Stop,PostToolUse, andSessionEnd— they run asynchronously and add nothing to prompt latency - You keep the zero-latency hot-context snapshot
- You lose per-prompt dynamic search, and fall back to Claude calling MCP
searchwhen it decides to
A reasonable trade if you trust the snapshot to cover most of what you ask.
Troubleshooting
Section titled “Troubleshooting”A hook shows as unregistered.
sigil connectRe-pins the shims and re-syncs the hook entries. This is almost always the fix after a Node version switch or reinstall — the hook entries pointed at a path that moved.
Memory stopped working after an update.
Same command. sigil doctor --deep if it doesn’t help — it actually runs a hook rather than checking that its config exists.
Facts aren’t being captured.
Check the dashboard’s Activity screen for the turn. You’ll see whether the classifier skipped it, extraction produced nothing, or AUDM decided you already knew it. See Debugging retrieval.