Quick Start
This guide walks you through creating a vault with a schema and your first note.
1. Create a Vault
Section titled “1. Create a Vault”A vault is any directory with a .bwrb/schema.json file:
mkdir my-vaultcd my-vaultmkdir -p .bwrb2. Define a Schema
Section titled “2. Define a Schema”Create .bwrb/schema.json. Here’s a minimal schema with two types:
{ "types": { "idea": { "output_dir": "Ideas", "frontmatter": { "type": { "value": "idea" }, "created": { "value": "$NOW" }, "status": { "prompt": "select", "options": ["raw", "developing", "mature"], "default": "raw" } } }, "task": { "output_dir": "Tasks", "frontmatter": { "type": { "value": "task" }, "created": { "value": "$NOW" }, "status": { "prompt": "select", "options": ["todo", "in-progress", "done"], "default": "todo" }, "priority": { "prompt": "select", "options": ["low", "medium", "high"], "default": "medium" } } } }}This schema defines:
ideatype — stored inIdeas/, with a status fieldtasktype — stored inTasks/, with status and priority fields- Static fields —
typeandcreatedare set automatically - Prompted fields —
statusandpriorityare chosen interactively
3. Create a Note
Section titled “3. Create a Note”bwrb new ideaBowerbird prompts you for:
- Title — becomes the filename (e.g., “My Great Idea” →
Ideas/My Great Idea.md) - Status — select from the defined options
The result is a properly-structured markdown file:
---type: ideacreated: 2025-01-07 14:30status: raw---4. List Your Notes
Section titled “4. List Your Notes”# List all ideasbwrb list idea
# List with specific fields as a tablebwrb list idea --fields=status
# List tasks filtered by statusbwrb list task --where "status = 'todo'"5. Open a Note
Section titled “5. Open a Note”# Open in Obsidian (default)bwrb open "My Great Idea"
# Open in your $EDITORbwrb open "My Great Idea" --app editor
# Just print the pathbwrb open "My Great Idea" --app print6. Edit a Note
Section titled “6. Edit a Note”If you need to change frontmatter values:
bwrb edit Ideas/My\ Great\ Idea.mdBowerbird shows the current values and lets you update them.
7. Audit for Drift
Section titled “7. Audit for Drift”If you manually edit a file and accidentally break the schema:
# Check for violationsbwrb audit
# Fix violations interactivelybwrb audit --fixBowerbird reports issues like:
- Missing required fields
- Invalid field values (not in the allowed options)
- Unknown fields (not defined in schema)
Understanding Schema Structure
Section titled “Understanding Schema Structure”Static vs. Prompted Fields
Section titled “Static vs. Prompted Fields”Static fields have a value and are set automatically:
{ "type": { "value": "idea" }, "created": { "value": "$NOW" }}Special values:
$NOW— Current datetime (YYYY-MM-DD HH:mm)$TODAY— Current date (YYYY-MM-DD)
Prompted fields use interactive input:
{ "status": { "prompt": "select", "options": ["raw", "developing", "mature"], "default": "raw" }}Field Types
Section titled “Field Types”| Prompt Type | Description | Example |
|---|---|---|
select | Choose from options | Status, priority |
text | Free text input | Description |
number | Numeric input | Word count |
boolean | Yes/no | Completed |
date | Date input | Deadline |
relation | Link to another note | Parent task |
Hierarchical Types
Section titled “Hierarchical Types”Types can have subtypes for nested categorization:
{ "types": { "objective": { "subtypes": { "task": { "output_dir": "Objectives/Tasks", ... }, "milestone": { "output_dir": "Objectives/Milestones", ... } } } }}Access subtypes with slash notation:
bwrb new objective/taskbwrb list objective # Lists all objectives (tasks + milestones)bwrb list objective/task # Lists only tasksVault Path Resolution
Section titled “Vault Path Resolution”Bowerbird finds your vault in this order:
--vault=<path>flagBWRB_VAULTenvironment variable- Current working directory
Set a default vault in your shell profile:
export BWRB_VAULT=~/notesQuick Reference
Section titled “Quick Reference”| Command | Description |
|---|---|
bwrb new <type> | Create a new note |
bwrb list <type> | List notes of a type |
bwrb edit <path> | Edit note frontmatter |
bwrb open [query] | Open a note |
bwrb search [query] | Find notes, generate wikilinks |
bwrb audit | Check schema compliance |
bwrb schema list | View schema types |
Next Steps
Section titled “Next Steps”- Schema concepts — Deep dive into schema structure
- Types and inheritance — Organize types hierarchically
- CLI Reference — Full command documentation
- Templates — Create reusable note structures