CLI cheat sheet
The most useful dci commands, one page. For details, see the CLI guide, the command reference in the sidebar, and the changelog.
Sections follow the working order: set up once, find your way around, run and shape your data, then automate. In an interactive terminal the CLI adds pickers, prompts, and full-screen viewers (v2.5.1+) — all of them switch off automatically in scripts, pipes, CI, and agent mode, so nothing here changes how the CLI automates.
Install and update
brew install doitintl/dci-cli/dci # macOS (Windows: winget install DoiT.dci)
dci --version # validate the install
dci update # update in place — any OS, any install method (v2.5.2+)
dci update --check # just report what's available; installs nothing
dci completion bash|zsh|fish # tab-completion (Homebrew/deb/rpm install it automatically)
Authenticate and verify
dci login # interactive browser OAuth; success names your active context
export DCI_API_KEY=<token> # CI/automation (personal or service-account token)
dci status # config, session state, agent mode, active context
dci validate # who am I — confirms identity and permissions
dci logout # clear cached credentials
Customer context
DCI_CUSTOMER_CONTEXT=acme.com dci list-budgets # this command only (env)
dci list-budgets -D acme.com # this command only (flag)
dci customer-context set acme.com # persistent default
dci customer-context show # inspect / clear
Discover commands
dci --help # all commands, grouped
dci query --help # terse per-command help
dci query --help-full # + full request/response schemas
dci commands --json # machine-readable catalog (args, flags, destructive)
dci docs # every documentation entry point
Resource names and pickers
dci get-report "Monthly AWS Spend" # names work wherever IDs do (v2.1+)
dci get-budget Team Backyard # quoting optional; Tab completes names too
dci get-report # no argument? filter-as-you-type picker (v2.5.1+)
dci open report # same picker, then deep-links into the console
dci get-report --id <value> # force a literal ID (skip the lookup)
dci get-report --name <value> # force a name lookup for an ID-shaped name
DCI_NO_RESOLVE=1 dci ... # scripts: disable name resolution and pickers
# Ambiguous name? Interactive terminals offer the matches as a menu (v2.5.1+);
# scripts get every match with its ID and a clean error — nothing runs on a guess.
Reports and queries
dci query # interactive builder: compose, run, or save a query.json (v2.5.1+)
dci query < query.json # ad-hoc query from a JSON config
dci list-reports --max-results 10
dci list-reports --filter "owner:[email protected]" # server-side filter; keys: reportName, owner, type, folderId (combine with |)
dci list-reports --name-contains "sprint" # case-insensitive name match (ANDs with --filter)
dci get-report <id> # pivot view with totals, trend, heatmap
dci get-report <id> --start-date 2026-01-01 --end-date 2026-01-31
dci get-report <id> --time-range P30D
dci get-report-config <id> > r.json # pull → edit → push, as code
dci update-report <id> < r.json
Shape and explore the output
dci list-anomalies -M interactive # full-screen viewer: ←→ columns, s sort, / filter, Enter prints the id (v2.5.1+)
dci query --chart < query.json # stacked per-group chart under the table (v2.5.1+); --chart=line for period totals
dci get-report <id> --flat # flat rows instead of the pivot
dci query --pivot < query.json # force the pivot anywhere
dci query --output csv < query.json > out.csv # spreadsheet export
dci query --rows keyed --output json < query.json # rows as named objects (for jq)
dci query --max-rows 0 < query.json # lift the agent-mode row cap
dci list-anomalies -C id,serviceName,startTime # choose table columns
dci list-reports -M wrap -W 160 # wrap cells / set table width
dci query --raw-numbers --heatmap=false < q.json # exact values, no shading
dci list-budgets --utc # keep table timestamps in UTC
DCI_TZ=Europe/Berlin dci list-reports # show times in a specific timezone
Budgets, anomalies, allocations
dci list-budgets # amounts, utilization bars (red at 90%+), risk, forecast
dci list-budget-suggestions # API-suggested budgets
dci list-anomalies --max-results 10 # recent cost anomalies
dci get-anomaly <id>
dci list-allocations
dci open budget "Team Backyard" # deep link into the console (name or ID)
dci ask-ava-sync ephemeral: true, question: "Why did costs spike yesterday?"
Insights
dci list-insights # ranked by daily savings; dismissed hidden; easy wins marked
dci list-insights --cloud-provider aws # one cloud (aws, gcp, azure)
dci list-insights --source aws-security-hub # one source (repeatable)
dci list-insights --easy-win # only quick, low-effort wins
dci list-insights --category Security --search-term "public"
dci list-insights --include-dismissed # bring dismissed insights back
dci get-insight <source> <key> # full detail, incl. the long description
Destructive commands
dci delete-report "old draft" # interactive: a confirm dialog shows the resolved name + ID; Cancel is the default (v2.5.1+)
dci delete-report <id> --dry-run # local preview, no request
dci delete-report <id> --yes # scripts/CI: explicit confirmation (else exit 30)
Script it
export DCI_API_KEY=<token> # never the browser flow in CI
budgets=$(dci list-budgets --output json)
dci get-report <id> --output json || echo "failed with $?"
# Pipes and CI never see pickers or prompts — same output as before v2.5.1.
# DCI_NO_TUI=1 turns them off in a terminal too, keeping tables and color.
# Exit codes: 0 ok · 2 usage · 10 auth · 11 permission · 20 not found ·
# 30 validation/unconfirmed destructive · 40 server · 41 network · 50 rate limit
For AI agents
dci skill claude # install the usage skill (codex, cursor, gemini, kiro, opencode)
dci skill list # embedded files with token estimates
dci --agent status # force agent mode (auto-detected in most harnesses)
# Agent mode: TOON output, JSON error envelopes on stderr, 500-row cap with markers
A compact, CLI-only documentation index lives at https://help.doit.com/llms-cli.txt — every entry links to its page as plain Markdown, so agents can fetch just the commands they need.
Useful environment variables: DCI_API_KEY, DCI_CUSTOMER_CONTEXT, DCI_AGENT_MODE, DCI_NO_TUI, DCI_CONFIRM_DESTRUCTIVE, DCI_SKIP_BODY_VALIDATION, DCI_TZ, NO_COLOR. Full tables in the CLI guide.