Skip to main content

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.

  • /update schedules that release to install when you exit Ante
  • /update cancel keeps the offer but cancels a scheduled exit install
  • /update skip dismisses 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:

ChannelDescription
stableRecommended for daily use. Tagged releases published from the release workflow.
nightlyBuilt 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:

Beforev0.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 serverRemove 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), --forceante auth login antix; running login again always signs in again

See Credentials and MCP authentication for the new settings.