Skip to content

Getting started

Install

One command installs Sigil, starts its daemon, and opens a setup wizard in your browser.

Terminal window
curl -fsSL https://raw.githubusercontent.com/Anmol-Srv/sigil/master/install.sh | sh

The 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.

OSmacOS, Linux, or WSL. Native Windows is unsupported and refuses to install.
Node20 or newer
GitRequired — Sigil installs as a git clone and updates by fast-forwarding it
DatabaseOptional. The built-in embedded database needs nothing; bring Postgres 13+ with pgvector if you’d rather
ProviderAn LLM and an embedding provider. Both can be local Ollama, so no API key is strictly required
~/.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 snapshot

Plus 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.

The wizard has five steps, and each one is verified before it’s saved.

  1. Database. Four modes — pick one:

    ModeWhat it is
    Built-inPGlite, running in-process. Zero install, zero prerequisites, stored at ~/.sigil/db. Best for a single machine.
    LocalAn existing Postgres on this machine.
    DockerA Postgres container you point Sigil at.
    URLAny 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 -pooler host, for instance) are handled automatically — migrations run against the direct endpoint.

  2. LLM provider. Claude Code, OpenRouter, OpenAI, Anthropic, or Ollama. Tested with a live call before it’s saved. See Providers for the trade-offs.

  3. 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.

  4. 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.

  5. 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.

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:

Terminal window
sigil init

Same five steps, same engine, in the terminal. Re-running is idempotent — existing configuration is preserved.

Sigil needs Postgres 13+ with pgvector. The official pgvector image ships with the extension already enabled:

Terminal window
docker run -d --name sigil-pg -p 5432:5432 \
-e POSTGRES_PASSWORD=sigil_dev pgvector/pgvector:pg15

On macOS with Homebrew:

Terminal window
brew install postgresql@17 pgvector
brew services start postgresql@17

Managed 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.

Terminal window
sigil doctor
Sigil 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.

Terminal window
sigil update

Fast-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.