id = "codeburn" name = "CodeBurn" homepage = "https://codeburn.app" executables = ["codeburn"] [dotfiles] # CodeBurn's official docs name these user-authored configuration files. The # docs deliberately use the literal `~/.config` path and do not state that the # CodeBurn config follows XDG_CONFIG_HOME. # https://codeburn.app/docs/budget # https://codeburn.app/docs/model-aliases # https://codeburn.app/docs/guard # https://codeburn.app/docs/sync paths = [ "~/.config/codeburn/config.json", "~/.config/codeburn/guard.json", "~/.config/codeburn/sync.json", ] # Parsed-result caches and guard per-session state are machine state, not # settings, and are intentionally not listed. The sync refresh token is held # by the OS keychain when available; the docs do not specify the fallback file # name, so that unknown credential path is not guessed here. exclude = [ "~/.cache/codeburn/", "~/.config/codeburn/guard/", ] secret = [] # CodeBurn reads configuration for each command and then exits. 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"]