Getting Started
Dodo is a local task management CLI with a web UI. Tasks are stored as JSONL in a .dodo/ directory, making them easy to track in version control.
Install
bun add --exact @matthamlin/dodo
Or with npm:
npm install --save-exact @matthamlin/dodo
Quick Start
1) Initialize
dodo init
This creates a .dodo/ directory with a tasks.jsonl file. You can skip this step — most commands auto-initialize if needed.
2) Create a task
dodo add "Fix login bug"
Add details with flags:
dodo add "Setup database" --description "Configure PostgreSQL" --tags "setup,backend"
3) List tasks
dodo list
Tasks are displayed as a tree. Done tasks are hidden by default — pass --all to include them.
4) Update status
dodo update abc12345 --status in-progress
5) Complete a task
dodo complete abc12345
Storage
Tasks live in .dodo/tasks.jsonl — one JSON object per line. This format is:
- Human-readable — you can inspect it with any text editor
- Git-friendly — diffs are clean, merges are straightforward
- Atomic — writes use a temp file + rename to prevent corruption
Add .dodo/ to your repository to share tasks with your team.
Next Steps
- Learn all CLI Commands
- Explore Task Relationships for hierarchies and dependencies
- Try the Web UI for visual task management
- Set up Prompt Templates for AI agent workflows