CLI Commands
Every command supports --help (or -h) for usage details.
dodo init
Initialize a .dodo/ directory in the current project.
dodo init
Most commands auto-initialize if .dodo/ doesn't exist, so this is optional.
dodo add <title>
Create a new task. Also available as dodo create.
dodo add "Fix login bug"
dodo add "Setup database" -d "Configure PostgreSQL" -t "setup,backend"
dodo add "Write tests" --parent abc12345 --blocked-by xyz99999
| Flag | Short | Description |
|---|---|---|
--description <text> | -d | Task description (supports \n for newlines) |
--parent <id> | -p | Parent task ID |
--tags <tag1,tag2> | -t | Comma-separated tags |
--blocked-by <id1,id2> | -b | Comma-separated blocker task IDs |
When blockers are specified, the task starts with blocked status.
dodo list
List tasks in a tree view. Also available as dodo ls.
dodo list
dodo list --status open --tag important
dodo list --all
| Flag | Short | Description |
|---|---|---|
--status <status> | -s | Filter by status (open, in-progress, blocked, done) |
--tag <tag> | -t | Filter by tag |
--parent <id> | -p | Filter by parent task |
--all | -a | Include done tasks |
Done tasks are hidden by default.
dodo show <id>
Display detailed information about a task.
dodo show abc12345
dodo show abc12345 --prompt | pbcopy
| Flag | Description |
|---|---|
--prompt | Render the task using the prompt template |
The --prompt flag outputs the task formatted as an agent-ready prompt. Pipe it to pbcopy or redirect it to a file.
dodo update <id>
Update task properties. Also available as dodo edit.
dodo update abc12345 --title "New title"
dodo update abc12345 --status in-progress
dodo update abc12345 --add-tag urgent --remove-tag backlog
dodo update abc12345 --add-blocker xyz99999
dodo update abc12345 --parent def67890 # set parent
dodo update abc12345 --parent "" # remove parent
| Flag | Short | Description |
|---|---|---|
--title <text> | New title | |
--description <text> | -d | New description |
--status <status> | -s | Set status |
--parent <id> | -p | Set or remove ("") parent |
--add-tag <tag> | Add a tag | |
--remove-tag <tag> | Remove a tag | |
--add-blocker <id> | Add a blocking dependency | |
--remove-blocker <id> | Remove a blocking dependency |
dodo complete <id>
Mark a task as done. Also available as dodo done.
dodo complete abc12345
When a task is completed, any tasks that were blocked by it have their status automatically re-evaluated. If all their blockers are now done, they move from blocked to open.
dodo delete <id>
Delete a task and clean up all references. Also available as dodo rm.
dodo delete abc12345
This removes the task and cleans up parent/child links and blocking dependencies across all related tasks.
dodo query <text>
Fuzzy search across task titles, descriptions, and tags. Also available as dodo search.
dodo query "login"
dodo query "db" --status open --limit 10
dodo query "setup" --all
| Flag | Short | Description |
|---|---|---|
--status <status> | -s | Filter by status |
--all | -a | Include done tasks |
--limit <count> | -n | Max results (default: 20) |
Results are ranked by relevance. Title matches are boosted 3x and tag matches 2x over description matches.
dodo api [method] <path>
Call REST API endpoints directly without starting a server.
dodo api tasks # GET /api/tasks
dodo api get tasks # explicit GET
dodo api post tasks -d '{"title": "My task"}' # create a task
dodo api patch tasks/abc123 -d '{"status": "done"}'
dodo api delete tasks/abc123
dodo api prompt-template # get the prompt template
| Flag | Short | Description |
|---|---|---|
--body <json> | -d | Request body (JSON string) |
The method defaults to GET if not specified. See the REST API reference for all available endpoints.
dodo serve
Start the web UI server.
dodo serve
dodo serve --port 8080
| Flag | Short | Description |
|---|---|---|
--port <port> | -p | Port number (default: 3456) |
Task Statuses
| Status | Description |
|---|---|
open | Default status for new tasks |
in-progress | Currently being worked on |
blocked | Has incomplete blocking dependencies |
done | Completed |
Environment Variables
| Variable | Description |
|---|---|
NO_COLOR | Set to disable terminal colors |