Skip to content

CLI Command Reference

Complete documentation for all @brainfile/cli commands.

Command Overview

bash
brainfile [file]        # Open TUI (default: brainfile.md)
brainfile <command>     # Run CLI command
brainfile mcp           # Start MCP server for AI assistants

Commands

CommandDescription
initCreate a new brainfile
listDisplay tasks
showDisplay single task details
addCreate a new task
moveMove task between columns
patchUpdate task fields
deletePermanently delete a task
archiveArchive a task
restoreRestore from archive
subtaskManage subtasks
lintValidate and fix syntax
templateCreate from templates
tuiInteractive terminal UI
hooksAI agent hook integration
contractManage agent-to-agent contracts
migrateMove brainfile to .brainfile/ directory
configManage user configuration
authAuthenticate with external services
mcpMCP server for AI assistants

init

Create a new brainfile in your project.

bash
brainfile init
brainfile init --file ./tasks.md
brainfile init --force  # Overwrite existing

Options:

OptionDescription
-f, --file <path>Output path (default: brainfile.md)
--forceOverwrite if file exists

list

Display all tasks with optional filtering.

bash
brainfile list
brainfile list --column "In Progress"
brainfile list --tag bug
brainfile list --contract ready

Options:

OptionDescription
-f, --file <path>Path to brainfile (default: brainfile.md)
-c, --column <name>Filter by column
-t, --tag <name>Filter by tag
--contract <status>Filter by contract status (ready, in_progress, delivered, done, failed)

show

Display full details of a single task.

bash
brainfile show --task task-1
brainfile show -t task-42

Options:

OptionDescription
-t, --task <id>Task ID (required)
-f, --file <path>Path to brainfile (default: brainfile.md)

Output includes:

  • Task ID, title, column, priority, tags, assignee
  • Full description
  • Subtasks with completion status
  • Related files
  • Contract details (if present)

add

Create a new task with all available fields.

bash
brainfile add --title "Implement auth"
brainfile add --title "Fix bug" --priority high --tags "bug,urgent"
brainfile add --title "Review PR" --assignee john --due-date 2025-02-01

Options:

OptionDescription
-t, --title <text>Task title (required)
-c, --column <name>Target column (default: todo)
-d, --description <text>Task description
-p, --priority <level>low, medium, high, or critical
--tags <list>Comma-separated tags
--assignee <name>Assignee name
--due-date <date>Due date (YYYY-MM-DD)
--subtasks <list>Comma-separated subtask titles
--with-contractInitialize with an empty contract
--deliverable <path:desc>Add deliverable (repeatable)
--validation <command>Add validation command (repeatable)
--constraint <text>Add constraint (repeatable)

move

Move a task to a different column.

bash
brainfile move --task task-1 --column "In Progress"
brainfile move --task task-5 --column done

Options:

OptionDescription
-t, --task <id>Task ID (required)
-c, --column <name>Target column (required)

patch

Update specific fields of a task. Use --clear-* options to remove fields.

bash
brainfile patch --task task-1 --priority critical
brainfile patch --task task-1 --title "Updated" --tags "new,tags"
brainfile patch --task task-1 --clear-assignee

Options:

OptionDescription
-t, --task <id>Task ID (required)
--title <text>New title
--description <text>New description
--priority <level>New priority
--tags <list>New tags (comma-separated)
--assignee <name>New assignee
--due-date <date>New due date
--clear-descriptionRemove description
--clear-priorityRemove priority
--clear-tagsRemove tags
--clear-assigneeRemove assignee
--clear-due-dateRemove due date

delete

Permanently delete a task. Requires confirmation.

bash
brainfile delete --task task-1 --force

Options:

OptionDescription
-t, --task <id>Task ID (required)
--forceConfirm deletion (required)

archive

Move a task to the archive section.

bash
brainfile archive --task task-1

Options:

OptionDescription
-t, --task <id>Task ID (required)

restore

Restore an archived task to a column.

bash
brainfile restore --task task-1 --column todo

Options:

OptionDescription
-t, --task <id>Task ID (required)
-c, --column <name>Target column (required)

subtask

Manage subtasks within a task.

bash
brainfile subtask --task task-1 --add "New subtask"
brainfile subtask --task task-1 --toggle task-1-1
brainfile subtask --task task-1 --update task-1-1 --title "Updated"
brainfile subtask --task task-1 --delete task-1-2

Options:

OptionDescription
-t, --task <id>Parent task ID (required)
--add <title>Add a new subtask
--toggle <id>Toggle subtask completion
--update <id>Update subtask (use with --title)
--delete <id>Delete a subtask
--title <text>New title (for --update)

lint

Validate brainfile syntax and auto-fix issues.

bash
brainfile lint              # Check for issues
brainfile lint --fix        # Auto-fix issues
brainfile lint --check      # Exit with error (for CI)

Options:

OptionDescription
-f, --file <path>Path to brainfile (default: brainfile.md)
--fixAutomatically fix issues
--checkExit with error code if issues found

What it checks:

  • YAML syntax errors
  • Unquoted strings with colons (auto-fixable)
  • Duplicate column IDs
  • Missing required fields

template

Create tasks from built-in templates.

