Board Commands
Manage tasks on the Kanban board backed by Supabase.
Task Hierarchy
The board supports a three-level hierarchy via the task_type field:
- Epic — Large initiative or feature area. Contains stories.
- Story — A deliverable piece of work within an epic. Contains tasks.
- Task — An actionable unit of work (default type).
Use --type when creating items and --parent to place them in the hierarchy. Use board tree to visualize the hierarchy.
Commands
optimal board view
Display the kanban board
| Flag | Description | Default | Required |
|---|---|---|---|
-p, --project <slug> | Project slug | ||
-s, --status <status> | Filter by status | ||
--mine <agent> | Show only tasks claimed by agent | ||
-w, --watch | Watch for changes (refresh every 30s) | ||
--interval <seconds> | Watch refresh interval in seconds | 30 | |
-j, --json | Output as JSON (for scripting/agentic use) | ||
--type <type> | Filter by type: epic, story, task | ||
--hierarchy | Show hierarchical tree view |
bash
optimal board view
optimal board view --project marketing
optimal board view --status in_progress --mine bot1
optimal board view --type epic
optimal board view --hierarchy
optimal board view --status ready,in_progress
optimal board view --watch
optimal board view --jsonoptimal board create
Create a new task
| Flag | Description | Default | Required |
|---|---|---|---|
-t, --title <title> | Task title | yes | |
-p, --project <slug> | Project slug | yes | |
-d, --description <desc> | Task description | ||
--priority <n> | Priority 1-4 | 3 | |
--skill <ref> | Skill reference | ||
--source <repo> | Source repo | ||
--target <module> | Target module | ||
--effort <size> | Effort: xs, s, m, l, xl | ||
--blocked-by <ids> | Comma-separated blocking task IDs | ||
--labels <labels> | Comma-separated labels | ||
--type <type> | Task type: epic, story, or task | task | |
--parent <id> | Parent task ID (for stories under epics, tasks under stories) |
bash
optimal board create -t "Update API docs" -p docs
optimal board create -t "Fix login timeout" -p backend --priority 1 --labels bug,auth
optimal board create -t "Content Platform v2" -p content --type epic
optimal board create -t "RSS scraping module" -p content --type story --parent <epic-uuid>
optimal board create -t "Add Twitter feed parser" -p content --type task --parent <story-uuid>
optimal board create -t "Generate social posts" -p content --skill content-gen
optimal board create -t "Migrate auth" -p cli --effort m --blocked-by <uuid1>,<uuid2>optimal board update
Update a task
| Flag | Description | Default | Required |
|---|---|---|---|
--id <uuid> | Task ID | yes | |
-s, --status <status> | New status | ||
-t, --title <title> | New title | ||
-a, --agent <name> | Assign to agent | ||
--assigned-to <name> | Assign to agent (alias for -a/--agent) | ||
--priority <n> | New priority | ||
--project <uuid> | Project ID | ||
--due-date <YYYY-MM-DD> | Due date (or "none" to clear) | ||
--source-repo <repo> | Source repo | ||
--target-module <module> | Target module | ||
--effort <s|m|l> | Estimated effort | ||
-m, --message <msg> | Log message (adds comment) |
bash
optimal board update --id <uuid> -s in_progress
optimal board update --id <uuid> -a content-bot
optimal board update --id <uuid> -s done -m "Completed migration"
optimal board update --id <uuid> --due-date 2026-04-15
optimal board update --id <uuid> --due-date noneoptimal board claim
Claim a task (bot pull model)
| Flag | Description | Default | Required |
|---|---|---|---|
--id <uuid> | Task ID | yes | |
--agent <name> | Agent name | yes |
bash
optimal board claim --id 42
optimal board claim --id 42 --agent finance-botoptimal board delete
Delete a task (with confirmation)
| Flag | Description | Default | Required |
|---|---|---|---|
--id <uuid> | Task ID | yes | |
-y, --yes | Skip confirmation (auto-confirm) | ||
--dry-run | Show what would be deleted without actually deleting |
bash
optimal board delete --id 42 --dry-run
optimal board delete --id 42 --yesoptimal board comment
Add a comment to a task
| Flag | Description | Default | Required |
|---|---|---|---|
--id <uuid> | Task ID | yes | |
--author <name> | Author name | yes | |
--body <text> | Comment body | yes |
bash
optimal board comment --id 42 --author oracle --body "Blocked on API rate limits"optimal board log
View activity log
| Flag | Description | Default | Required |
|---|---|---|---|
--task <uuid> | Filter by task ID | ||
--actor <name> | Filter by actor | ||
--limit <n> | Max entries | 20 |
bash
optimal board log --limit 20
optimal board log --task 42
optimal board log --actor content-botoptimal board stats
Show task statistics by status and priority
| Flag | Description | Default | Required |
|---|---|---|---|
-p, --project <slug> | Filter by project slug |
bash
optimal board stats
optimal board stats --project backendoptimal board tui
Interactive kanban board
bash
optimal board tuioptimal board tree
Show epic/story/task tree for a given epic or story
| Flag | Description | Default | Required |
|---|---|---|---|
--id <uuid> | Epic or story ID | yes | |
--json | Output as JSON |
bash
optimal board tree --id <epic-uuid>
optimal board tree --id <epic-uuid> --jsonoptimal board auto-claim
Claim the next available task and launch a Claude Code agent via OptimalOS
| Flag | Description | Default | Required |
|---|---|---|---|
--agent <name> | Agent claimer name | openclaw-cron | |
--max-sessions <n> | Max concurrent sessions (skip if at capacity) | 2 | |
--dry-run | Show what would be claimed without acting | ||
--optimalos-url <url> | OptimalOS base URL | http://localhost:3000 |
bash
optimal board auto-claim
optimal board auto-claim --agent claude-code --max-sessions 4