Skip to main content

Overview

The burn command aggregates task hours across your project and groups them by a chosen dimension. It answers questions like “how many hours are in progress?”, “what’s left per release?”, and “who has capacity?” — all from the terminal.

Burn Report

Basic Usage

# Summary + breakdown by release (default dimension)
apollo burn -p "Delfin One"

# Group by specialty
apollo burn -p "Delfin One" --by specialty

# Group by assignee (shows capacity)
apollo burn -p "Delfin One" --by assignee

# Group by priority
apollo burn -p "Delfin One" --by priority
Options:
FlagDescription
-p, --project <name>Project name or ID (required)
--by <dimension>Group by: release (default), specialty, assignee, priority
--release <name>Scope to a single release
-s, --status <status>Filter statuses (comma-separated, or all)

Scoped to a Release

Drill into a single release to see how its hours break down:
# Show specialty breakdown within a release
apollo burn -p "Delfin One" --release "P3.1" --by specialty

# Show who's working on what in a release
apollo burn -p "Delfin One" --release "P3 — Credit Memo System" --by assignee
┌─ Burn: Delfin One ────────────────────────────────────────┐
│ 382 tasks · 3995h total                                    │
│ Done: 300 (2626h) · WIP: 14 (556h) · Todo: 68 (813h)     │
└────────────────────────────────────────────────────────────┘

By Release                       Done    WIP    Todo   Total  Progress
Platform V1.0.0 - Phase 1 (De…  1689h   -      -      1689h  ██████████ 100%
Platform V1.0.0 - Phase 2 (Ja…  872h    -      -      872h   ██████████ 100%
P3 — Multi-Tenant / White-Lab…  -       250h   170h   420h   ░░░░░░░░░░ 0%
P3 — Credit Memo System         -       140h   50h    190h   ░░░░░░░░░░ 0%
P3 — AI Data Accuracy & Pipel…  57h     56h    16h    129h   ████░░░░░░ 44%
...

Enhanced Task Filters

The task list command now supports additional filters for slicing data by release, specialty, and more:
# Tasks in a specific release
apollo task list -p "Delfin One" --release "P3.1"

# Tasks by specialty
apollo task list -p "Delfin One" --specialty "frontend"

# Tasks by type
apollo task list -p "Delfin One" --task-type "feature"

# Unassigned tasks only
apollo task list -p "Delfin One" --unassigned

# Tasks due before a date
apollo task list -p "Delfin One" --due-before 2026-03-01

# Combine filters
apollo task list -p "Delfin One" --release "P3.1" --unassigned --specialty "back-end"
New filter options:
FlagDescription
--release <name>Filter by release name (fuzzy-matched)
--specialty <name>Filter by specialty (e.g., frontend, back-end, ai)
--task-type <name>Filter by task type (e.g., feature, bug, chore)
--unassignedShow only tasks with no assignee
--due-before <date>Show tasks due on or before a date (YYYY-MM-DD)
The task list table now includes Hours and Release columns in addition to the existing columns.

JSON Output

Both commands support --json for structured output, making them composable with jq and other tools.

Burn JSON

apollo burn -p "Delfin One" --json
{
  "summary": {
    "tasks": 382,
    "total_hours": 3995,
    "done_hours": 2626,
    "wip_hours": 556,
    "todo_hours": 813,
    "blocked_hours": 0,
    "done_tasks": 300,
    "wip_tasks": 14,
    "todo_tasks": 68,
    "blocked_tasks": 0
  },
  "dimension": "release",
  "groups": [
    {
      "name": "Platform V1.0.0 - Phase 1 (December)",
      "task_count": 186,
      "total_hours": 1689,
      "done_hours": 1689,
      "wip_hours": 0,
      "todo_hours": 0,
      "blocked_hours": 0,
      "progress_pct": 100
    }
  ]
}

Piping Examples

# Find releases with the most remaining work
apollo burn -p "Delfin One" --json | jq '.groups | sort_by(-.todo_hours) | .[0:5] | .[] | "\(.name): \(.todo_hours)h todo"'

# Get total WIP hours by assignee
apollo burn -p "Delfin One" --by assignee --json | jq '.groups[] | select(.wip_hours > 0) | "\(.name): \(.wip_hours)h"'

# Count unassigned tasks per specialty
apollo task list -p "Delfin One" --unassigned --json | jq 'group_by(.specialty) | map({specialty: .[0].specialty, count: length})'