Recall.
Local-first command memory for developers. Captures terminal commands with repo context so you can find exactly what you ran last time — with AI-powered search, no cloud required.
- Repo-aware capture: every command stored with cwd, repo, and timestamp context in SQLite
- AI-powered semantic search plus project memory that rehydrates 'how we run this project'
- Strict privacy controls — pause capture, ignore sensitive patterns, delete locally, zero telemetry
The problem
Terminal work is high-leverage and strangely ephemeral. Developers re-google commands they know they've run before, forget the first three commands after cloning each repo, and repeat the same workflows across projects. Shell history technically has the answers, but it's a flat list of strings — no repo context, no timestamps that mean anything, no way to ask 'how do I run this project?'
Approach
Recall hooks into the shell and captures every command with its context — repo, working directory, timestamp — into a local SQLite database. Full-text search finds the exact command you ran last time, scoped to the repo you're in; project memory rehydrates 'how we run this project' from startup patterns and recent commands. An optional AI layer adds semantic search on top, but the CLI is fully useful without it. Distributed via a Homebrew tap with an auto-updated formula.
Key decisions & tradeoffs
Local-first is the product, not a feature
Shell history is some of the most sensitive data a developer has — tokens, hostnames, file paths. Recall stores everything in local SQLite with no accounts, no cloud sync, and no telemetry. A command-memory tool that phones home would never earn the trust it needs to be left running.
AI is opt-in, search works without it
Semantic search only activates when the user explicitly configures API keys or a local model. Full-text search over structured context covers most lookups with zero setup and zero network calls — the AI layer is an upgrade, not a dependency. No AI feature runs without explicit opt-in.
Capture with an off switch, everywhere
A tool that records commands sits one bad default away from being a keylogger. Recall ships with pause capture, ignore rules for sensitive command patterns, local deletion, and a two-mode hook install that shows you exactly what's added to your shell rc — nothing is appended without consent.
Outcome
Recall shipped as a public beta on Homebrew with capture, repo-aware search, and project memory production-ready, while experimental features (workflow replay, background embedding) stay gated behind a flag. It's a working answer to a daily developer problem — and a case study in shipping AI-adjacent tooling where privacy constraints shape the architecture instead of being bolted on.
Next project