Repository navigation
v0.3.0
v0.3.0 - 2026-10-28
Opens the 0.3 series with one intentional break: credentials are configured with one reference language, shared by providers, MCP servers and ante auth. Old shapes are refused by name rather than half-read; see "Upgrading from 0.2" below.
Upgrading from 0.2
- Provider
authis nowcredential, ascheme:namereference or a list of them:{"bearer":{"env_key":"X"}}becomes"env:X"; a key sent in a custom header adds"credential_header": "H".http_headersis nowheaders, and{session_id}is now${session_id}. An entry still using the old keys is skipped with a warning naming the replacement (ante catalog,ante doctor) - A custom provider that had no
auth(a local server) now fails with "No credential for ": add"credential": null - The
modelssection ofcatalog.jsonis removed; patch a model underproviders.<id>.preferred_modelsinstead. A non-empty section is refused at load - MCP servers: the
oauthblock is retired; useante auth login <server>or anAuthorizationentry inheaders.ante mcp login/logoutare replaced byante auth login/logout - The
antix-api-keyprovider is folded intoantix, which takes a sign-in,ANTIX_API_KEY, or a stored key; a savedantix-api-keyselection falls back to auto-detect - Stored sign-ins and
auth/api_keys.jsonmove toauth/credentials/automatically on first run
Added
ante auth list|login|logout|add|rmmanages every stored credential: OAuth sign-ins, API keys, and helper output.listshows each credential's state and the connectors that use it- Credential references:
env:NAME,secret:NAME(stored withante auth add),oauth:PROFILE[/label]for one of several accounts, andhelper:NAME, which runs a command from the newhelperssection ofcatalog.jsonand caches its output forttl_secs. A list is tried in order;nullsends nothing oauth_profilesincatalog.jsondefines additional OAuth sign-in profiles beside the built-in Anthropic, OpenAI and Antix ones- Provider
headersvalues andextra_bodystrings take${NAME},${NAME:-default}and${session_id}; anullheader removes a built-in one - Agents panel: while a turn runs subagents, a panel under the footer lists each with its type, elapsed time and tokens; select a row and press Enter to follow its transcript live
/usagelists every saved Claude and Codex account, each with its own quota- GPT-6.1 Sol, GPT-6.1 Terra and GPT-6 Luna in the OpenAI subscription provider (Luna is the default for auxiliary calls); GPT-6.1 Terra and Terra Pro in the OpenAI and OpenRouter catalogs; Kimi K3.1 Pro on OpenRouter
Changed
/providersis one place for choosing a provider, model and credential, signing in, entering keys, and removing accounts; onboarding and sign-in recovery use the same view, and/connectremains as an alias. Each row shows where its credential comes from; ←/→ previews another credential of the same provider- Antix leads the provider list and is the default when nothing is configured; explicit and saved choices still win, and existing credentials for other providers are detected when Antix is unavailable. Default order: Antix, DeepSeek, OpenAI Subscription, Anthropic Subscription
- OpenRouter: Kimi K3 and MiniMax M3 are pruned in favor of K3.1 Pro and M3.1 Flash, and the DeepSeek V4.1 Flash October 17 snapshot becomes the default
- Commands such as
ante authandante updateexit promptly; telemetry gets at most 250 ms at shutdown
Fixed
- Headless
ante --resume <id> --provider <p> --model <m>uses the given provider and model instead of dropping them, so a session saved on a provider that is no longer connected can be resumed - An invalid environment value read by a built-in sign-in profile (e.g.
ANTIX_BASE_URL=not-a-url) is a catalog warning instead of crashing every command - OAuth sign-ins send the redirect URI where the local callback server actually listens
Wire
SessionInfo.provider.credentialandSessionUpdate.credential: an optional credential reference (e.g.oauth:openai/work), never a token. Omitted means the configured precedence
Crates
- Public crates published as 0.3.0: ante-protocol-shape, ante-llm, ante-exec, ante-sdk