Release notes
Each release lists what changed, newest first. After an update, the first interactive start shows the notes for every release since the one you ran before. Run /changelog to read them again, or /changelog all for every release. ui.changelog_on_update turns the automatic view off.
To install Caudra, follow the Quick Start. To update, run caudra update. Each release links to its GitHub page, which holds the downloads.
Caudra 0.2 Preview 9
Section titled “Caudra 0.2 Preview 9”Preview 9 lets the model call your MCP servers from Python, so a server with a hundred tools costs a short list instead of a hundred definitions, results are filtered before the model reads them, and MCP servers never break the prompt cache. It also adds Gemini 4 Argon as the Google default, along with Gemini 3.8 Flash, 3.6 Flash, and 3.5 Flash-Lite, brings Argon and 3.8 Flash to Copilot, adds Grok 4.7, GLM-5.3, DeepSeek V4.1 Flash, and Mistral Large 4, drops the Claude, Codex, and Copilot models their providers retired, bills announced price changes from their dates, fixes Google requests, which all failed on Caudra's tool definitions, fixes updates on macOS that sat for minutes on the download line, lets update checks use your GitHub token, shows download progress while Caudra updates, opens /model on your favorite models, lets Home and End jump to the ends of a picker's list, lets the agent ask questions without waiting for the answer and lets you answer a question later, runs a task on the favorite model you name, lets autopilot run without a continuation limit, fixes autopilot never answering the agent's questions, keeps a log of what autopilot did and what happened next, keeps a log of every goal check, fixes goal checks that failed every time after you interrupted the agent while it was thinking, lets /btw answer when the model reaches for a tool, applies a mode or model switch as soon as nothing is running, adds /worktree close, which brings a worktree's commits and changes back to the main checkout before it goes, resumes every session in a tab of its own when you leave a worktree's Herdr or Orca workspace, and breaks /usage down by purpose for the session as well as for all time.
Important
Close every other Caudra session before you start Preview 9. On its first start, Preview 9 upgrades the session database in your state directory, and the upgrade needs exclusive access. This includes other terminals, editor sessions over ACP, and
caudra storagecommands. While any of them still has the database open, Preview 9 does not start. It lists the open sessions to close instead, and nothing is changed.The upgrade keeps your sessions and saves a copy of the database from before it as
caudra.db.v25.baknext tocaudra.db. Preview 8 and earlier cannot open the upgraded database, andcaudra rollbackrestores only the previous binary, not the database.
Warning
Before you start Preview 9, delete
defer_toolsandalways_loadfrommcp.toml. Both tuned tool search for MCP tools, which code mode replaces. A global or projectmcp.tomlthat still sets either fails to load: Caudra starts without that file's servers, and/mcpshows an error that names the key.
- Complex numbers in Python. The Python runtime is now Monty 1.1.0. Python calculations, MCP snippets, and Lua interpreter calls support complex literals and
complex(). Complex results use a string representation where JSON cannot preserve their type. - Code mode. The model now reaches your MCP servers by writing Python in one
mcptool, instead of receiving a definition for every tool. A snippet can call several tools at once and filter or join their results before the model reads anything, so a list of 500 issues can come back as three lines. The model learns your servers and their tools from a short list in the conversation, andsearch()finds the tools the list leaves out. See Code mode. - MCP servers keep the prompt cache. The tool definitions stay the same while a server connects, fails, or changes its tools, and when you switch to plan mode, so none of these makes the provider read the whole conversation again at full price. See The prompt cache.
- Approvals work as before. Each tool call in a snippet asks on its own, and permission rules,
agent.disabled_tools, and profiles still name a toolserver.tool. A call you decline raises an error the snippet can catch. Plan mode and read-only agents still allow only the read-only tools of recognised servers. See MCP tool calls. mcp_resourceis gone. The model reads a server's resources withresources()andread_resource()inmcp. Reads still ask first, and reads you allowed formcp_resourceask once more. See Resources.- Servers with a code mode of their own. Add
?codemode=falseto the URL of Cloudflare's MCP server, or?mode=passthroughto Executor's, so the model calls their plain tools rather than writing code for their code tool. See Servers with a code mode of their own. - Earlier sessions resume. A conversation from Preview 8 or earlier picks up as before. When the model calls an MCP tool by its old
server__toolname, the error tells it to usemcp. /toolsandcaudra tools. An MCP tool showsvia mcp, orsearch-onlywhen a profile makes itlazy, instead of a token cost.tool_searchnow loads only built-in tools./mcpshows how the model reaches each server. A server's row gives the name the model calls it by inmcpand how many of its tools a profile leaves search-only. An Executor server whose URL lacks?elicitation_mode=nativeor?mode=passthroughsays what each one changes.- A missing code worker is reported up front. When MCP servers are configured but Caudra has no code worker to run snippets on, the TUI says so as it starts and
/mcpshows it above the server list, rather than waiting for the model's firstmcpcall to fail. See Where snippets run. /toolscounts every server call. Its recorded views give each call a snippet makes a row namedserver.tool, with its calls, errors, and time, alongside themcprun that made it. See What the tools cost.- Snippets are checked before they run. A misspelt tool or an argument of the wrong type stops a snippet before any server call, naming the closest tool and the line, in the agent's later runs as well as its first. A tool takes one dict of arguments as well as keywords. A snippet that is not valid Python says why, such as
returnoutside a function or JavaScript instead of Python. See Results and errors. - Slips with one meaning are fixed before a snippet runs. A standard module the snippet uses without importing it, such as
asyncioforasyncio.gather, is imported.awaitbeforesearch()orservers()is dropped,returnon the snippet's last line is dropped, and a Markdown fence around the whole snippet is removed.asyncio.gather(..., return_exceptions=True)now runs, settling each failed call as its exception. Errors still name the line the model wrote, the card lists each fix, and the model reads what it did wrong in the result. See Results and errors. - Snippets run in their own process. An
mcpsnippet runs in a separate worker process with no filesystem, network, subprocess, or environment access, rather than inside Caudra. It reaches only the MCP calls Caudra answers, each permission-checked, and a crash ends only the worker. See Where snippets run. - File revert records an
mcprun from its first call that may change files. A run that calls no server, or only tools a recognised server marks read-only, leaves no record. See Recording.
Models
Section titled “Models”- Gemini 4 Argon.
google/gemini-4-argonis the Google Best model and the model Caudra picks when you use Google without choosing one, in place ofgemini-2.5-pro. It costs $2 per million input tokens and $10 per million output tokens, with cache reads at $0.10, until November 30, 2026. Thinking takeslow,medium, andhigh, and thinkingoffruns atlow, because Argon always thinks. Argon is not on Google's free tier, so it needs a key on a project with billing enabled. On the free tier, pickgoogle/gemini-3.8-flash. When Google gives a key no quota for a model at all, Caudra now says so at once instead of retrying for two and a half minutes. Caudra asks for at most 65,536 output tokens, the most one streaming request returns. If you raisemax_output_tokenspast that, an answer Gemini stops at the cap is now reported as cut off instead of complete. See Google. - Gemini 3.8 Flash and 3.6 Flash. Both cost $0.75 per million input tokens and $3.75 per million output tokens until December 31, 2026. 3.8 Flash takes thinking levels from
lowtohigh, and 3.6 Flash fromminimaltohigh. - Gemini 3.5 Flash-Lite is the Google Fast model. It replaces
gemini-2.0-flash-lite, which Google shut down, so session titles, completion-goal checks, and other Fast work on a Google session run on it unless you bound those jobs to a model. Thinkingoffruns atminimal. - Gemini 2.5 Pro and 2.5 Flash leave Caudra's model table. Google stopped serving them to new API keys and points to
gemini-3.8-flashinstead. A key that still has them can use them, but Caudra no longer shows their cost. - Gemini price changes on their dates. Argon moves to $4 and $20 per million input and output tokens on December 1, 2026, and 3.8 Flash and 3.6 Flash move to $1.50 and $7.50 on January 1, 2027. Caudra counts each turn at the price in force when it ends, from 00:00 UTC on those days, without an update. The providers page lists both prices with the date.
- Gemini on Copilot. Copilot and Copilot Enterprise add
gemini-3.8-flashandgemini-4-argon, at GitHub's introductory prices, and dropgemini-3.5-flash,gemini-3.6-flash, andgemini-3.1-pro-preview, which GitHub no longer serves. - Google models answer again. Every request to a Google model failed with
Invalid JSON payload received. Unknown name "$schema", because Caudra's tool definitions name the JSON Schema version they follow, and the field Caudra sent them in refuses it. Caudra now sends tool definitions in the field that takes standard JSON Schema, so tool definitions that use$ref,oneOf, orconstwork with Google too. It rewrites the few shapes Gemini still refuses, such as arequiredlist that names an undeclared property. - Gemini 3 and 4 accept tool calls from another model. Google refuses a request when a tool call in the current turn carries no thought signature, which happened after you switched to Gemini 3 or 4 in the middle of a turn. Caudra now marks such a call the way Google documents, and keeps every signature Gemini issued. Aliases without a version, such as
gemini-flash-latest, count as current models. - Claude Sonnet 4.6 answers at full length. Caudra now lets
anthropic/claude-sonnet-4-6write up to 128,000 output tokens, the limit Anthropic documents, instead of 64,000. - Retired Claude models leave the model table. Anthropic retired Claude Sonnet 4 and Claude Opus 4 on June 15, 2026, and Claude Opus 4.1 on August 5, 2026, so Caudra drops
claude-sonnet-4,claude-opus-4-0, andclaude-opus-4-1from its model table. Useclaude-sonnet-5-5orclaude-opus-4-8instead, as Anthropic recommends. - Retired Codex models leave the model table. OpenAI shut down
gpt-5.1-codex,gpt-5.1-codex-max,gpt-5.1-codex-mini, andgpt-5.2-codexon July 23, 2026, so Caudra drops them too. Useopenai/gpt-5.6-sol, orgpt-5.6-terrain place ofgpt-5.1-codex-mini. - Grok 4.7.
xai/grok-4.7is the xAI default, in place ofgrok-4.6, and the model Caudra picks when you use xAI without choosing one. It costs $2 per million input tokens and $6 per million output tokens, with cache reads at $0.50. Once a prompt reaches 200,000 tokens, every rate doubles for the whole request, as xAI bills it. Thinking takeslowtoxhigh. - Grok 4.7's long-prompt rate starts at the right token. Caudra's cost tracking bills
xai/grok-4.7at the long-context rate from a prompt of exactly 200,000 tokens, the boundary on xAI's model page, and Caudra's check of its model list against models.dev no longer reports that boundary as a mismatch. - Copilot follows GitHub's model list. Copilot and Copilot Enterprise add
grok-4.7, at $2 per million input tokens and $6 per million output tokens. They dropkimi-k2.7-code,mai-code-1-flash-picker,claude-opus-4.7,claude-opus-4.6,claude-opus-4.5, andclaude-sonnet-4.5, which GitHub retired.claude-sonnet-4.6stays, because GitHub still serves it on annual Copilot Pro and Pro+ plans. - Mistral Large 4 and GLM 5.3 on Mistral.
mistral/mistral-large-4, in public preview, costs $0.68 per million input tokens and $2.09 per million output tokens at its launch price, and $1.36 and $4.18 from October 20, 2026, when Caudra switches on its own.mistral/glm-5-3replacesglm-5-2at the same price. Mistral retires GLM 5.2 on October 31, 2026. - DeepSeek V4.1 Flash.
deepseek/deepseek-flashis the model Caudra picks when you use DeepSeek without choosing one, in place ofdeepseek-v4-flash, which DeepSeek retired and now serves with V4.1 Flash. It reads images and costs $0.15 per million input tokens and $0.60 per million output tokens off-peak, twice that at peak hours. Caudra billsdeepseek-v4-flashat the same price, and sends V4.1 Flash the empty reasoning it needs on earlier turns so that thinking requests are not refused. - GLM-5.3 on Z.AI.
zai/glm-5.3, Z.AI's new flagship, is the Z.AI Best model and the model Caudra picks on the pay-as-you-go plan when you don't choose one, in place ofglm-5.1. It costs $1.40 per million input tokens and $4.40 per million output tokens, takes a 1M-token context, and always thinks. The Coding plan keepsglm-5-code.glm-5.3-flashandglm-5.3-flashxjoin as small models that read images. Caudra now billsglm-5.2andglm-5.1at Z.AI's current $1.40 and $4.40, up from $1 and $3.20. - No Google sign-in. A Google AI Pro or Ultra plan covers AI Studio in the browser, and Google bills API use separately. Google's terms forbid third-party tools from using the sign-in of Gemini CLI or Antigravity, so Caudra uses an API key for Google. The providers page now says so.
- Forks keep their permission mode. A fork now inherits the parent's current Ask, Auto, or YOLO mode, including when it opens in another terminal tab or moves to a new worktree. Conversation-specific approval rules still start empty.
- Switching mode or model applies once the session settles. A
Tabtoggle, and the model it brings back, waited for your next message even with nothing running, so the status bar kept its[BUILD→PLAN]arrow after/compact, and/context,/btw, and tasks you started still used the old mode and model. The switch now takes effect as soon as nothing runs and nothing waits to report. While work runs, it still waits for that work to finish or your next message. See Selecting Plan while work runs.
Worktrees
Section titled “Worktrees”/worktree closebrings the work back. Closing a worktree is the reverse of creating one. It fast-forwards the main checkout's branch to the worktree's commit, moves the worktree's sessions back, carries its uncommitted changes into the main checkout, and removes it, keeping the branch. The removal confirmation, which/worktree close,/worktree remove, andCtrl+Din/worktreeopen, offers it first and says what it brings back, or why it cannot: when the main checkout has commits of its own, or changes that would mix with the worktree's. If the changes still do not apply, they stay in the worktree and the worktree is kept. See Closing a worktree.- Every tab comes along when you leave a worktree's workspace. Closing or removing a worktree from its own Herdr workspace or Orca terminal resumed only the focused session, in a pane split beside the repository's. Every session open in Caudra now continues in a tab of its own in the repository's workspace, labelled with its title, and the focused one keeps the focus. See Removing a worktree.
- Removal checks first. A pending revert or an active workflow of a session in the worktree stopped its removal only after its changes had been stashed. Removing and closing now refuse before they stash, merge, or remove anything, as creating a worktree does.
Pickers and lists
Section titled “Pickers and lists”/modelopens on your favorites. With favorite models,/modelandCtrl+X mput the cursor on the current model's favorite row, or on the first favorite, instead of on the Chat job, so you no longer move past every job row first. Without favorites, the picker opens on Chat as before. See Model jobs.HomeandEndreach the ends of a list. In/model,/sessions, and every other picker,HomeandEndjump to the first and last row while the filter is empty. Once you type a filter they move the text cursor again, andCtrl+HomeandCtrl+Endstill jump to the ends. In the workflow and automation inspectors,PageUp,PageDown,Home, andEndnow move the run or automation list while it has the focus, instead of scrolling the detail beside it. See Pickers.
- Spend by purpose for the session.
/usagenow shows a Per purpose table for the current session too, beside Per model: what went to the conversation and what to titles, goal checks, compaction, memory summaries, and Caudra's other work. A session counts purposes for turns from Preview 9 on. See Commands. - Purposes show in full. The lifetime view cut Per purpose off after 8 rows, so a ninth purpose hid behind
... and 1 more. Purposes now always show whole, and no list hides a single row behind a line of its own. - Long lists open in place. In the lifetime view, click
... and N moreunder providers, models, projects, or months to show the rest, andshow lessto fold it again. Presseto open or close every list at once. See Lifetime spend.
Questions
Section titled “Questions”- Questions that don't stop the agent. The agent can ask a question that it doesn't need answered for its next steps, such as a preference or a name, and keep working. The form docks as usual. Press
Escto put it aside: it waits in a[? N]chip in the footer that counts unanswered questions, andCtrl+X u, for unanswered, or a click on the chip brings it back with what you had picked. Your answer reaches the agent when you give it, even after the agent has finished its turn, and the oldest open question docks again when the agent goes idle. Up to three can be open at once,F4moves to the next, and/taskslists them as waiting for your answer. Turn this off withdeferred_questions = falseunder[agent]. See Deferred questions. - Answer later. On a question the main agent waits on,
F4puts it off: the agent gets a receipt instead of an answer and carries on, and the form waits off the dock with your picks until you answer it.Ctrl+Con any question still stops the run, and stopping the run withdraws its open questions.
- Tasks run on the favorite you name. When you ask for a model by a short name, as in "ask sonnet to review this", the task now runs on your favorite model that matches the name, even when a newer model or another provider matches too. While the main agent can choose a task's model, it is also told your favorites with their lane, the jobs you bound to them, and the thinking levels they take, and hears again when you star or unstar one. See Models and reasoning.
Autopilot
Section titled “Autopilot”- No continuation limit.
max_continuations = 0under[autopilot]lets an engagement run until its goal ends, its cost or time limit runs out, or you stop it, so a session that an automation keeps busy every day can stay on autopilot. The footer chip then shows the count without a limit, and SDK clients readmax_continuationsasnull. See Budgets. - An audit log of what autopilot did. The status panel gains a Log tab, which
/autopilot logopens at any time, engaged or not. It lists every decision of the session under its engagement, with what the delegate was asked, such as the exact command of a permission request, what autopilot said, its reason, the model and cost, and what happened next: whether the action applied, you answered first, you took the card, or you answered after autopilot left it to you. Pressfto filter,yto copy an entry, and Enter to jump to its row in the transcript. Click a decision row in the transcript to see what autopilot said and what happened next, and the start and end of each engagement come back when you resume. Before, the panel showed only the last 20 decisions of the running engagement in one line each, and a decision row kept only the action's name. Decisions made before Preview 9 keep their one-line record. SDK clients read the log with the newautopilot_logcontrol, anddecided,engaged, andendedevents carry the new fields. See The log. - Autopilot answers the agent's questions. While engaged, autopilot never answered a
questionform from the main agent, or a server's form during one of its tool calls, so they always waited for you. It now answers them, as Preview 8 described. - The delegate sees your overrides. When you answered a decision differently from autopilot, the delegate's next decisions see your answer, so it can follow your lead.
- A log of every goal check. The
/goalpanel gains a Log tab, which/goal logopens. It lists every goal of the session and every check of it, with when it ran, how long it took, its status, the evaluator model, its cost, and its reason. Besides met, not met, and impossible, a check can read as reconsidered when a second opinion overruled an impossible verdict, failed, skipped by the goal prescreen, deferred, or stale when the goal changed while it ran. Pressfto filter,yto copy an entry, and Enter to jump to its row in the transcript. Before, the panel showed only the latest verdict, and the transcript rows of a goal's checks were gone after a resume. They now come back. SDK clients read the log with the newgoal_logcontrol, and goal events carry each check'sseq, goal number, and times, with a newskippedevent. See The goal log. - Goal checks survive an interrupted reply. After you interrupted the agent while it was thinking, every later goal check on a Claude model failed with
thinking.signature: Field required, and the goal could never be met. Checks now judge the conversation's messages and tool results without the agent's reasoning, which also keeps it away from an evaluator on another model or provider and leaves more of the check's budget for evidence. A goal whose checks were failing is checked normally again once you update.
Side questions
Section titled “Side questions”/btwanswers when the model reaches for a tool. A model that tried to call a tool in/btwused to stop withStopped: the model tried to call a tool, often before it had said anything. Caudra now tells it that tools are unavailable and asks again, so it answers from the conversation and says what it could not confirm. It stops only if the model keeps calling tools after two reminders. See Commands.
Command line
Section titled “Command line”- Updates on macOS no longer stall. Updating a Mac that still had the large license bundle from Preview 1 stayed on
downloading caudra …for about four minutes. The installer checks the previous bundle before replacing it, and its JSON reader grew slower with every character of that bundle's 2 MB manifest under theawkthat ships with macOS. It now reads the manifest in under a second, and a fresh install reads the GitHub release list faster too. - Updates use your GitHub token.
caudra updateand the update notice now sendGITHUB_TOKEN, orGH_TOKEN, when they ask GitHub for releases, the same as the installer. Behind a shared IP that had used up GitHub's unauthenticated quota, they failed withserver returned HTTP 403. Without a token, that refusal now says to set one, incaudra updateand in both installers. - Download progress. The shell installer shows curl's progress bar for the release archive when it runs in a terminal, so updating to Preview 9 shows it already. From Preview 9 on,
caudra updatedownloads the archive itself and shows a bar with size, speed, and time left. It checks the archive against the release checksums before it saves your current version, and if the download fails, the installer downloads the archive instead.
Caudra 0.2 Preview 8
Section titled “Caudra 0.2 Preview 8”Preview 8 adds Claude Haiku 5.5 as the Anthropic Fast model, lets the experimental decision engine rerank memory notes, tool search, retained tool output, and code context, shows in the transcript what each decision feature changed, gives workflows a rerank() function, runs a task on the model you name, adds favorite models to /model and keeps 10 recent ones, opens forks in a new Herdr or Orca tab, names tabs after the session, lets new sessions open in build mode, lets you delete the current session from /sessions, makes the wheel scroll lists instead of moving their selection, stops pending reverts in a destination directory from blocking session moves, rings the bell in Orca when a turn ends in a tab you are not looking at, and has caudra update install without printing its installer first.
Important
Close every other Caudra session before you start Preview 8. On its first start, Preview 8 upgrades the session database in your state directory, and the upgrade needs exclusive access. This includes other terminals, editor sessions over ACP, and
caudra storagecommands. While any of them still has the database open, Preview 8 does not start. It lists the open sessions to close instead, and nothing is changed.The upgrade keeps your sessions and saves a copy of the database from before it as
caudra.db.v24.baknext tocaudra.db. Preview 7 and earlier cannot open the upgraded database, andcaudra rollbackrestores only the previous binary, not the database.
Note
If you raised
decisions.timeout_msfor a slow decision engine and usetool_search, setrerank_timeout_msas well. Tool search now uses that deadline, which defaults to 2 seconds.
Models
Section titled “Models”- Claude Haiku 5.5.
anthropic/claude-haiku-5-5costs $0.10 per million input tokens and $0.50 per million output tokens, with cache reads at $0.01. Once a prompt passes 100k tokens, cached tokens included, Anthropic bills the whole request at five times those rates, and Caudra counts its cost the same way. Caudra runs it at the 372k working window of other recent Claude models, andclaude-haiku-5-5-1mopens the full 1M window. Thinking takes effort levels fromlowtomax, and thinkingoffturns its reasoning off. Copilot and Copilot Enterprise list it asclaude-haiku-5.5. There, as with Copilot's other Claude models,offruns at the lowest level. See Anthropic. - Haiku 5.5 is the Anthropic Fast model. It replaces
claude-haiku-4-5as the curated Fast model, so on an Anthropic session, session titles, completion-goal checks, and other Fast work run on it unless you bound those jobs to a model. Bind Fast toanthropic/claude-haiku-4-5in/modelto keep the older model. See Model jobs. - Sonnet 5.5 cache reads cost less. Anthropic halved the cache read price of Claude Sonnet 5.5 to $0.10 per million tokens, and Copilot bills the same. Caudra now counts
claude-sonnet-5-5andcopilot/claude-sonnet-5.5at the new price.
Model picker
Section titled “Model picker”- Favorite models. In
/model, pressCtrl+Fon a model to mark it as a favorite, and again to unmark it. Favorites are listed first, above Recent, and are kept across sessions./favorite-nextorCtrl+X cswitches to your next favorite. See Model jobs. - Recent keeps 10 models. The Recent section now lists the last 10 models you switched to instead of 4, and leaves out your favorites.
- Marks on every model row. A model keeps its row in its provider's section, where a
★marks a favorite and a↺a recent model, so you can see either one while you search.
Decision engine
Section titled “Decision engine”- Reranking features. Six new experimental decision features use the engine as a reranker, and each is off by default.
memory_searchshows the memory search matches the engine judges relevant, best first, and names the ones it left out.memory_recallreminds the agent of up to three notes that may matter for your new message.memory_duplicatespoints out an existing note when a new one may repeat it.compaction_retentionkeeps the tool results that matter to the current goal, todos, and request when a session compacts, instead of only the newest three.output_pointersadds up to two lines to a truncated tool result that point at the omitted lines most likely to matter, with thetool_outputcall that reads them.code_contextmoves the most relevant rows of acode_contextresult to the top. Each asks one true or false question per candidate, up to 16 per request, with redacted and bounded candidate text. When the engine fails or times out, each behaves as if it were off. A newrerank_timeout_msdeadline (2 seconds) andthresholds.relevance_floor(0.1) apply to them. See Reranking. - Tool search judges each candidate. With
tool_searchenforced, the engine now scores each of the first 16 keyword matches instead of picking one from the whole list. It reorders them and never drops one. On the local evaluation set it got one more query right than the single pick, with no new wrong answers, at about 130 ms more per search. - Workflows can rerank.
rerank(query, candidates)andrerank(query, candidates, opts)return#{ index, score }entries, most relevant first. Options aremodel,timeout_ms,threshold, andtop_k. Each batch of 16 candidates is one journaled decision, so a resumed run asks only for the rest. Adecide()orrerank()timeout may now reach the larger oftimeout_msandrerank_timeout_ms. See Reranking candidates. - Decision rows in the transcript. When a decision feature changes what happens, the transcript shows one row that names the feature and what it did, such as
code_context · moved 3 of 12 rows up, placed after the tool call or at the turn it affected. A row also appears when the engine fails and the default applies, once per feature until the engine answers again, and a dimshadowrow shows what a feature in shadow mode would have done. Click a row to see the candidates and scores behind it. The rows are saved with the session and return in place when you reopen it. The model never sees them, and[ui] show_decisions = falsehides them. See Decision rows. - Workflow decisions are labelled. In
/workflow, adecide()call now reads likedecide: ready, routeand arerank()batch likererank: 17 candidates · batch 2 of 2, instead of a bare call number. Labels hold only question IDs and counts, never the state or candidates. - Shell duration estimates read plainly. With
shell_durationset toadviseorenforce, a shell card's header read likeETA 1–1s (engine prior; 0 samples). It now shows an estimate only for a command expected to take more than a second, in the same units as the timeout beside it, such asETA 10s–2m, and leaves out where the estimate came from. Decision rows still name the source, without a count for an engine estimate.
- Run a task on a model you name. Ask for a model, as in "ask opus and sol to review this change", and the main agent starts the task on it, with one task per model when you name several. The
tasktool takes amodel, either an exactprovider/modelname or a short name such asopusorgpt-6.1-solthat resolves to the newest match you can use, soopuspicksclaude-opus-5-5, and athinkinglevel fromofftomax. Both win over a profile'ssubagent_modelandsubagent_thinking, and every result reports the model and level the task ran on. A name that fits several models fails and lists them.[agent] task_model_choice = falseturns this off. See Models and reasoning.
- The current MCP protocol. Caudra now speaks MCP
2026-07-28and still speaks the older protocol that starts withinitialize, so servers built on either work. It asks each server which versions it supports when it connects. See Protocol versions. - Servers can ask you questions. A server can ask for input during a tool call, with a form of typed fields or a link to open, such as a sign-in page. The question form shows it with the server's name, checks each answer against the server's limits, and lets you review before sending.
F3declines andEsccancels. A link opens in your browser only after you agree, and the form warns about lookalike characters in its host. ACP clients that support MCP elicitation get the question, and print and SDK sessions tell the server they cannot ask. While autopilot is engaged, it may answer a form from the main agent's call, but never a link, a form from Executor, or a form asking for a credential. See Server questions. - Long calls report progress. A server's progress shows beside the card's label, and each report restarts the
timeoutwait, up to ten timestimeout. Stopping the run tells the server the call was cancelled. A dropped connection resends only requests that are safe to repeat. Other tool calls fail withconnection lost; the call's outcome is unknown. See Long calls. - Tool lists stay current. When a server announces that its tools, prompts, or resources changed, Caudra lists them again, and the model sees the change on its next request. Long lists are read page by page.
- Resources and completions. Mention a server's resource as
@server:uri, and Caudra reads it when you send the message and adds it the way it adds a mentioned file. Typing@lists the resources and templates of running servers beside your files, and a server that offers completions suggests the values a template needs. The model can list and read resources with the newmcp_resourcetool, which works in plan mode and asks first, with an option to always allow reads from that server. Prompt arguments complete from the server as you type, and a prompt's images and embedded resources now reach the model. See Resources. - Server instructions reach the model. The instructions each running server gives for its tools are added to the system prompt, up to 4096 bytes per server. See Server instructions.
- Executor and Home Assistant are recognised. Executor gets a card that shows how a run ended, its logs, and what a paused run waits for. An Executor
resumecall that approves a paused run always asks you, even under autopilot, and shows what the run waits for. Add?elicitation_mode=nativeto Executor's URL so it asks you directly. Home Assistant gets cards for intents and for its live context, and a call that controls alock,alarm_control_panel,cover, orvalvealways asks, even with an allow rule or in Auto. See Recognised servers. - Read-only tools work in plan mode. Tools that Executor or Home Assistant mark read-only, such as Home Assistant's
GetLiveContext, are low risk and can be called in plan mode and by read-only agents. They still ask, and the prompt offers to always allow the tool with any arguments, for the conversation, the project, or all projects. See MCP tool calls. - MCP cards open whole. A finished MCP call's card shows its arguments and its whole result rather than the first three rows, and a read-only call's card stays open after newer calls. In the auto view a click folds it to its header. Compact view and
ui.always_collapsedstill fold it. See Results in the transcript. - MCP cards can show the raw result. An Executor or Home Assistant card drawn its own way, or a card whose
structuredContentno text block repeats, ends with aclick for rawrow. The raw view shows the result's JSON indented and coloured, other text as the server wrote it, and thestructuredContentunder its name. Click again to return to the card. See Results in the transcript. - Server errors show as failed cards. A result a server marks as an error draws its card as failed, keeps the server's content, and lists any questions asked during the call. The model reads the same error text as before.
/mcpshows what a server reported. Select a running server to see its name and version, the protocol version, the features it offers, and the first lines of its instructions. Recognised servers show their kind, and an Executor server in model mode shows how to switch it to native mode. The details area keeps the height of the longest server's details, so moving through the list no longer resizes the picker. See Runtime toggling.- A sign-in the server refuses is reported.
caudra mcp authnow checks that the server accepts the stored sign-in, and signs in again when it does not. When a fresh sign-in is still refused, as on Home Assistant's/api/mcpfor a user who is not an administrator, the command fails and/mcpshows the server as Refused instead of asking you to sign in again. Home Assistant's/api/mcp/assistworks for any user. See OAuth. - Deprecated features are refused. Caudra never offers roots, sampling, or logging to a server. It refuses roots and sampling requests and writes log messages to
caudra.logat debug level.
Interface fixes
Section titled “Interface fixes”- The wheel scrolls lists. In
/decisions,/automations,/workflow,/peersand/messages, the wheel over the list now scrolls it instead of moving the selection and loading every row it passes. Click a row or use the arrow keys to select one. - Files picked with
Ctrl+Sare mentioned. The file picker inserted the bare path, so the file was not attached when you sent the message. It now inserts the path as an@mention, quoted when it has spaces, like a path chosen from the@popup. See Mention a file with @. - The
Ctrl+Xpanel takes the mouse. Rest the pointer on a chord in the panel the leader lists and it highlights, click it to run it as its key would, or click anywhere else to cancel the chord, asEscdoes. minimalno longer turns reasoning off. On a model whose lowest level isnone, such as several OpenAI models and local servers that declarenone, asking forminimalthinking sentnoneand the model did not reason at all. It now sends the shallowest level the model has, usuallylow. Asking foroffstill sendsnone.- Copilot no longer sends
noneto a model that always reasons. On Copilot and Copilot Enterprise, thinkingoffon a model that cannot turn reasoning off, such asgpt-6.1-sol, could sendnone, and the request failed withUnsupported value: 'none' is not supported. Copilot's model list replaced Caudra's own levels for the model, so a list that offerednone, or offered no levels at all, decided what was sent. Caudra now keeps its own levels when the list offers none, and never sendsnoneto a model its table says always reasons. Such a model runs at its lowest level instead. Anonethinking setting now means the same asoffon every model. - Custom OpenAI-compatible models without declared levels take no thinking setting. On an
openaioropenai-responsesprovider inproviders.toml, a model that declares noreasoning_optionswas offered thinking levels it was never sent, so the footer and task results named a level that did not apply, and anopenai-responsesendpoint was sent the level as typed. Such a model now takes no thinking setting and shows none. Declare its levels withreasoning_optionsto offer them. See Model defaults. - Hidden Orca tabs ring when a turn ends. In an Orca remote workspace, a Caudra tab you were not looking at could show
workinglong after its turn ended, because Orca stops reading the status of a hidden tab after a while. Caudra now also rings the bell when a turn ends or a prompt waits while its terminal does not have focus, so Orca marks the tab unread. Turn on Terminal Bell in Orca's notification settings for a desktop notice as well. When you return to the tab, Caudra sends its status again, so the tab shows the current state without a key press.notifications = "off"stops the bell. See Orca. - Prompts, popups and scrollbars follow the theme. Some surfaces were drawn in the terminal's own background and text colours instead of the theme's, so a dark theme on a light terminal showed light patches. The affected surfaces were the permission prompt, the
@and#completion lists, the sandbox manager, every scrollbar thumb, and the space beside the permission prompt and the question form over the workbench. They now use the theme's colours and change with it when the theme switches between dark and light. - A task's footer names the model it runs on. The footer of a task's chat could show the main session's model instead of the task's, and the task's card in the transcript then named no model. The footer now shows the model and thinking level the task actually runs on, and the card names that model, including one picked by a profile pin or subagent routing.
Sessions
Section titled “Sessions”- Open new sessions in build mode. Set
default_mode = "build"under[ui]to start new terminal UI sessions in build mode instead of plan mode. A resumed session still reopens in the mode it was left in, and/newin an idle tab keeps that tab's mode. On a fresh start, Caudra also picks the model you last used in that mode.--printand ACP already start in build. Seeui. - Delete the current session. In
/sessions,Ctrl+Don the current session now deletes it after the usual confirmation and opens a new session in its place, in the same mode and directory. A session that is still working is refused until it is idle. See Sessions. - Tabs are named after the session. Caudra sets the terminal window title to the title of the focused session, so most terminals and Orca label the tab with it until you name the tab yourself. Inside Herdr, Caudra renames the tab while it still shows its number, and again when the session title changes, as long as the tab still shows the title Caudra gave it. A tab you named keeps its name. On exit, a terminal with a title stack gets its earlier window title back. Herdr cannot clear a tab name, so the tab keeps the last session title. A plugin that sets the window title keeps it from then on. See Tab names.
- Forks open in a new Herdr or Orca tab. Inside a Herdr pane or an Orca terminal, Fork here saves the new session and resumes it in a new tab of that host, with a Caudra of its own. The tab takes focus and the session you forked from stays open where it was. Remote, sandbox, and ephemeral sessions still fork into a tab of the current Caudra, and so does a fork the host cannot open. See Forks in Herdr and Orca.
- Memory writes wait out a busy database. The
memorytool failed withmemory journal database operation failed: database is lockedwhen another Caudra process held the database's write lock for more than 5 seconds, such as while saving a large session. Memory writes, and the background work that builds memory summaries, now keep retrying for up to 30 seconds, like session saves do. A write that times out changes nothing, so it is safe to retry. - Moving into a directory ignores its pending reverts. A move was refused with "Destination session … has a pending restore; resolve it before moving sessions" when any session already in the destination had a pending revert, even an old conversation revert.
/move-sessionand/migrate-sessionsstopped there./worktree removeand other moves that brought this Caudra back to such a directory committed the move and then failed to start, with "UI startup failed; reopen the committed sessions at the destination". Sessions already in the destination no longer affect a move, just as they never stopped a new session from starting there. The rules for the directory a session leaves are unchanged.
Command line
Section titled “Command line”caudra updateno longer prints its installer. It names the release it moves to, installs it without asking, and ends with thecaudra rollbackcommand that returns to your current version.caudra update --show-scriptprints the checksum-verified installer and asks before running it, as before.-ynow answers only that question, and--no-coloris still accepted, so existing scripts keep working. Seecaudra update.
Caudra 0.2 Preview 7
Section titled “Caudra 0.2 Preview 7”Preview 7 sizes context windows to the limits providers enforce and lets you set them for built-in providers, reads secrets from files in global config files, keeps the reasoning of GPT models on Copilot in one piece, makes copying from Caudra in WSL reach the Windows clipboard, leaves approving a saved plan to the plan menu, and saves a session again after another Caudra carried it on.
Important
After you update, keep
{file:PATH}out of your config files until every Caudra process that reads them runs Preview 7. Older versions read it as literal text.
Providers
Section titled “Providers”- Copilot reasoning stays whole. With GPT models on Copilot and Copilot Enterprise, a finished turn split its reasoning into a separate block for each streamed word. Caudra then sent that reasoning back to the model as plain reply text, once in fragments and once in full, and dropped the encrypted reasoning the model needs on later turns. Each reasoning summary is now one block, and later turns send the encrypted reasoning back as they do with OpenAI. Turns saved before the update keep their split blocks.
- Copilot models compact before Copilot's prompt limit. Copilot lists two limits for each model: the total window, which also holds the reply, and a smaller prompt limit that it enforces on its own. Caudra used the total, so
copilot-enterprise/gpt-6.1-solran at 400k while Copilot refused any prompt over 272k with "prompt token count of … exceeds the limit of 272000". Caudra now uses the prompt limit as the window, and sessions compact before they reach it. - OpenCode models keep their whole prompt budget. models.dev lists a separate input limit for some models, such as the GPT-5 models on OpenCode. Once the model list loaded, Caudra counted that limit as a total, so it compacted at 80% of it instead of 90%. With background work running, it also refused a prompt past the limit minus the reply allowance, 144k of a 272k budget. These models now run at their full input limit.
- Set a built-in model's window in
providers.toml. A[[SLUG.models]]entry or a[SLUG.model_defaults]table now setscontext_windowandmax_output_tokensfor a built-in provider such asanthropic, ahead of what the provider lists and the built-in model table. Built-in providers ignored both before, although the docs said the Claude window could be set this way. Other model keys on a built-in provider are still ignored, and Caudra now warns about them inmodel_defaultstoo. See Model limits on a built-in provider.
Configuration
Section titled “Configuration”- Values from files. Beside
{env:NAME}, a string value in the globalcaudra.toml,permissions.toml,mcp.toml,providers.toml, orworkcell.tomlcan now hold{file:PATH}. Caudra puts the file's text there, trimmed at both ends, so a secret that a password manager or a deployment tool keeps in a file stays out of the config. A relative path starts at the config file's directory,~/is your home directory, and a path can hold{env:NAME}, such as{file:{env:CREDENTIALS_DIRECTORY}/token}. The file must be a UTF-8 regular file of at most 1 MiB. A missing or unreadable file is an error that names the config file, the line, and the path, never the contents. Project files under.caudra/cannot use references, and Caudra reads the file again when it reloads the config file that names it. See Values from files.
Terminal
Section titled “Terminal”- Copying works in WSL. In WSL, Caudra showed "Copied" while the text often stayed in the WSLg clipboard and never reached Windows. Every copy now also asks the terminal to take the text with OSC 52, which Windows Terminal and Orca pass to the Windows clipboard. In Orca, this needs Allow TUI Clipboard Writes (OSC 52), which older Orca releases leave off.
Plan mode
Section titled “Plan mode”- A saved plan goes to the plan menu. With the question-tool nudge on, a plan-mode reply that offered to implement the saved plan was turned into a question about implementing it. Choosing to implement there could not leave plan mode, so the model refused. Once the plan is saved, the nudge now stays off until your next message, and the plan-mode instructions ask the model to end with a summary instead of asking. Approve the plan from the plan menu as before.
Sessions
Section titled “Sessions”- Reopening a session another Caudra carried on saves again. If you left a session with
Ctrl+X nor/new, carried it on in another Caudra, such as an Orca pane, and then reopened it in the first one, every save failed with "session … was modified concurrently: expected write version …, found …". Nothing written after reopening it was saved, and no other Caudra could open the session until you quit the first one. The session on disk was not damaged. Deleting such a session from the session picker failed the same way. Both now work. - Sessions compact instead of failing near the limit. Caudra compacted once a conversation filled 80% of a window the prompt and the reply share, even when the model may reply with more than the other 20%, like
claude-haiku-4-5with 64k of a 200k window. Between those points, a provider that counts the reply against the window could refuse the request, and with background work running Caudra refused it itself. Compaction now fires early enough to leave room for the reply, up to half the window./contextand the status bar show the new point.
Caudra 0.2 Preview 6
Section titled “Caudra 0.2 Preview 6”Preview 6 adds autopilot, an experimental mode that answers permission prompts, questions, and ready plans for you while a session works toward its goal. It also forwards chosen environment variables to shell commands, draws MCP results readably, logs in to MCP servers that offer no client registration, shows what is new after an update, supports Orca terminals, and makes Enter answer a permission prompt in terminals where it did not.
Important
Close every other Caudra session before you start Preview 6. On its first start, Preview 6 upgrades the session database in your state directory, and the upgrade needs exclusive access. This includes other terminals, editor sessions over ACP, and
caudra storagecommands. While any of them still has the database open, Preview 6 does not start. It lists the open sessions to close instead, and nothing is changed.The upgrade keeps your sessions and saves a copy of the database from before it as
caudra.db.v23.baknext tocaudra.db. Preview 5 and earlier cannot open the upgraded database, andcaudra rollbackrestores only the previous binary, not the database.
Autopilot (experimental)
Section titled “Autopilot (experimental)”- Keep a session moving. With
experimental.autopiloton,/autopilot <goal>sets a goal and hands what would wait for you to a separate delegate model: permission prompts, thequestiontool, questions asked in prose, a plan that is ready, and the stalls that end a run, such as a goal loop cap or a provider outage. Autopilot ends when the goal is met or impossible, a budget runs out, or you stop it. See Autopilot. - Prompts it never approves. The delegate approves a permission prompt once and never adds a rule. Prompts that plan mode raises, tools that always prompt, protected files and commands, and every prompt in a session that content screening flagged are only ever denied with guidance or left to you.
- Budgets. Each engagement may start 100 turns without you by default.
max_costandmax_minutesunder[autopilot]add spend and time limits, and edits apply from the next turn. - You stay in charge. Every decision is a transcript row, and a footer chip opens a panel with the budget and recent decisions. A key or click on a card autopilot is deciding makes it yours. Esc Esc, Ctrl-C while the agent works, or
/autopilot offstops autopilot. An item it leaves to you raises an urgent notification and a blocked pane status. - Headless and CI.
caudra -p --autopilot "/goal <condition>"runs unattended, and a prompt autopilot leaves to a human is denied. SDK clients engage it with--autopilotor theautopilot_startcontrol. See Headless Mode. - Its own model job. Decisions use the new Autopilot job, which follows Best unless you bind it in
/modelor with/autopilot model. The lifetime view in/usagelists its spend underautopilot.
Shell environment
Section titled “Shell environment”- Forward the variables your commands need.
/envlists every variable Caudra can see, shows which ones reach shell commands, and edits[agent.shell_env]in the globalcaudra.toml.passforwards names such asDOCKER_HOSTorAWS_*, andsetgives commands their own values, with{env:NAME}for secrets. A project.envnever supplies a forwarded value, and a project config cannot hold the table. See Forwarding more variables. - Sandboxes forward their guest's variables. A sandbox profile's
shell_envchooses guest variables, and everything by default. Values stay in the guest, and its Workcell never hands its own token or settings to a command. See Shell environment.
MCP tool cards
Section titled “MCP tool cards”- Readable results. Each block of an MCP result is drawn by its type. A JSON object or array is indented and coloured, other text is rendered as markdown, and images, audio, and resources become labelled rows with their type and size. The model receives the same text as before.
- Cleaner header. A card reads
server › toolinstead of repeating the tool name, with short arguments beside it. The header shows the size of the result and an estimate of the tokens the model reads from it, such asJSON · 128 lines · ~3.2k tokens. Opening the card shows every argument. Sessions saved by earlier versions show the same labels and indented JSON. - Code it ran. When a call runs code, such as a
code,script, orsqlargument, the card shows it numbered and highlighted above the result, in the language the argument name or the code suggests. See Results in the transcript.
MCP OAuth
Section titled “MCP OAuth”- Servers without client registration. Caudra now logs in to servers that accept OAuth client ID metadata documents, such as Home Assistant, with no client to configure. These logins used to fail with "no stored client and server has no registration endpoint". Caudra's document lives at
https://caudra.ai/oauth/client-metadata.json, so the server must be able to reach caudra.ai. See OAuth. - Discovery follows the MCP spec.
caudra mcp authreads the server's login challenge first, and authorization server metadata must name the issuer Caudra asked for. An authorization server whose address has a path no longer falls back to the metadata at the host root, which can describe a different server. Servers without S256 PKCE are refused. A home server on plain HTTP works when its login pages share its origin. - Clients stay with their server. A client is reused only with the authorization server that issued it, and the redirect checks the issuer when the server reports it. After this upgrade, the next interactive login gets a new client once. Stored tokens keep refreshing.
Permission prompts
Section titled “Permission prompts”- Enter answers a fresh prompt. In Herdr and some other terminals, Enter did nothing on a new permission prompt until you clicked or pressed another key. A prompt still ignores a key you were already holding when it appeared. In terminals that never report a key's release, a key counts again once it has been quiet for a second, and the footer says whether to let go or to wait. See Permission prompts.
- Tooltips on every part of the prompt. Rest the mouse on an answer, a command row, a tab, a Customize field, or a control in the pattern inspector or Advanced view, and a tooltip explains what it does and which key presses it.
What's new and release notes
Section titled “What's new and release notes”- What's new after an update. The first time the terminal UI starts after an update, it shows the notes for every release since the one you last ran.
/changelogshows them again, and/changelog allshows every release. In the window,gswitches between the two,nandpmove between releases, andoopens a release on GitHub. The notes ship inside Caudra, so they work offline. Setui.changelog_on_update = falseto show them only through/changelog. - Release notes in the docs. Every release's notes are on the Release notes page, in
/docs, and in docs search.
Terminal integration
Section titled “Terminal integration”- Orca terminals. Inside an Orca terminal, Caudra reports to Orca its state, its model, and the label of a prompt that waits for you.
/worktreecreates and opens worktrees through Orca for repositories Orca knows, and git otherwise. Shell commands get Orca's terminal variables, and anorcaskill teaches the model Orca's CLI. See Orca notifications and Orca worktrees. - More accurate pane status. Herdr shows Caudra as working while it saves a permission choice, acknowledges a sandbox, or transfers files, shows held peer messages as waiting for you, and shows a finished or failed turn as idle. With OSC 7501 status, an open login picker shows as waiting for you. Automation
notify()messages now always arrive as notifications, even inside Herdr and Orca.
Sessions
Section titled “Sessions”- To-do list of the task you view. The sticky to-do list now follows the conversation you view. A task shows its own list, labelled with its name, and a task without one shows none instead of the main session's list.
Caudra 0.2 Preview 5
Section titled “Caudra 0.2 Preview 5”Preview 5 applies configuration edits while Caudra runs, lets global config files read environment variables, and asks fewer questions about shell lines that set variables.
Important
After you update, restart running Caudra sessions so they pick up hot reload. Until every Caudra process that reads your config files runs Preview 5, keep
{env:NAME}out of them: older versions read it as literal text. Preview 5 does not upgrade the session database.
Configuration
Section titled “Configuration”- Edits apply while Caudra runs. The terminal UI watches its config files, skills, custom commands, and system prompt profiles, and applies an edit shortly after you save it. Permissions apply before the next tool call, MCP servers start, stop, and restart at once, and
[agent]settings apply from the next turn. Some changes still need/reloador a restart, and a footer line says which. Headless runs and ACP still read configuration once, at startup. See Hot reload. - Edits keep the prompt cache. Changing the tool definitions or the system prompt mid-conversation makes the next request read the whole conversation at full price. Caudra therefore keeps what the model was shown unchanged until a moment when the cache is lost anyway, such as a compaction or a model switch, and tells the model about the change in a short reminder meanwhile. What Caudra enforces, such as permissions and which tools can run, follows your edit at once.
- Broken files fail safely, without dialogs. A config file that fails to load keeps its last valid version and shows a red chip in the status bar until it loads again. A broken
permissions.tomlinstead denies every tool call until it loads again, so a bad edit never leaves an older, looser policy in place. Changed project permissions and MCP servers that need review show a chip that opens the review when you are ready. - Environment variables in global config files. A string value in the global
caudra.toml,permissions.toml,mcp.toml,providers.toml, orworkcell.tomlcan contain{env:NAME}. Caudra fills it in from the process environment, or else from the global.env, so secrets can stay out of the file. An unset variable is an error that names the file, line, and variable, never a value. Project files under.caudra/cannot use references.caudra auth loginand/mcpkeep a reference in the file rather than writing its value. See Environment variables.
Permissions
Section titled “Permissions”- Shell lines that set variables.
export,unset,declare,typeset,readonly,local, andsetno longer make a whole line unreadable, which allowed only "run once" or "no". Clearing ordinary variables and switching error options such asset -euo pipefailcount as read-only, sounset FOO; set -euo pipefail; cargo testasks only aboutcargo test, with its usual scopes. Clearing a variable Bash itself reads, such asPATHorIFS, and declarations that set a variable, such asexport A=1, are screened as commands built at run time. Commands that only print variables are treated likeprintenv, because their output can show credentials.
Caudra 0.2 Preview 4
Section titled “Caudra 0.2 Preview 4”Preview 4 adds hover tooltips, shows Caudra's own files and folders of your choice in the workbench explorer, offers narrower permission scopes for commands that take paths, and makes xAI sign-in work again.
Important
After you update, restart every running Caudra session, including sessions in other projects. Preview 3 cannot read saved permissions once one of the new folder scopes is remembered. Preview 4 does not upgrade the session database.
Interface
Section titled “Interface”- Hover tooltips. Rest the mouse on a footer chip, a composer or queue control, the to-do list header, an icon, or text that is cut short, and a tooltip explains it or shows the whole text. A paste token previews its first lines. Set
tooltips = falseunder[ui]to turn tooltips off. - More in the workbench explorer. A
CAUDRAsection lists your configuration, plans, memory notes, and in a local session your scratch files. AFOLDERSsection holds any folder on this machine that you add withCtrl+X dor with Add Folder on a section header. Each section folds, resizes, and scrolls on its own. Search,Ctrl+P, and source control still cover only the project.
Permissions
Section titled “Permissions”- Scopes that stop at a folder. When you remember an answer for a command with a path in it, the scope choices now include its folders. For
gh api repos/acme/tool/issues, you can allowgh api repos/acme/tool/*up togh api repos/*. Patterns you write yourself can end the same way. Shells, interpreters, and other commands that run code get no such scopes.
- A reminder to act after repeated compactions. When one request has been compacted twice and no work has started, Caudra reminds the agent to act. In Build mode it asks for the first change, in Plan mode for the plan or a question, and in a read-only task for a report. Change the threshold with
work_nudge_compactionsunder[agent], or set it to0to turn the reminder off. - Plan mode with small models. The
plantool no longer waits behind tool search, so models that never search for it can still save their plan.
Worktrees and Herdr
Section titled “Worktrees and Herdr”- Labeled Herdr tabs. When
/worktreecreates a worktree inside Herdr, the new tab and pane carry the branch name. If the session's old tab was the last one in its pane, Caudra now exits there and leaves the pane at its shell instead of opening a fresh session. - Fewer blocked moves. A pending revert in an unrelated old conversation no longer stops sessions from moving to another directory or worktree.
/worktreechecks before it creates the checkout and names the session in the way. Moves also wait longer for the session database, so they no longer fail with "storage writer operation timed out" while other Caudra processes are busy.
- xAI sign-in works again. Requests over an xAI login failed with HTTP 426 because the Grok CLI proxy now requires a minimum client version. Caudra now declares a supported version. If xAI raises the minimum again before the next release, set
CAUDRA_XAI_CLIENT_VERSIONto the version the error names. caudra -preports failures in its exit status. A print run whose result is an error now exits with status 1 in every output format, so scripts and CI can detect it. The output itself is unchanged.
Caudra 0.2 Preview 3
Section titled “Caudra 0.2 Preview 3”Preview 3 rebuilds project memory around a summarized journal, adds GitHub sign-in for Copilot and a Copilot Enterprise provider, and shows available updates in every session.
Important
Close every other Caudra session before you start Preview 3. On its first start, Preview 3 upgrades the session database in your state directory, and the upgrade needs exclusive access. This includes other terminals, editor sessions over ACP, and
caudra storagecommands. While any of them still has the database open, Preview 3 does not start. It lists the open sessions to close instead, and nothing is changed.The upgrade keeps your sessions and saves a copy of the database from before it as
caudra.db.v22.baknext tocaudra.db. Preview 2 and earlier cannot open the upgraded database, andcaudra rollbackrestores only the previous binary, not the database.
Project memory
Section titled “Project memory”- Memory summarizes itself. Notes the agent saves are kept in a journal, and a background job writes one-line summaries of older notes. The system prompt carries a view of at most 32 KiB, however many notes a project collects. The model opens a summary line to read the notes behind it, and searches the journal for anything the view leaves out.
- Existing notes are imported automatically the first time Caudra opens a project's memory, oldest first. Note files are never modified. Imported notes leave their tags behind, and the memory tool's
listandtagsactions are replaced byview,zoom, andsearch. - Summaries cost model usage. By default the Memory job uses the same model as compaction, because a summary line stands in for its notes for a long time. To spend less, bind Memory to a Fast model in
/model. To turn summaries off, setsummarize_memory = falseunder[agent]. Summaries are written during TUI, SDK, and ACP sessions, never during one-shot--printruns. The lifetime view in/usagelists their spend undermemory. - The summarizer follows
/model. Switching the chat model or changing a binding takes effect on the next summary line. /memoryis an inspector. It shows the view as the model reads it, expands each line into the notes it covers, and tracks the summaries being written.
GitHub Copilot
Section titled “GitHub Copilot”- Sign in with GitHub.
caudra auth login copilotnow signs in through the browser with a one-time code.--method importstill imports tokens from the gh CLI, the Copilot plugin, and the keyring. - Copilot Enterprise provider.
caudra auth login copilot-enterprise --hostname company.ghe.comsigns in to a GitHub Enterprise host. Personal and enterprise accounts can stay signed in together, and enterprise requests go only tohttps://copilot-api.<host>, never to public GitHub. For automation, setGH_COPILOT_ENTERPRISE_TOKENandGH_COPILOT_ENTERPRISE_HOSTtogether. This provider is new and has not yet been tested end to end with a live enterprise account, so please report any problems.
Updates
Section titled “Updates”- Update banner. When a newer release is available, a banner above the prompt names it, together with the update command for your channel, in every session. Close it with its
×or/dismiss-update. It returns the next time Caudra starts. Caudra never installs updates on its own. - Check now.
CAUDRA_ENABLE_UPDATE_CHECK=1asks GitHub immediately instead of using the result cached for 24 hours.
Interface fixes
Section titled “Interface fixes”- Guide and replace while work runs.
Ctrl+X gandCtrl+X xnow work whenever a prompt would queue, including while the agent waits on background tasks or workflows. - Usage limits. When the Anthropic usage endpoint is rate-limited,
/usagekeeps the last figures, shows when they were fetched, and counts down to the next refresh. Click the fetch time to refresh anyway. - Rhai highlighting. Automation and workflow scripts are syntax-highlighted in the workbench, tool cards, diffs, and Markdown code blocks.
- Workbench scrolling. Mouse wheel and scrollbar scrolling in Files, Git, and Search no longer snaps back to the selected row.
- Workbench Git graph. The graph refreshes when commits are made while the workbench is open, including in linked worktrees.
Caudra 0.2 Preview 2
Section titled “Caudra 0.2 Preview 2”Preview 2 improves installation and recovery, adds new opt-in decision features, and makes background shell commands easier to read.
Installation and updates
Section titled “Installation and updates”- Clearer PATH setup on macOS and Linux. The installer prints a command you can use immediately, even when the installation directory is missing from
PATH. It provides separate instructions for zsh, bash, and fish without editing your shell configuration. - Clearer root-install warnings. The installer explains when it is installing for root rather than your regular account, and distinguishes an explicitly chosen installation directory.
- Fewer installed license files. License notices and offline attribution evidence now ship in a compact six-file bundle instead of thousands of individual files. Readable notices remain available, with the detailed evidence preserved in a compressed companion archive.
- More reliable recovery. Updates support both existing and compact license bundles. Rollback can restore a valid saved installation even when the current license bundle is damaged. Recognized installer backups are rotated after successful installation, while unrecognized or invalid backups are retained.
Experimental decision features
Section titled “Experimental decision features”- OpenAI Decisions support. The decision engine can use the OpenAI Decisions API or a compatible local ninfer server with
decisions.protocol = "openai". Existing TypeSafe configurations keep their current protocol by default. - Interactive question reminders. The optional
question_tool_nudgefeature can remind the assistant to use the interactive question tool when it asks you to clarify, choose, or approve something in a prose reply. It does not invent an answer or grant approval. - Off unless you turn them on. The decision inspector and status reporting show the selected protocol. Decision features remain experimental and opt-in, and remote endpoints still require explicit consent. No configuration change is needed to keep using Caudra with your existing setup.
Interface fixes
Section titled “Interface fixes”- Highlighted background commands. Background shell results now syntax-highlight commands, matching the foreground shell display and respecting the syntax-highlighting setting.