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, or cancelled.
--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. Accepts top-right, top-left, bottom-right, bottom-left, or center.
--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