id = "codeburn"
name = "CodeBurn"
homepage = "https://codeburn.app"
executables = ["codeburn"]
[dotfiles]
paths = [
"~/.config/codeburn/config.json",
"~/.config/codeburn/guard.json",
"~/.config/codeburn/sync.json",
]
exclude = [
"~/.cache/codeburn/",
"~/.config/codeburn/guard/",
]
secret = []
side_effect = false
[commands]
format = 1
label = "CodeBurn report"
description = "Print a usage and cost report for AI coding tools over a period or date range, optionally as JSON. The optimize, guard, sync, quota and other subcommands are not modelled."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false }
[[commands.subcommand]]
path = ["report"]
label = "Usage report"
description = "Report spend and usage; --format json prints the full dashboard data to stdout."
[[commands.subcommand.source]]
id = "help"
kind = "manual"
url = "https://raw.githubusercontent.com/getagentseal/codeburn/HEAD/docs/cli.md"
revision = "HEAD 2026-10-27"
evidence = """
Most commands also accept `--provider`, `--project` / `--exclude`, and a period flag (`-p today|week|30days|month|all|lifetime`).
| `codeburn report -p 30days` | Rolling 30-day window |
| `codeburn report --from 2026-04-01 --to 2026-04-10` | An exact date range |
| `codeburn report --format json` | Full dashboard data as JSON, printed to stdout |
codeburn report --project myapp # show only projects matching "myapp"
codeburn report --exclude myapp --exclude tests # exclude multiple projects
codeburn overview --provider claude # one tool only
"""
[[commands.subcommand.field]]
id = "period"
label = "Period"
type = "enum"
option = ["-p"]
choices = [{ value = "today", label = "Today" }, { value = "week", label = "Last 7 days" }, { value = "30days", label = "Last 30 days" }, { value = "month", label = "This month" }, { value = "all", label = "All recent" }, { value = "lifetime", label = "Lifetime" }]
sources = ["help"]
[[commands.subcommand.field]]
id = "from"
label = "From date"
description = "YYYY-MM-DD."
type = "string"
option = ["--from"]
sources = ["help"]
[[commands.subcommand.field]]
id = "to"
label = "To date"
description = "YYYY-MM-DD."
type = "string"
option = ["--to"]
sources = ["help"]
[[commands.subcommand.field]]
id = "format"
label = "Output format"
type = "enum"
option = ["--format"]
choices = [{ value = "json", label = "JSON" }]
sources = ["help"]
[[commands.subcommand.field]]
id = "provider"
label = "Provider"
type = "string"
option = ["--provider"]
suggestions = [{ value = "claude", label = "Claude Code" }]
sources = ["help"]
[[commands.subcommand.field]]
id = "project"
label = "Only projects matching"
type = "string"
option = ["--project"]
multiple = true
sources = ["help"]
[[commands.subcommand.field]]
id = "exclude"
label = "Exclude projects matching"
type = "string"
option = ["--exclude"]
multiple = true
sources = ["help"]
[[commands.subcommand.task]]
id = "last-30"
label = "Last 30 days"
set = { period = ["30days"] }
fields = ["period", "provider", "project", "exclude", "format"]
required = []
[[commands.subcommand.task]]
id = "range"
label = "Date range"
fields = ["from", "to", "provider", "project", "exclude", "format"]
required = ["from"]
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["period", "from", "to", "format"]
[[commands.subcommand.group]]
id = "advanced"
label = "Filters"
fields = ["provider", "project", "exclude"]