Getting started
Install
One command installs Sigil, starts its daemon, and opens a setup wizard in your browser.
curl -fsSL https://raw.githubusercontent.com/Anmol-Srv/sigil/master/install.sh | shThe installer clones Sigil into ~/.sigil/app, puts sigil on your PATH persistently, launches the daemon, and opens the dashboard. Everything after that happens in the UI: database, LLM provider, embedding provider, and agent wiring, each with a live connection test.
Requirements
Section titled “Requirements”| OS | macOS, Linux, or WSL. Native Windows is unsupported and refuses to install. |
| Node | 20 or newer |
| Git | Required — Sigil installs as a git clone and updates by fast-forwarding it |
| Database | Optional. The built-in embedded database needs nothing; bring Postgres 13+ with pgvector if you’d rather |
| Provider | An LLM and an embedding provider. Both can be local Ollama, so no API key is strictly required |
What the installer touches
Section titled “What the installer touches”~/.sigil/├── app/ the git clone (this is the install)├── bin/ stable launcher shims — what agents and your PATH point at├── config.json your configuration, chmod 600├── db/ the embedded database, if you chose that mode└── CLAUDE.md instructions + the hot-context snapshotPlus one export PATH="$HOME/.sigil/bin:$PATH" line in your shell rc. Nothing else on your system is modified until you wire up agents in step 4 of setup.
The shims in ~/.sigil/bin/ matter more than they look: every agent integration points at a shim, never at a versioned path. That’s what keeps memory working across Node version switches and reinstalls.
Setup in the browser
Section titled “Setup in the browser”The wizard has five steps, and each one is verified before it’s saved.
-
Database. Four modes — pick one:
Mode What it is Built-in PGlite, running in-process. Zero install, zero prerequisites, stored at ~/.sigil/db. Best for a single machine.Local An existing Postgres on this machine. Docker A Postgres container you point Sigil at. URL Any connection string — Neon, Supabase, RDS, Render, Railway, CockroachDB, self-hosted. Required if you want multi-device memory. For Postgres modes the dashboard tests the connection, offers one-click Install pgvector if the extension is missing, then runs migrations. Pooled URLs (Neon’s
-poolerhost, for instance) are handled automatically — migrations run against the direct endpoint. -
LLM provider. Claude Code, OpenRouter, OpenAI, Anthropic, or Ollama. Tested with a live call before it’s saved. See Providers for the trade-offs.
-
Embedding provider. OpenAI, Voyage, OpenRouter, or Ollama. All are pinned to 1024 dimensions so the schema and the provider can never drift apart.
If your database already holds vectors from a different provider, the dashboard tells you exactly how many rows are affected and lets you wipe and start fresh — or cancel. It never fails silently.
-
Coding agents. Sigil detects Claude Code, Cursor, Codex CLI, Kiro, and Hermes, and wires each one: hooks for Claude Code, MCP registration plus client-native steering rules for the rest.
-
Your name. Stored, and written as your first memory — which exercises the entire stack end to end and proves it works.
When a step fails you get the real cause and the fix, not a generic error. Any provider can be changed later from Settings — it re-tests, applies, and restarts the daemon for you.
Installing without a browser
Section titled “Installing without a browser”The same installer detects a headless environment (SSH, CI, no display) and falls back to the terminal wizard automatically. You can also run it explicitly:
sigil initSame five steps, same engine, in the terminal. Re-running is idempotent — existing configuration is preserved.
sigil init --url "postgres://user:pass@ep-foo.neon.tech/sigil?sslmode=require"Skips the database picker. The database is created if missing, pgvector enabled, and migrations applied. Useful for dotfiles and CI.
sigil daemon url # print the URL with its auth tokensigil daemon open # or just open itBringing your own Postgres
Section titled “Bringing your own Postgres”Sigil needs Postgres 13+ with pgvector. The official pgvector image ships with the extension already enabled:
docker run -d --name sigil-pg -p 5432:5432 \ -e POSTGRES_PASSWORD=sigil_dev pgvector/pgvector:pg15On macOS with Homebrew:
brew install postgresql@17 pgvectorbrew services start postgresql@17Managed providers all work — Neon, Supabase, Railway, Render, AWS RDS, CockroachDB. Create a database, enable the vector extension (one click on Neon and Supabase; a parameter group on RDS), and paste the URL into the wizard.
Verify
Section titled “Verify”sigil doctorSigil diagnostic
✓ Config file: ~/.sigil/config.json ✓ Config validation: no provider/model mismatches ✓ Database: Postgres @ localhost:5432/sigil ✓ Stored data: 0 docs, 0 chunks, 1 fact ✓ LLM provider: openrouter (model=google/gemini-flash-latest) ✓ Embedding provider: openai / text-embedding-3-large ✓ UserPromptSubmit hook: registered ✓ PostToolUse hook: registered ✓ Stop hook: registered ✓ SessionEnd hook: registered ✓ Sigil CLAUDE.md ✓ Hook errors: none
All checks passed.Add --deep to round-trip every connector — it actually spawns the MCP server and runs a hook, proving the integration works rather than just that its files exist.
Updating
Section titled “Updating”sigil updateFast-forwards your clone to the latest release and runs any pending migrations. There’s no package to reinstall. The daemon also checks periodically and tells you when an update is available. See Updating.
- Quickstart — save a fact and watch an agent use it
- The dashboard — what each screen is for
- Troubleshooting — if something above didn’t go to plan