Hydrate Free — install in five minutes
After this page:hydrate doctorshows all green,/hydrate-lastreturns a briefing from your most recent Claude Code session, and every new session starts with the relevant slice of your project history injected automatically.
Prerequisites
- macOS 13+, Linux (x86_64 or arm64), or Windows 10+
- Claude Code installed and at least one session completed (so there is something to recall)
Install
Hydrate ships as a single Homebrew formula (or MSI for Windows: see
/install/). hydrate setup handles
everything: it mints your user id, wires hooks for every coding-agent
runtime detected on this machine (Claude Code, Codex CLI / App,
Mistral Vibe), and offers to install the local semantic embedder.
brew install getHydrate/hydrate/hydrate
hydrate setup Expected output on a clean install:
Hydrate setup
✓ user id ready
✓ hooks installed (claude)
Install local semantic embedder (~115 MB)? Enables paraphrase-aware recall. [Y/n] y
✓ semantic embedder installed
✓ tier: Free — run `hydrate license activate <key>` to upgrade to Pro/Team/Enterprise
Ready.
Next:
cd <your-project>
hydrate init To verify at any time:
hydrate doctor
A healthy install prints Ready.. If it lists red rows,
run hydrate doctor --fix to apply obvious-recovery
actions (mint a user id if missing, refresh hooks, clear a tripped
spawn-cap budget).
What if I want the old 7-step wizard?
hydrate setup --advanced walks every optional configuration
knob: VS Code extension, beta lock-in registration, Claude Code
subscription tier, economy mode, BYOK LLM provider keys, enterprise
registration.
More on the embedder (~115 MB)
Downloads the bundled MiniLM embedder (all-MiniLM-L6-v2,
384-dim) to ~/.hydrate/runtime/. Hydrate auto-spawns
it as a subprocess when the daemon needs to embed text. Required
for: semantic similarity gate on /context-preview,
paraphrase-aware recall, semantic hydrate distill
summaries, per-page embeddings on the Files dashboard. Without
it Hydrate falls back to heuristic compression and lexical
retrieval. No data leaves your machine: the model runs in-process.
hydrate setup-embedder # interactive (downloads + verifies SHA-256)
hydrate setup-embedder --yes # non-interactive
hydrate setup-embedder --check # verify an existing install
hydrate setup-embedder --uninstall # remove ~/.hydrate/runtime/
Intel Mac (darwin/amd64) support was missing from the
v0.6.0 embedder build matrix; fixed in v0.6.1. All platforms work
today.
Doctor checklist (detail)
hydrate doctor Expected output (17 checks, all green):
✓ hydrate binary installed (/opt/homebrew/bin/hydrate)
✓ hydrate-server binary installed (/opt/homebrew/bin/hydrate-server)
✓ hydrate-mcp binary installed (~/.local/bin/hydrate-mcp)
✓ ~/.hydrate/ owned by current user
✓ ~/.hydrate/data.db writable
✓ local hydrate-server reachable (http://localhost:<port>)
✓ ~/.hydrate/server.key present (mode 0600)
✓ ~/.claude.json parseable
✓ UserPromptSubmit hook installed
✓ Stop hook installed
✓ PreCompact hook installed
✓ SessionStart hook installed
✓ MCP server "hydrate" configured
✓ MCP reachable with configured api.key
✓ License: Free
✓ Codex CLI (skip if not installed)
✓ Project-ID sentinel 0 facts with empty/NULL project_id
Ready. Then open Claude Code and run:
/hydrate-last Expected: a briefing summarising your most recent session — open questions, decisions made, entities in play. If this is your first session, there is nothing to recall yet; run one Claude Code session and try again.
What changed on your machine
| Path | Purpose |
|---|---|
~/.hydrate/data.db | Local SQLite database — facts, canon, session summaries, embeddings |
~/.hydrate/server.key | Auto-generated API key (mode 0600, never transmitted) |
~/.hydrate/config.yaml | Daemon config (port, log level, storage mode) |
~/.claude/settings.json | Hook entries + MCP server entry added here |
~/.claude/commands/ | /hydrate, /hydrate-last, /hydrate-project slash command files |
~/.local/bin/hydrate-mcp | MCP server binary |
Nothing is transmitted to any remote host unless you explicitly configure enterprise sync.
The local hydrate-server process listens on localhost only.
How memory accumulates
After install, three things happen on every Claude Code session:
- Session start —
claude-session-startre-injects any precompact recovery snapshot from the previous session. - Each prompt —
claude-contextqueries your local store for facts relevant to the current prompt and injects them as additional context. The injected text is invisible unless you check~/.claude/projects/<hash>/*.jsonl(look foradditionalContext). - Session end —
claude-captureimports the full transcript into~/.hydrate/data.db, triggers a micro-consolidation, and updates working memory.
The /hydrate-last slash command queries this store on demand.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
hydrate doctor fails on local hydrate-server reachable | Server not started | hydrate server start |
/hydrate-last returns nothing | No sessions captured yet | Run a Claude Code session, let it end naturally, then retry |
Hook output missing from additionalContext | Hook not wired | Check ~/.claude/settings.json has the UserPromptSubmit entry; re-run hydrate install-hooks |
hydrate: command not found after curl install | PATH not updated | Add ~/.local/bin to PATH (see curl section above) |
Doctor fails on Project-ID sentinel | Pre-migration DB | Run hydrate doctor --advanced for detail; re-running hydrate server restart usually fixes it |
Next steps
- Pro install — unlock Hydration Packs, Opus→Sonnet handoff, and the beta rate lock
- Team install — share project memory across machines via a git remote
- Claude Code integration details — what each hook does, advanced hook flags
- Codex integration — cross-runtime memory demo (same facts in Codex and Claude Code)