CLI
The cicd command-line client gives you the same data the web dashboard does, from your terminal. Nine subcommands cover the runs list, run detail, connection and repo inventory, DORA metrics, cost analysis, performance analysis, and a live TUI dashboard.
Installation
The CLI is a Go binary. With a Go toolchain installed:
go install github.com/cicd-watch/cli/cmd/cicd@latest
Or build from source:
git clone https://github.com/cicd-watch/cli cd cli make install
The binary is named cicd. Verify the install by running:
cicd --help
Authentication
The CLI authenticates with an API key. Create one under Settings, API Keys in the web app. API keys are prefixed with cw_.
Save the key with:
$ cicd login Enter your API key: cw_******************** Authenticated successfully. Config saved to /Users/you/.config/cicd/config.yaml
The config is written to ~/.config/cicd/config.yaml (or $XDG_CONFIG_HOME/cicd/config.yaml if set) with 0600 permissions. cicd login validates the key against the API before saving, so an invalid key fails fast rather than breaking later commands.
Commands
Nine subcommands ship with the CLI. The four analytical commands (runs, dora, costs, performance) share the same filter flags, documented under Shared filter flags below.
cicd login
Authenticate with cicd.watch by entering your API key interactively. Saves the key to config.yaml after validating against the API.
cicd runs
List recent pipeline runs across your connected providers. Same data as the builds dashboard, in tabular form.
Flags
- --period
- Number of days to look back.
- --status
- Filter by run status. Accepts
success,failure,running, orcancelled. - --providers
- Comma-separated provider slugs (e.g.
github,gitlab). - --repo
- Filter by repository name.
cicd run <id>
Show details for a specific pipeline run. The <id> is the run identifier from cicd runs output or the run URL in the web app.
cicd connections
List the CI/CD providers connected to your tenant: provider, account identifier, scopes, and configured organisations.
cicd repos
List repositories visible to your tenant across every connection. Useful for confirming a newly-connected provider has surfaced the right repositories before deeper analysis.
cicd dora
Show DORA metrics: deployment frequency, lead time for changes, change failure rate, mean time to recovery, and deployment rework rate, with their rating tier. Accepts the shared filter flags (period, providers, orgs, repo).
cicd costs
Cost analysis broken down into compute and developer wait time per workflow, with waste categories (failure waste, rerun waste, cancellation waste). Accepts the shared filter flags.
cicd performance
Pipeline performance analysis: median and p95 duration per workflow, performance rating (fast, acceptable, slow, critical), and trend direction. Accepts the shared filter flags.
cicd dashboard
Open the live TUI dashboard: a terminal interface that refreshes pipeline status in real time. Useful as a persistent companion to a longer working session.
Flags
- --new-window
- Open the dashboard in a new terminal window.
- --position
- Window position when paired with
--new-window. Acceptstop-right,top-left,bottom-right,bottom-left, orcenter. - --pin
- Keep the dashboard window on top (macOS only).
Key bindings
- j / k or ↑ / ↓
- Navigate runs.
- enter
- View run detail.
- o
- Open the run in your browser.
- r
- Refresh now.
- t
- Trends.
- n
- Notifications.
- 1
- DORA metrics.
- 2
- Costs.
- 3
- Performance.
- esc
- Back.
- q
- Quit.
Shared filter flags
The four analytical commands (runs, dora, costs, performance) share the same filter shape. Combine any of these flags to scope the result set.
- --period <days>
- Number of days to look back. Default 30.
- --providers <list>
- Comma-separated provider slugs (e.g. github,gitlab). Filters to the named providers.
- --orgs <list>
- Comma-separated organisations. Filters to runs under those orgs.
- --repo <pattern>
- Repository name or substring. Filters to matching repos.
cicd runs additionally accepts --status (success, failure, running, cancelled). The other three commands do not take a status filter because aggregated metrics already account for all statuses.
Updating
Reinstall with the same command used for installation. The binary replaces the previous version in place; your config and saved API key are preserved.
go install github.com/cicd-watch/cli/cmd/cicd@latest
Uninstalling
Remove the binary and delete the config directory:
rm "$(which cicd)" rm -rf ~/.config/cicd
See Also
- Public API (the same surface, exposed as HTTP)
- MCP Server (the same surface, exposed for LLMs)
- API Keys