Repository navigation
Releases
Releases · AntigmaLabs/ante
v0.3.4
v0.3.4 - 2026-11-09
Added
- DeepSeek sessions can use WebSearch through DeepSeek's Search API with the session's existing credential. A
deepseekprovider pointed at a gateway that doesn't forward the search endpoint can turn it off with"supports_web_search": falseincatalog.json
Changed
- Anthropic API, Anthropic subscription and OpenRouter offer Claude Fable 5.2 in place of Fable 5.1, at high effort by default. OpenRouter offers Tencent Hy4 in place of Hy3. Antix drops GPT-5.4 mini and nano. GPT-6 Astra on the OpenAI subscription gets a 500,000-token context window. Explicitly configured models still work
- A model's declared
supported_effortsnow decide the effort level sent on every wire, not only what the picker offers. The lowest level is sent explicitly (noneon the Responses API,MINIMALon Gemini) instead of falling back to the provider's default - Startup notices and the update offer print under the session header instead of above the logo
- The offline engine is pinned to llama.cpp b12182
Fixed
- Switching models within one provider (for example Gemini to Claude on Antix) no longer breaks later turns with an invalid thinking
signatureerror - A configured temperature is sent on the Responses API when reasoning effort is
none - Tool-error, unknown-tool and malformed-call warnings in the log no longer include tool arguments or error output
Crates
- Public crates published as 0.3.4: ante-protocol-shape, ante-llm, ante-exec, ante-sdk
v0.3.3
v0.3.3 - 2026-11-05
Added
ante usagetext output aligns the quota bars- After you sign in to a provider in the browser, the TUI shows an inline signed-in notice
Changed
- Antix serves Grok 4.7, GPT-6.1 Terra and GPT-6 Luna in place of Grok 4.6, GPT-5.6 Terra and GPT-5.6 Luna, and adds Gemini 3.5 Flash Lite, GLM-5.3 FlashX Legal and Qwen 3.8 Flash. Explicitly configured models still work
- The session header gets more compact in narrow terminals
- Ante no longer changes the tmux pane's
allow-passthroughsetting - Published builds send telemetry through the Ante telemetry gateway and no longer embed credentials. Utility commands send no telemetry
Fixed
- Interrupting a turn before any output puts your prompt back in the composer
- A prompt you withdraw no longer stays in the transcript
- A table that is still streaming waits until it is complete before it goes into inline scrollback
- Resuming a long session is fast again: the event-log replay fast path is restored
- Dependency updates
v0.3.2
v0.3.2 - 2026-11-01
Added
ante usagereports Claude Code and Codex subscription quotas without opening a session: percentage used, reset times, and per-account expired/unavailable states. Select one stored account withante usage openai/work, or get structured output with--json(provideris the stable profile id,anthropic/openai). Exits 1 when any selected sign-in is expired or unavailable, after printing the full report- Providers accept an optional
max_request_imagescap incatalog.json. Over the cap, the oldest images in a request are replaced with a text marker; the saved conversation is unchanged. Unset means uncapped, and0sends no images
Changed
- Built-in model lists are trimmed. OpenAI API offers GPT-6 Astra, GPT-6.1 Sol and Terra, and GPT-6 Luna. OpenAI subscription drops GPT-5.6 Sol, Terra and Luna. Antix drops GPT-5.3-Codex, Gemini 3.1 Pro preview, Gemini 3.7 Flash and Grok 4.5. Explicitly configured models still work
- Sonnet 5.5 and Fable 5.1 default to high effort
- The installer shows the download size on its download line
Fixed
- Images and files returned by a tool stay attached to the call that produced them on the OpenAI Responses and Chat Completions APIs
v0.3.1
v0.3.1 - 2026-10-30
Added
ante auth list --jsonprints the stored credentials as one JSON object. Each entry hasreference,kind,name,issuer,account,stateandused_by, and no secret values.referenceis the exact string a session can pin- A session can pin a credential when it starts or resumes, so its first request already uses the chosen account instead of the default
- The TUI reports turn status (running, waiting, done, failed) to the terminal via OSC 7501, including from tmux
- Antix serves Claude Opus 5.5, GPT-6.1 Sol and Kimi K3.1 Pro, replacing Opus 5, GPT-5.6 Sol and Kimi K3
Changed
- The installer adds
anteto your shell's PATH and keeps the existing binary if an update fails - Error messages show home paths as
~
Fixed
--resumehonors--tools,--include-toolsand--exclude-toolsinstead of exposing the full default tool set- GPT-6.1 Sol on Antix keeps all five effort levels instead of falling back to token-budget thinking
- After a partial write (e.g. a full disk), later session events are no longer swallowed on replay, and persistence failures are reported
- Copying a reply that is still streaming no longer keeps the screen's line breaks
- A tool row left running at the end of a turn is now cancelled
- Dependency updates
Wire
SessionRequest.credentialandResumeSession.credential: an optional credential reference to pin from the first request. The start is refused if it is unavailableResumeSession.tools,include_toolsandexclude_tools: optional tool filters for the resumed session. Omitted uses current settings
Crates
- Public crates published as 0.3.1: ante-protocol-shape, ante-llm, ante-exec, ante-sdk
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
v0.2.15
v0.2.15 - 2026-10-23
Added
- Remote MCP servers can authenticate:
urlservers inmcp_serversacceptheaderssent on every request, whose values may reference${NAME}from the environment so secrets stay out of the settings file; a bearer token is a plainAuthorizationheader - OAuth sign-in for remote MCP servers with
ante mcp login <name>/ante mcp logout <name>. It uses dynamic client registration and the server's advertised scopes by default; an optionaloauthblock sets a pre-registeredclient_id/client_secretor explicitscopes. A server that answers 401 names the login command to run - Background jobs view: while jobs run and the composer is empty, ↓ selects the
N bg jobsfooter pill and Enter opens a list of running commands, with status, runtime, the last stdout lines and stderr for each
Changed
- The update notice's "What's new" preview links to https://ante.run/changelog instead of pointing at
CHANGELOG.md - OpenRouter's MiniMax M3.1 Flash preset uses the paid
minimax/minimax-m3.1-flashroute; the free route was retired upstream thinking_budgetset in an OpenAI-compatible provider'sextra_bodyis now sent instead of being dropped as a reserved field- Dependency updates
Fixed
- TLS verification rejects the compromised intermediate keys on rustls-webpki's deny list (0.103.16), including cross-signed certificates
Crates
- Public crates published as 0.2.15: ante-protocol-shape, ante-llm, ante-exec, ante-sdk
v0.2.14
v0.2.14 - 2026-10-21
Added
- Native MiniMax provider: set
MINIMAX_API_KEYto use MiniMax M3.1 Flash directly (1M context, vision,low–maxreasoning,maxby default);MINIMAX_BASE_URLoverrides the endpoint - MiniMax M3.1 Flash in the OpenRouter catalog
Changed
- Offline mode defaults to llama.cpp's port 9931 instead of 8080: managed launches try 9931–9940, and user-started servers are discovered on 9931 and 8080 only (previously 8080–8179). A router already running keeps its recorded port, and a server on any other port can still be attached by endpoint
- A provider
Retry-Afterlonger than 60s ends the turn and shows the wait (Provider asks to retry in 48m.) instead of reconnecting every 60s for about four minutes
Fixed
- Gemini accepts MCP tool schemas it used to reject:
enum/constvalues that are not non-empty strings move into the parameter's description, and requests without a forced tool choice useAUTOinstead ofVALIDATED, so very large schemas are no longer refused - OpenAI-compatible streams that carry both
reasoningandreasoning_contenton one delta, as gateways such as Bifrost send, no longer fail to decode ante offline use --argsrejects malformed values such as--ctx invalidbefore saving, instead of failing at the next load- Bundled TLS trust roots refreshed to webpki 1.0.10, which drops the emSign ECC Root CA - G3;
ante-sdknow requireswebpki-roots1.0.10 or later
Crates
- Public crates published as 0.2.14: ante-protocol-shape, ante-llm, ante-exec, ante-sdk
v0.2.13
v0.2.13 - 2026-10-18
Added
- Jump-to-bottom pill in fullscreen: while the conversation is scrolled up, its last row shows
N new messages (ctrl+l) ↓, orJump to bottom (ctrl+l) ↓when nothing new has arrived; Ctrl+L or a click on that row jumps to the latest output, and sending a prompt or a!commandfollows new output again - Subagents record their own event log under the parent session, at
sessions/<parent>/subagents/<child>/events.jsonl; a subagent is not a resumable session, so/resumedoes not list it, and deleting the parent removes its logs. The parent's Agent tool result names the child's session id - A warning when session history cannot be saved: a failed event-log or snapshot write shows one notice per session with the path and disk-space/permission guidance, and the conversation keeps running
- Gemini 4 Argon on Antix; DeepSeek V4.1 Flash 1017, Reflection Beam 1.0 and Muse Spark Open in the OpenRouter catalog
Changed
- Compaction's fold call gets room for reasoning: its output cap is twice the summary's budget, bounded by the model's declared
max_tokensand the context window, so a model that thinks before summarizing no longer has its summary cut off at the cap - The fold runs at reasoning effort
lowat most (minstaysmin; a model without an effort setting stays without one), since a summary does not need the session's effort - Dependency updates
Fixed
- A Responses API
response.incompletewith reasonlengthis treated as a max-tokens stop: a cut-off compaction summary reportssummary was cut off at N tokensinstead of an opaquefailed to fold dialog, and a normal turn continues as it does aftermax_output_tokens - Interrupting a turn before the model produces any output attaches the
Interruptedrow to the prompt you just sent instead of the previous answer, and Ctrl+C / Esc between send and the turn's start interrupts the coming turn instead of acting as if the session were idle - In fullscreen, a bare click on the conversation (press and release without dragging) no longer stops the view from following new output; a drag selection still holds the view in place
Crates
- Public crates published as 0.2.13: ante-protocol-shape, ante-llm, ante-exec, ante-sdk
v0.2.12
v0.2.12 - 2026-10-15
Added
- Remote MCP servers over Streamable HTTP: an
mcpServersentry takesurlin place ofcommand, with an optionaltransportofstdioorstreamable-http(httpis a synonym). An entry that mixescommandandurl, or names the legacyssetransport, fails that server at warm-up with a message saying what to change./mcpshows the URL, andrageredacts a URL's query string ante offline use <MODEL>takes--context <TOKENS>,--thinking on|off,--temperature <T>|defaultand--args "<llama.cpp options>"to save per-model load preferences; each flag replaces only its own value, they are validated atuse, and every invocation ends with aLoads with:line- Gemini 4 Argon in the native Gemini, Vertex and OpenRouter catalogs, with explicit low/medium/high thinking levels; Muse Wonder in the OpenRouter catalog
Changed
- The
localprovider is derived from the offline runtime state at the moment a model becomes ready, so aStartSessionsent on the ready reply always finds it registered - Headless runs and subagents are told that no one can answer them and the session ends with the turn
- llama.cpp bumped to b11540, picking up the router control-pipe fix and CUDA, Vulkan and Metal correctness fixes
Fixed
- A session that names a provider without a model now gets that provider's default model instead of the global default, which the named provider could not serve
Readrecognizes PNG and other images saved without an image extension (or as.bin) and shows them as images- Sharded GGUF models selected by path or saved default are inspected the same way discovery does, reporting the full set; incomplete sets are rejected at resolution
ante offline stophelp and messages say what it does: it stops the home's router whether or not a session is using it
Wire
McpServerInfo.urladded: the endpoint of a remote MCP server;commandis empty for such a server
Crates
- Public crates published as 0.2.12: ante-protocol-shape, ante-llm, ante-exec, ante-sdk
v0.2.11
v0.2.11 - 2026-10-12
Added
ante offline status,ante offline listandante offline use <MODEL>set up offline mode without the TUI:statusreports the engine, model directory, default model, running servers and memory;listshows local and verified models with size, context and memory fit;usesaves the default model.statusandlisttake--json--offline-model [MODEL]starts the local engine for TUI, headless andservelaunches. It takes a GGUF path, filename, or verified model name or URL; the bare flag starts the saved default. It can't be combined with--modelor--provider
Changed
- If you keep the offline router running when you exit, the next launch reuses it instead of starting a second one;
ante offline statusshows it on aRouter:line andante offline stopends it - The skills list in the prompt is sized to fit the model's context window, and is resized at every compaction, so switching models or adding MCP tools is accounted for
- Every subagent prompt is built the same way, with the shared core instructions and the environment block; the bundled Explore agent now learns its working directory
- Agent prompts base fixes on evidence and the task's scope, and handoffs keep track of pending jobs and unknown outcomes so actions aren't blindly rerun
- Antix serves Claude Sonnet 5.5 in place of Sonnet 5
ante --resumelists the session archive once at startup instead of twice- Dependency updates
Fixed
- Claude Sonnet 5.5 requests that force a tool choice, and Claude Haiku 5.5 requests with a temperature other than 1, now fail before sending with a clear error
- Poolside "input length exceeds" errors are treated as context overflows and recovered by compaction, including when OpenRouter or a proxy wraps them
- Compaction no longer clears long
AskUseranswers before the summarizer sees them