brief

Usage

Database Location

Default path:

~/.brief/brief.db

Environment override:

export BRIEF_DB=/path/to/brief.db

Flag override:

brief --db /path/to/brief.db get --recent

Precedence is --db > BRIEF_DB > ~/.brief/brief.db.

The database and missing parent directory are created automatically on first use.

Basic Flow

Create an entry:

brief post --title "First note" --category note --tag brief "brief is working on this machine"

Query it:

brief get "brief is working"

Fetch by ID:

brief get --id 1

Commands

get

brief get "hooks in VS Code"

post

brief post --title "Copilot hooks note" --tag hooks --tag vscode "UserPromptSubmit runs before the agent responds."

put

brief put 12 --title "Copilot hooks overview" --add-tag automation

deprecate

brief deprecate 12

delete

brief delete 12 --force

tag

brief tag list

category

brief category list

config

brief config set default_limit 20

Query Modes

brief get supports exactly one of these modes:

brief get "<query>"
brief get --id=<id>
brief get --recent
brief get --recent-updates

Filter flags such as --category, --tag, and --language are valid with <query>, --recent, and --recent-updates.

They are not valid with --id.

Content Input

post accepts either positional content or --stdin:

printf 'stdin content\n' | brief post --title "stdin example" --stdin

put also accepts either positional content or --stdin:

printf 'updated content\n' | brief put 12 --stdin

In both cases, positional content and --stdin are mutually exclusive.