The terminal interface
Your memory, scriptable
One small command puts your Overlay memory in the terminal — and in the hands of the coding agents that work there. Upload, download, and search from scripts, pipes, and CLAUDE.md.
01The commands
Five verbs, pipe-friendly
Human output is a quiet ledger — numbered rows, no UUIDs. --json is the machine contract: data on stdout, messages on stderr, honest exit codes.
overlay upload paper.pdf # into your memory cat notes.md | overlay upload - --name notes.md overlay search "prompt caching" # hybrid search over everything overlay files # recent sources overlay download 2 --annotated # row 2; PDFs keep your highlights
02For coding agents
Give Claude Code your memory
Agents that live in the terminal can use the same five verbs. Paste this into your project's CLAUDE.md or AGENTS.md — the agent recalls your past decisions before asking you to re-explain them, and files what it learns back into your memory.
## Memory — Overlay CLI This machine is authorized against my personal memory (overlay.one). Use it instead of asking me to re-explain past work. - Recall context first: overlay search "<topic>" --json - List recent sources: overlay files --json - Read a stored file: overlay download <id or row #> -o /tmp/<name> - Save what you learn: overlay upload <file> (or pipe: echo "decision: ..." | overlay upload - --name decision.md) Contract: --json prints raw API payloads on stdout; messages go to stderr; exit code 3 means run `overlay login`.
03Authorized once, revocable always
overlay login hands this machine a token after one explicit click in your browser. It lives in ~/.config/overlay, refreshes itself, and overlay logout revokes it. Your account, your memory, your receipts.