Downloading the command-line client
Get the cadence command-line client from your own instance, where it offers downloads, over MCP, in the browser or over the HTTP API.
This page is for anyone who needs the cadence
command-line client on a machine. It covers how to get the
client from your Cadence instance, which file to take, how to check it, and what
each refusal means.
Your instance offers the client for download only if it has been set up to.
On an instance that has not, the user menu has no Download CLI item, the
/cli page answers 404 Not Found, and the MCP tool and HTTP route below refuse
with "This Cadence instance does not offer CLI downloads." In that case get the
client from whoever operates your instance.
Replace https://cadence.example.com with your instance's address. Version tags
such as v1.4.0 on this page are invented examples.
Over MCP
cli_releases_get is a tool on Cadence's
MCP endpoint: you call it with tools/call, authenticated with
your own bearer token (see Authentication). It
returns everything you need to install or update the client: one release's files,
each with a download link, its SHA-256 and its size, and the list of published
versions.
| Argument | Required | Meaning |
|---|---|---|
version | No | A published release tag, such as v1.4.0. Leave it out for the latest release. |
cli_releases_get is an operator tool: tools/list shows it when you
authenticate as yourself. A worker working a lease gets the
worker list instead, which does not include it (see
MCP § tools/list). It is not tied to a space, so you
need no role in any space to call it. It is listed whether or not your instance
offers downloads, so a call on an instance that does not is refused with a
message rather than missing.
The result looks like this:
{
"version": "v1.4.0",
"latest": "v1.4.0",
"versions": ["v1.4.0", "v1.3.2", "v1.3.1"],
"assets": [
{
"os": "darwin",
"arch": "arm64",
"url": "https://…",
"sha256": "…",
"size": 61022208
},
{ "os": "darwin", "arch": "x64", "url": "https://…", "sha256": "…", "size": 63291392 },
{ "os": "linux", "arch": "arm64", "url": "https://…", "sha256": "…", "size": 60149760 },
{ "os": "linux", "arch": "x64", "url": "https://…", "sha256": "…", "size": 62717952 }
],
"checksums_url": "https://…",
"expires_at": "2026-10-10T12:15:00Z",
"install": "Install or update the Cadence CLI (latest: v1.4.0).\n\n0. Run `cadence version`. …"
}| Field | Meaning |
|---|---|
version | The release these files belong to: the version you asked for, or the latest. |
latest | The newest published release. |
versions | Every published release, newest first. |
assets | One entry per binary in the release. os and arch say which machine it is for (see Choosing the right file), url downloads it, sha256 is its checksum and size is in bytes. |
checksums_url | Downloads the release's checksums.txt, which lists the SHA-256 of every binary. |
expires_at | When the links in url and checksums_url stop working. |
install | Plain-text steps for installing or updating the client from a shell. See Choosing the right file before you follow them. |
The links last 15 minutes. After expires_at, call cli_releases_get again
for fresh ones.
When the call is refused
A refused call returns invalid arguments (code -32602, see
MCP § Error codes) with one of these messages:
| Message | Why | What to do |
|---|---|---|
This Cadence instance does not offer CLI downloads. | Your instance has not been set up to offer the client. | Get the client from whoever operates your instance. |
No Cadence CLI release has been published yet. | The instance offers downloads, but no release is available yet. | Try again later, or ask whoever operates your instance. |
"v9.9.9" is not a published CLI release | The version you passed is not one of the published releases. The message quotes the value you sent. | Pick a release from versions, or leave version out for the latest. |
CLI downloads are unavailable right now; try again later. | Cadence could not read the published releases at the moment. | Try again later. If it keeps happening, tell whoever operates your instance. |
version must be a string | You passed version as something other than text. | Pass the tag as a string, such as "v1.4.0". |
In the browser
On an instance that offers downloads, open the user menu: the avatar at the right of the top navigation. Choose Download CLI. It sits below User settings, and above Instance settings if you are an instance administrator. The item is not there on an instance that does not offer downloads.
Download CLI opens https://cadence.example.com/cli. Any signed-in user can
open it; you need no role in a space. If you are not signed in, Cadence sends you
to sign in first.
The page shows these parts, in order:
-
Install followed by the latest version, for example Install v1.4.0. It says "Download the binary for your platform below, then run these commands from the folder it saved to." and then gives the commands for each platform.
Before you run them, pick the file for your machine as in Choosing the right file, download it from the version list, and check it as in Checking the file.
For macOS:
chmod +x cadence mv cadence /usr/local/bin/cadence xattr -d com.apple.quarantine /usr/local/bin/cadence cadence versionFor Linux:
chmod +x cadence mv cadence /usr/local/bin/cadence cadence versionIt ends with "Then sign in with
cadence login." See Command-line client § Signing in. -
Every published version, newest first. The latest has a Latest badge. Under each version is a list of its files, binaries first and then
checksums.txt. Each row shows a platform label, the file name as a link, and the file's size.
If the install commands fail:
mvreports "Permission denied". You cannot write to/usr/local/bin. Run themvcommand again withsudoin front.mvreports "No such file or directory"./usr/local/bindoes not exist on this machine, which happens on some Macs. Create it withsudo mkdir -p /usr/local/bin, then run themvcommand again.xattrreports that the attribute does not exist. The file was not quarantined. Ignore the error.cadence versionreportscommand not found./usr/local/binis not on your PATH. Runecho $PATHto check, and add/usr/local/binto your PATH in your shell's startup file.
Platform labels
The label column shows:
| File | Label |
|---|---|
cadence-darwin-arm64 | macOS (Apple silicon) |
cadence-linux-arm64 | Linux (ARM64) |
cadence-darwin-x64 | cadence-darwin-x64 |
cadence-linux-x64 | cadence-linux-x64 |
checksums.txt | Checksums |
The two x64 files are labelled with their own file name. They are the files for
64-bit Intel and AMD machines.
When the page has nothing to offer
On an instance that offers downloads, the page shows one of these messages in place of the install commands and version list:
- "CLI downloads are unavailable right now. Try again in a few minutes." Cadence could not read the published releases. Reload the page later.
- "No CLI release has been published yet." There is nothing to download yet.
Downloading a file
Click a file name to download it. The link goes to
https://cadence.example.com/cli/<version>/<file>, for example
/cli/v1.4.0/cadence-linux-arm64. Cadence redirects that request to a download
link that works for 5 minutes. A binary saves under the name cadence,
whatever platform it is for, so the install commands above work as written.
If a saved download link has expired, go back to the Download CLI page and
click the file again. A version or file name that is not published answers
404 Not Found. The same sign-in and instance conditions apply as for the page.
Over the HTTP API
GET /api/v1/cli_releases returns the same result as cli_releases_get. It
accepts any bearer token the HTTP API accepts (see
Authentication), and it is not tied to a space.
| Query parameter | Required | Meaning |
|---|---|---|
version | No | A published release tag, such as v1.4.0. Leave it out, or leave it empty, for the latest release. |
curl "https://cadence.example.com/api/v1/cli_releases?version=v1.4.0" \
-H "Authorization: Bearer smc_your_token_here"The response body has the fields described under Over MCP. The
links last 15 minutes; request again after expires_at for fresh ones.
Refusals use the standard error body (see HTTP API § Errors):
| Status | code | message |
|---|---|---|
404 | not_configured | This Cadence instance does not offer CLI downloads. |
404 | not_published | No Cadence CLI release has been published yet. when nothing is published, or "v9.9.9" is not a published CLI release for a version that is not published |
503 | unavailable | CLI downloads are unavailable right now; try again later. |
{
"error": {
"code": "not_configured",
"message": "This Cadence instance does not offer CLI downloads."
}
}What to do about each is in When the call is refused.
Choosing the right file
A release has one binary for each of these machines. In assets, os and
arch name the machine each one is for:
| Your machine | uname -s | uname -m | os | arch | File |
|---|---|---|---|---|---|
| Mac with Apple silicon | Darwin | arm64 | darwin | arm64 | cadence-darwin-arm64 |
| Mac with an Intel processor | Darwin | x86_64 | darwin | x64 | cadence-darwin-x64 |
| Linux on ARM64 | Linux | aarch64 or arm64 | linux | arm64 | cadence-linux-arm64 |
| Linux on 64-bit Intel or AMD | Linux | x86_64 | linux | x64 | cadence-linux-x64 |
On a machine where uname -m prints x86_64, take the x64 file. Step 1 of
the install text tells you to map x86_64 to amd64, but no published file
has arch amd64. Pick the x64 asset instead, then follow the remaining
steps.
Checking the file
Before you install a binary, check its SHA-256. Compare it with one of these:
- the
sha256value of its asset incli_releases_getorGET /api/v1/cli_releases; - its line in
checksums.txt. Each line there is a checksum, two spaces, and a published file name, such ascadence-linux-x64. Use the line for the file you downloaded: the file name you clicked on the Download CLI page, orcadence-<os>-<arch>for the asset you fetched. Your copy is saved ascadence, so compare only the checksum, not the name.
Run this in the folder where you saved the file. If you saved it under a name
other than cadence, use that name.
On macOS:
shasum -a 256 cadenceOn Linux:
sha256sum cadenceThe command prints a checksum followed by the file name. If the checksum does not match, delete the file and do not install it.
Checking which version you have
cadence version prints the version of the client you have installed. If
latest from cli_releases_get, or the Latest badge on the Download CLI
page, names a newer version, an update is available. See
Command-line client § Discovering commands.
Updating the client
The client does not update itself. To update it:
-
Find the copy your shell runs:
command -v cadenceIt prints a path, such as
/usr/local/bin/cadence. If you got your current client from whoever operates your instance, it may be somewhere else. -
Download the newer file for your machine and check it, as in Choosing the right file and Checking the file.
-
Run the install commands from In the browser. If the path from step 1 is not
/usr/local/bin/cadence, use that path in place of/usr/local/bin/cadencein themvandxattrcommands, so the new copy replaces the one your shell runs. -
Run
cadence versionand check that it prints the new version.