Skip to content
Data
Skill

/capture

Save any thought or content into the brain via one CLI command. The single human-facing entrypoint that replaces "put_page vs commit-then-sync vs autopilot-wait" with one command that just works.

From plugin
gbrain
28k57 skills
Install
$ npx -y skills add garrytan/gbrain --skill capture --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/capture

Context preview

The summary Claude sees to decide when to auto-load this skill.

Save any thought or content into the brain via one CLI command. The single human-facing entrypoint that replaces "put_page vs commit-then-sync vs autopilot-wait" with one command that just works.

SKILL.md

capture.SKILL.md
name: capture
description: Save any thought or content into the brain via one CLI command. The single human-facing entrypoint that replaces "put_page vs commit-then-sync vs autopilot-wait" with one command that just works.
triggers:
  - "capture this"
  - "save this thought"
  - "remember this"
  - "ingest this into my brain"
  - "drop this in the inbox"
  - "save to brain"
writes_pages:
  - "inbox/*"

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 agents

Defaults

  • **Slug:** `inbox/YYYY-MM-DD-<hash8>` (stable for same content; the daemon's 24h dedup catches re-captures).
  • **Type:** `note` (override with `--type idea` etc.).
  • **Frontmatter stamps:** `captured_via: capture-cli`, `captured_at: <ISO>`.
  • **Title:** first non-empty line of the body, capped at 80 chars (truncation appends `…`).

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.md` or `gbrain sync` instead
  • 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.

Read more
Ships withgbrain

Search gives you raw pages. GBrain gives you the answer. It's the brain layer your AI agent has been missing — the only one that does synthesis, graph traversal, and gap analysis in one box.

Get the whole plugin

Other skills on gbrain.