Update & Channels
Ante ships as a single binary and updates itself in place — the same install.sh script that performs the first install is re-run by ante update against the channel this binary tracks.
This guide targets v0.3.2 (November 1, 2026). Check your installed version with ante --version.
Update
Check for a newer Ante release on your current channel and install it if one is available:
ante update
If a newer version exists, Ante runs the installer for the same channel and prints the new version once it is in place. Restart Ante to start using it.
The installer shows the download size when the release manifest provides it and verifies the replacement binary before swapping it into place. A failed download or verification leaves the existing binary intact.
If you are already on the latest version, Ante prints a confirmation and exits without touching the binary.
Update from the TUI
When a newer release is available, the running TUI adds an in-chat notice with a preview of its release notes. It never blocks startup with a modal.
/updateschedules that release to install when you exit Ante/update cancelkeeps the offer but cancels a scheduled exit install/update skipdismisses that version permanently; a later version can still be offered
The install choice is scoped to the running session. Ante applies an accepted update after restoring the terminal on exit, then the next launch uses the new binary.
Pin or roll back
Install an exact release with --version:
ante update --version v0.3.2
ante update --version 0.3.2
This bypasses the channel's "newer than current" check, so it can upgrade, reinstall the current version, or roll back to an older published release. When rolling back, Ante remembers the version you left so the next background update notice does not immediately offer to reinstall it.
Channels
A release channel is a named track of builds. Ante publishes two:
| Channel | Description |
|---|---|
stable | Recommended for daily use. Tagged releases published from the release workflow. |
nightly | Built from the development branch. New features and bugs land here first. |
The default channel is stable. The channel a binary tracks is stored in the selected settings file under the channel field. ante update reads ~/.ante/settings.json unless you select an existing named profile with the process-wide --profile flag; the TUI uses the same selected profile for its in-app update notices.
{
"channel": "nightly"
}
Setting channel to an empty string or omitting it falls back to stable.
latest is a retired channel name. Existing settings or commands that still use latest are treated as stable.
Switching channels
Pass a channel as a positional argument or as --channel:
# Positional form
ante update nightly
# Flag form
ante update --channel nightly
# Use the channel from ~/.ante/work.settings.json
ante --profile work update
Both forms fetch the manifest for the requested channel and run the installer against it. The override applies to that single update — to make the switch persistent, set "channel": "nightly" in the settings file that future runs will use (~/.ante/settings.json by default, or the selected profile file).
Channel names may only contain ASCII letters, numbers, ., _, or -.
Initial install
The installer accepts the same channel names. To install a non-default channel from a fresh machine:
curl -fsSL https://ante.run/install.sh | bash -s -- nightly
Without an argument, the installer uses stable.
By default the installer writes the binary to ~/.ante/bin. Set ANTE_INSTALL_DIR to install into a directory that is already on your PATH:
curl -fsSL https://ante.run/install.sh | ANTE_INSTALL_DIR=/usr/local/bin bash
The installer configures PATH for supported shells (Bash, Zsh, Fish, sh, and ash). Open a new terminal to use ante, or run the full path printed by the installer in your current terminal. It also adds the install directory to GITHUB_PATH in GitHub Actions for later steps.
To manage PATH yourself and leave shell startup files and GITHUB_PATH unchanged:
curl -fsSL https://ante.run/install.sh | NO_MODIFY_PATH=true bash
How update checks work
On launch and during long-running sessions, Ante consults the update cache in the background. Network checks against the channel manifest are shared across running Ante processes and happen at most once per hour; the result and release notes are cached in ~/.ante/versions.json. When a newer version is available, the TUI adds the in-chat notice described above. ante update ignores the cache and always fetches the manifest fresh.
Upgrading to v0.3
v0.3.0 changes how credentials are configured in ~/.ante/catalog.json and for MCP servers in ~/.ante/settings.json. Old settings aren't converted. A catalog entry written the old way is skipped at startup with a message naming its replacement (ante doctor lists them), and an MCP server with the old oauth block fails to connect, saying what to do.
Easiest path: run ante and ask it to do the migration, for example "update my catalog.json and settings.json for v0.3". Ante's built-in guide knows these changes and rewrites the files for you.
Stored API keys and sign-ins carry over on their own. MCP server sign-ins don't: run ante auth login <server> once for each.
To migrate by hand:
| Before | v0.3 |
|---|---|
"auth": { "bearer": { "env_key": "MY_KEY" } } | "credential": "env:MY_KEY" |
"auth": { "header": { "name": "x-api-key", "env_key": "MY_KEY" } } | "credential": "env:MY_KEY", "credential_header": "x-api-key" |
"auth": { "bearer": { "oauth_preset": "anthropic" } } | "credential": "oauth:anthropic" |
"auth": { "query": { … } } | No longer supported |
"auth": null, or no auth on a provider that needs no key | "credential": null (omitting credential now reads a key stored with ante auth add <provider>) |
"http_headers": { … } | "headers": { … } |
"{session_id}" in a header | "${session_id}" |
Top-level "models": { "<id>": { … } } | "providers": { "<provider>": { "preferred_models": [{ "id": "<id>", … }] } } |
--provider antix-api-key | --provider antix (it reads ANTIX_API_KEY too) |
"oauth": { … } on an MCP server | Remove it and run ante auth login <server> |
ante mcp login <server> / ante mcp logout <server> | ante auth login <server> / ante auth logout <server> |
ante auth login (Antix by default), --force | ante auth login antix; running login again always signs in again |
See Credentials and MCP authentication for the new settings.