AI Integration
Bowerbird is designed to work seamlessly with AI coding assistants.
JSON Mode
Section titled “JSON Mode”Machine-readable support is command-specific: use --output json and --json
only where that command’s help lists them. The canonical discovery workflow and
the main note mutation workflows are scriptable:
# AI reads vault statebwrb list task --output json
# AI creates notesbwrb new task --json '{"name": "Generated task", "status": "backlog"}'Agent Skill
Section titled “Agent Skill”For AI assistants that support skills (like OpenCode), Bowerbird provides a skill document at docs/skill/SKILL.md with:
- Command patterns for common operations
- JSON mode examples
- Best practices for note management
Use Cases
Section titled “Use Cases”Inbox Processing
Section titled “Inbox Processing”AI can triage notes:
# Read unprocessed itemsbwrb list idea --where "status = 'raw'" --output json
# Update after reviewbwrb edit "My Idea" --json '{"status": "developing"}'Daily-Note Sweep (Coverage)
Section titled “Daily-Note Sweep (Coverage)”The goal: ramble into daily notes every day and know nothing got swept under
the rug. The convention is a single boolean field on your daily-note type that
records whether a note has been reviewed/swept for extractable items (tasks,
ideas, people to link). bwrb itself ships no daily-note type — types are
defined per-vault — so you declare the field in your schema:
{ "types": { "daily-note": { "output_dir": "Daily Notes", "fields": { "reviewed": { "prompt": "boolean", "description": "Whether this note has been swept for tasks, ideas, and people to extract. Absent or false means not yet swept." } } } }}The workflow:
- New daily notes start without
reviewed(or withreviewed: false). - An agent (or you) sweeps a note, extracts what matters, then stamps
reviewed: true. - At any time, list the notes that still need a sweep.
The recipe — find unswept notes:
bwrb list --type daily-note --where "reviewed != true"Use != true, not == false. A note that has never been touched has no
reviewed field at all, and reviewed == false only matches notes where the
field is explicitly false — it silently skips the never-reviewed notes, which
are exactly the ones most likely to have been swept under the rug. reviewed != true matches both the explicit false and the missing-field cases.
Save it as a dashboard so the un-swept queue is one command away:
# Save the query as a reusable dashboard...bwrb list --type daily-note --where "reviewed != true" --save-as unswept-daily-notes
# ...then run it any timebwrb dashboard unswept-daily-notesStamping a note as swept is a normal edit:
bwrb edit "Daily Notes/2026-06-20" --json '{"reviewed": true}'The risk in this loop is the agent forgetting to stamp
reviewed: true. That is prompting discipline, not a bwrb feature — but thereviewed != truequery is the deterministic backstop that makes a forgotten stamp visible instead of lost.
Content Generation
Section titled “Content Generation”AI can create structured notes:
bwrb new task --json '{ "name": "Research topic X", "status": "backlog", "priority": "medium"}'Batch Analysis
Section titled “Batch Analysis”AI can analyze vault contents:
# Export for analysisbwrb list --output json > vault-export.jsonFuture: AI Commands
Section titled “Future: AI Commands”Post-v1.0, Bowerbird will include dedicated AI commands for:
- Ingest (process external content)
- Suggest (recommend connections)
- Summarize (generate overviews)