
Capture
- 96 installs
- 27.8k repo stars
- Updated August 5, 2026
- garrytan/gbrain
Saves any thought, snippet, or transcript into the knowledge base with one CLI command that writes to both the database and disk.
About
The single human-facing ingestion command that captures content to an inbox slug, queryable immediately, with content-hash dedup. A developer uses it for the simple 'I have a thought, save it' case rather than bulk import.
- Writes to the database and a markdown file on disk in one move
- Idempotent inbox/date-hash slug with 24h dedup
Capture by the numbers
- 96 all-time installs (skills.sh)
- Ranked #1,379 of 3,282 Productivity & Planning skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/garrytan/gbrain --skill captureAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 96 |
|---|---|
| repo stars | ★ 27.8k |
| Last updated | August 5, 2026 |
| Repository | garrytan/gbrain ↗ |
What it does
Saves any thought, snippet, or transcript into the knowledge base with one CLI command that writes to both the database and disk.
Files
capture — the single ingestion entrypoint
When the user wants to save a thought, an article snippet, a transcript fragment, or any text into their brain, run gbrain capture. Don't reach for gbrain put or commit-then-sync — capture is the front door and it handles both local and thin-client installs the same way.
Contract
- Input: the content to save (inline arg,
--file PATH, or--stdin). - Output: a page in the brain DB AND a markdown file on disk under
<sync.repo_path>/<slug>.md. Receipt printed to stdout.
- Side effect: the page becomes immediately queryable via
gbrain query,
gbrain search, or any MCP-bound agent.
- Idempotency: same content → same
inbox/YYYY-MM-DD-<hash8>slug. The
daemon's 24h content-hash dedup catches re-captures.
- Trust: all captures via this skill are local-CLI trust (
remote: false).
Untrusted webhook ingestion goes through POST /ingest, not this verb.
When to invoke
- "Capture this thought" / "save this" / "drop this into my brain" / "remember this"
- The user pastes content and asks to keep it
- After a meeting summary, a research note, or any synthesis that should land as a brain page
What it does
gbrain capture resolves to a put_page call (local) or a remote MCP call (thin-client). Either way the page lands in the DB AND on disk in one move via the v0.38 write-through plumbing. The default slug is inbox/YYYY-MM-DD-<hash8> so captures cluster in a predictable triage location.
How to use
gbrain capture "the thought I want to remember"
gbrain capture --file ./notes/today.md
echo "from a pipe" | gbrain capture --stdin
gbrain capture "..." --slug daily/2026-05-21
gbrain capture "..." --type idea --source voice-whisper
gbrain capture "..." --quiet # script-friendly: prints just the slug
gbrain capture "..." --json # structured output for agentsDefaults
- Slug:
inbox/YYYY-MM-DD-<hash8>(stable for same content; the daemon's 24h dedup catches re-captures). - Type:
note(override with--type ideaetc.). - Frontmatter stamps:
captured_via: capture-cli,captured_at: <ISO>. - Title: first non-empty line of the body, capped at 80 chars.
Output Format
Default prints a 5-line receipt:
captured:
slug: inbox/2026-05-21-abcdef12
status: created_or_updated
content_hash: f3a7b9c0d1e2f3a4…
file: /Users/you/brain/inbox/2026-05-21-abcdef12.md
captured_at: 2026-05-21T04:15:00.000Z--quiet prints only the slug (use for SLUG=$(gbrain capture "..." --quiet)). --json prints structured output for downstream tools.
Anti-Patterns
- Don't reach for `gbrain put`. That's the old per-page primitive that
doesn't know about default slug generation, content-type heuristics, or the receipt block. capture is the human-facing wrapper.
- Don't try to bulk-import dozens of files by looping over `gbrain capture`.
That's what gbrain sync (or gbrain import) is for. Capture is for single thoughts, single notes, single transcripts.
- Don't pre-format the content yourself with frontmatter if you don't need to.
Capture wraps plain prose in sensible frontmatter (type + title + captured_via + captured_at). The body becomes # Title\n\n<your prose>. Pass --file PATH if you already have a fully-formatted markdown file.
- Don't pass secrets as inline content. Inline args land in shell
history. Use --file or --stdin instead.
When NOT to use this skill
- Bulk ingestion of many files →
skills/media-ingest/SKILL.mdorgbrain syncinstead - Article/link with author + publication metadata →
skills/idea-ingest/SKILL.md(it knows to build the people page) - Meeting transcripts →
skills/meeting-ingestion/SKILL.md(attendee enrichment)
This skill is for the simple "I have a thought, save it" case. Specialized ingestion paths handle their own slugging + cross-referencing.