v0.4.1local-firstmacOS · Apple SiliconMIT

Your AI session
library.

Every Claude, Codex, and Gemini session in one place. Browsable, pinnable, searchable — and never leaves your machine.

Star on GitHubRead the docs →
Spool.

AI Session Library

All your AI conversations, organized by your code projects.
Pinned3 sessions
claude
auth middleware: JWT rotation with refresh tokens
harbor · today · 42 messages · claude-sonnet-4-6
claude
webhook idempotency keys: design + migration plan
ledger · 2d ago · 38 messages · claude-sonnet-4-6
gemini
RAG pipeline: llamaindex vs custom orchestration
atlas · 4d ago · 27 messages · gemini-2.5-pro
codex
shared VPC peering: terraform module spec
terra · 5d ago · 19 messages · gpt-5-codex
Today
claude
rate limit middleware: token bucket impl
harbor · 1h ago · 24 messages · claude-sonnet-4-6
claude
gesture-handler v3 upgrade: breaking changes
tide · today · 16 messages · claude-sonnet-4-6
codex
checkout funnel A/B: pricing page variant
tide · today · 16 messages · gpt-5-codex
Browse

One project, every agent, one view.

Spool watches Claude, Codex, and Gemini session directories today — and we're adding more agents as fast as they ship. Sessions are grouped by working directory, so opening a project shows everything you discussed there, regardless of which agent you used.

claude~/.claude/projects/-Users-you-harbor
0e1f88a2-09b3-4cae-…jsonl4c3d12f0-91e8-44b1-…jsonl7a55b1ee-2c0f-49b7-…jsonl+ 39 sessions
codex~/.codex/sessions/2026/05/06/harbor
rollout-2026-05-06T11-4-…jsonlrollout-2026-05-04T09-1-…jsonl+ 16 sessions
gemini~/.gemini/tmp/harbor-PROJECT/chats
chat-2026-05-05.jsonchat-2026-04-22.json+ 11 sessions
sooncursor · windsurf · aider · zed · …
harbor142 sessions · 3 agents
87claude
42codex
13gemini
All under /Users/you/code/harbor
Pin

The ten that matter, on top.

One click pins a session in its project — and onto the global Library Home. The ones you keep coming back to stay where you'll find them. No folders, no tags, no ceremony.

claudeharborMar 15
auth middleware: JWT rotation with refresh tokens
the canonical rotation discussion — link this anywhere auth comes up
geminiatlasApr 02
RAG pipeline: llamaindex vs custom orchestration
decision tree we worked out before the spike
codexledgerApr 18
webhook idempotency keys: design + migration plan
every part of the design that survived review is here
claudetideJan 30
B+ tree write path spike — leaf split edge case
you'll forget the off-by-one. don't reinvent it.
Search

⌘K from anywhere — Fast or AI.

Fast runs FTS5 across every indexed session, instantly. AI hands the query to an agent on your machine, which synthesizes an answer with sources. The local label never goes away.

refresh token rotation
SEARCHING:in: projectAll projects
claudeharborauth middleware: JWT rotation with refresh tokenstoday
claudetiderefresh token rotation edge cases — concurrent requests2d ago
codexharborjwt vs opaque tokens: short-lived access + rotating refresh5d ago
geminiledgersession refresh with redis TTL spikeJan 22
claudeatlaswebhook idempotency keys: token expiry handlingJan 14
View all results ›30 results
Agents

Your agent reads your library too.

Drop the /spool skill into Claude Code and ask things like "build on the auth-middleware discussion from last week." It shells out to spool search, returns matching fragments, and lets the agent load any session in full. Any tool-using agent can do the same via the CLI.

01 — Ask what it ought to know.

"Build on the auth-middleware discussion from last week." Claude invokes /spool, the skill runs spool search against your local index, and matching fragments flow back into the conversation.

02 — Sources don't decide retrievability.

A Claude session, an old Codex run, a Gemini brainstorm — all indexed under the same project, all returned by the same search. Whichever agent later asks gets all of it.

03 — The CLI is the public surface.

The skill is a thin wrapper around spool search --json. Any tool-using agent — or any script — can talk to your library the same way. Local in, local out.

$ claude
> build on the auth middleware
> discussion from last week
/spool — searching your library…
claudeauth-middleware-rewriteMar 15
codexjwt rotation spikeFeb 08
geminiredis session ttlJan 22
→ 3 fragments loaded into context · local
House rules

Four things we won't compromise.

Spool's defaults aren't accidents. These are the four lines we won't cross.

i.

Library, not search box.

The shell is the home — sidebar of projects, main pane of sessions. ⌘K is one entry point among several, not the whole product.

ii.

Local, always.

On-device index, on-device queries, on-device inference. Your machine is the only place your sessions ever live.

iii.

First-person metadata.

"You discussed this · Mar 15" beats "Claude Code · Mar 15." The library is yours; the language should say so.

iv.

Agents read it too.

Anything humans can browse, an agent can query. The /spool skill ships with the repo; the same JSON CLI is your public surface.

Your sessions,
finally findable.
Star on GitHubRead the docs →
macOS · Apple Silicon · MIT · Built in the open
Local-first tools for how you think and capture. Made by spool-lab.
GitHub  ·  Discord  ·  X  ·  Blog