Drop the binary on your PATH and you're done.
The Convoy CLI is a single static binary. Download it once for your platform, put it on your PATH, and the same install works against every workspace you belong to.
There is no per-project config to maintain, no environment variable to export before running it, and no dotfile to commit. The CLI looks at your local credential store first, then prompts you to sign in.
Device flow. No tokens to paste.
Authentication uses an OAuth-style device flow. The CLI prints a URL and a short code. Open the URL in your browser, confirm the code, and the CLI receives the session token over the back channel.
Sessions are tied to your Convoy account, not to the machine. Sign in on a CI worker, on your laptop, and on a teammate's workstation, every session is independent. Revoke any one of them from the dashboard or the CLI without affecting the others.
Workspace selection is part of the same flow. Pick the active workspace at sign-in time and every subsequent command operates inside it. Switch workspaces with one command when you need to.
List, deploy, pause, resume, delete, log-tail.
Every app operation in the dashboard is available from the CLI. List the apps in your workspace, get full detail on any one of them, trigger a deploy from the current commit, pause an app to free its capacity, resume it later, or delete it for good.
Logs stream live to your terminal with the same WebSocket pipeline the dashboard uses. Pipe them through grep, jq, or your favourite log filter, they are plain text on stdout.
List, get, cancel, same surface as the dashboard.
Every deployment your apps have ever had is queryable from the CLI. List the deployment history of an app, get full detail on any deployment, or cancel one that is still building.
Retry, cancel, and promote operations are idempotent on the API side, so the CLI is safe to retry from a CI pipeline. Pass an idempotency key and the second call will return the result of the first instead of doing the work twice.
Every deploy, every alarm, every config change, at your prompt.
The same canonical event timeline that powers /events in the dashboard is queryable from the CLI. Fetch the recent history of your workspace, or tail the live stream and pipe it into anything else.
Useful for shell-out automation: trigger a webhook when a deploy fails, page a human when a critical alarm fires, or feed events into your own data warehouse without standing up an integration.
List repos, branches, and commits the platform sees.
The GitHub App you connected to your workspace is reachable from the CLI. Browse the repos it has access to, list branches on any repo, and walk commits on a branch, all using fresh installation tokens the platform mints for you.
Useful when you want to pick a deploy target from a script without round-tripping through the dashboard.
Non-interactive auth. Idempotent operations. Structured output.
The CLI runs in CI the same way it runs on your laptop. Sign in once with a short-lived device-flow session, persist the session to a secret store, and the rest of the pipeline reuses it.
Most write operations accept an idempotency key. Pass the same key on retry and the second call returns the result of the first instead of doing the work twice, useful when a CI step is restarted halfway through.
Structured output is opt-in. Add a flag and most commands return JSON suitable for jq or yq piping, instead of the human-formatted default.
Every CLI action shows up in /events.
Every write you make through the CLI lands in the platform event timeline the same way a dashboard click would. Deploys, cancels, promotes, pauses, all attributed to the user who ran the CLI command, all tagged as having come from the CLI.
Teammates can see what you did from the dashboard. You can see what they did from the CLI. There is no separate 'CLI log' to chase.