bash
brainfile template --list
brainfile template --use bug-report --title "Login fails"
brainfile template --use feature-request --title "Dark mode"

Options:

OptionDescription
-l, --listList available templates
-u, --use <id>Create from template
--title <text>Task title (required with --use)
--description <text>Task description
-c, --column <name>Target column (default: todo)

Built-in Templates:

  • bug-report — Bug tracking with triage steps
  • feature-request — Feature proposals
  • refactor — Code refactoring tasks

tui

Launch interactive terminal UI. This is the default when running brainfile without arguments.

bash
brainfile              # Opens TUI with brainfile.md
brainfile ./tasks.md   # Opens TUI with specific file
brainfile tui          # Explicit TUI command

Keyboard Controls:

KeyAction
TAB / Shift+TABNavigate columns
j/k or /Navigate tasks
EnterExpand/collapse task
/Search tasks
?Show help
rRefresh
qQuit

hooks

Install integration hooks for AI coding assistants.

bash
brainfile hooks install claude-code
brainfile hooks install cursor --scope project
brainfile hooks install cline
brainfile hooks list
brainfile hooks uninstall claude-code --scope all

Supported Assistants:

  • Claude Code
  • Cursor
  • Cline

Options:

OptionDescription
--scope <scope>user (default), project, or all

contract

Manage the lifecycle of agent-to-agent contracts.

bash
brainfile contract pickup --task task-1
brainfile contract deliver --task task-1
brainfile contract validate --task task-1
brainfile contract attach --task task-1 --deliverable "file:src/feature.ts:Implementation"

Subcommands:

CommandDescription
pickupClaim a contract and set status to in_progress
deliverMark contract as delivered (ready for validation)
validateCheck deliverables and run validation commands
attachAdd contract to existing task

Common Options:

OptionDescription
-t, --task <id>Task ID (required)
-f, --file <path>Path to brainfile (default: brainfile.md)

Attach Options:

OptionDescription
--deliverable <spec>Add deliverable (format: type:path:description)
--validation <command>Add validation command (repeatable)
--constraint <text>Add constraint (repeatable)

See the Contract Commands Reference for detailed documentation.


migrate

Move root brainfile.md to .brainfile/ directory structure.

bash
brainfile migrate
brainfile migrate --dir ./project
brainfile migrate --force

Options:

OptionDescription
--dir <path>Project directory (default: current directory)
--forceOverwrite existing .brainfile/brainfile.md

What it does:

  • Creates .brainfile/ directory
  • Moves brainfile.md.brainfile/brainfile.md
  • Creates .brainfile/.gitignore (ignores state.json)
  • Preserves all content exactly

config

Manage user configuration stored in ~/.config/brainfile/config.json.

bash
brainfile config list
brainfile config get archive.default
brainfile config set archive.default github
brainfile config path

Subcommands:

CommandDescription
listShow all configuration values
get <key>Get specific config value
set <key> <value>Set config value
pathShow config file path

Common Config Keys:

  • archive.default — Default archive destination (local, github, linear)
  • archive.github.owner — GitHub repository owner
  • archive.github.repo — GitHub repository name
  • archive.linear.teamId — Linear team ID

auth

Authenticate with external services for archive functionality.

bash
brainfile auth github
brainfile auth linear --token <api-key>
brainfile auth status
brainfile auth logout github

Subcommands:

CommandDescription
github [--token <token>]Authenticate with GitHub (auto-detects gh CLI or uses OAuth)
linear --token <token>Authenticate with Linear API
statusShow authentication status for all services
logout [provider] [--all]Log out from service(s)

Options:

OptionDescription
--token <token>API token (required for Linear, optional for GitHub)
--allLog out from all services

mcp

Start an MCP (Model Context Protocol) server for AI assistant integration.

bash
brainfile mcp
brainfile mcp --file ./project/brainfile.md

Options:

OptionDescription
-f, --file <path>Path to brainfile (default: brainfile.md)

Available MCP Tools:

ToolDescription
list_tasksList tasks with optional filtering
add_taskCreate a new task
move_taskMove task between columns
patch_taskUpdate task fields
delete_taskPermanently delete a task
archive_taskArchive a task
restore_taskRestore from archive
add_subtaskAdd a subtask
delete_subtaskDelete a subtask
toggle_subtaskToggle subtask completion
update_subtaskUpdate subtask title

Global Options

OptionDescription
--helpDisplay help for command
--versionDisplay CLI version

Exit Codes

CodeMeaning
0Success
1Error (invalid arguments, file not found)
2Validation error (with lint --check)

CI/CD Integration

GitHub Actions

yaml
name: Validate Brainfile
on: [push, pull_request]

jobs:
  validate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Validate
        run: npx @brainfile/cli lint --check

Pre-commit Hook

bash
#!/bin/bash
# .git/hooks/pre-commit

if [ -f "brainfile.md" ]; then
  npx @brainfile/cli lint --check
  if [ $? -ne 0 ]; then
    echo "brainfile.md has validation errors"
    exit 1
  fi
fi

npm Scripts

json
{
  "scripts": {
    "tasks": "brainfile list",
    "tasks:lint": "brainfile lint --fix",
    "precommit": "brainfile lint --check"
  }
}

Next Steps

Released under the MIT License.