Capture
Feed the brain anything. Thoughts, files, URLs, clipboard, and corrections, from chat or the terminal.
Sessions are captured automatically. Everything else goes in through capture: same destination, same compile pipeline, you initiate it.
In conversation
Drop a URL, paste a snippet, or hand Kevin a file path. It routes to the capture tool on its own.
you > capture this for the inbox: https://thenewstack.io/hidden-agentic-technical-debt/
kevin > wrote knowledge/raw/inbox/2026-05-29-1430-hidden-agentic-technical-debt.md
you > save as feedback: when refactoring, don't touch adjacent code I didn't ask about
kevin > appended to knowledge/raw/user/feedback.md
you > here's my standup notes, capture with title "Standup 2026-05-28": <paste>
kevin > wrote inbox
you > pull in ~/notes/board-meeting.md
kevin > wrote inboxURL fetches run through Mozilla Readability and Turndown: the article body is extracted, nav and footer noise dropped, and the result is clean Markdown.
Instant commands in Claude Code
Two commands skip the conversation entirely. They write the file and answer without a model turn; only their one-line reply lands in the conversation:
/capture ask the accountant whether the filing deadline moved
/lesson don't propose git push for local-only repos/capture writes to the inbox and /lesson appends to the feedback log, exactly as kevin capture and kevin capture --kind=feedback do. Text only; for a file or a URL, ask in conversation or use the CLI. They come from the plugin's mods, so Codex uses the CLI or the conversation instead.
From the terminal
kevin capture "remember to follow up with tracy on constitution lodgement"
kevin capture --file=~/notes/board-meeting.md --title="Board meeting 2026-05-28"
kevin capture --url=https://docs.anthropic.com/en/docs/claude-code/overview
pbpaste | kevin capture --stdin --title="Clipped article"
kevin capture --kind=feedback "don't propose git push for local-only repos"
kevin capture --file=~/spec.md --label="design-spec"| Flag | Behaviour |
|---|---|
positional or --text= | Inline text. The default source |
--file=PATH | A local file, up to 512 KB |
--url=URL | Fetch up to 5 MB, extract the article body, convert to Markdown. Provenance recorded in frontmatter |
--stdin | Read stdin. Auto-enabled when stdin is a pipe |
--kind=inbox | Default. Writes knowledge/raw/inbox/<timestamp>-<slug>.md, compiled into concepts and user facets |
--kind=feedback | Appends to knowledge/raw/user/feedback.md, compiled into memory Learnings |
--title= | Filename slug and frontmatter title. Without it, the first heading or line |
--label= | Free-form tag stored in frontmatter or the feedback header |
Local-only, secret-redacted, atomic, content-hash deduped: re-capturing identical input short-circuits to the existing file.
Two kinds
Inbox is material about the world: articles, notes, specs. It distills into concept articles and user facets, then archives to raw/archive/.
Feedback is material about Kevin: corrections, rules, preferences. It compiles into the Learnings block that loads every session. See Self-evolution.
Drop a design doc into knowledge/raw/specs/ and compile distills it into a concept too.