‹ all releases
This release is built around three ideas. Marionette turns a rough request into a compiled prompt before the model ever sees it, and shows you the work. Memory was rebuilt against a benchmark instead of intuition, so recall actually finds the thing you meant. And agents now run background-first — fan out several at once, steer them mid-flight, and stop babysitting a single blocking turn. Alongside that: subscription quota meters for Anthropic and Copilot plans, a redesigned TUI transcript that folds old turns out of your way, and a long list of fixes.
New- Marionette, the prompt compiler. Give Empryo a vague goal and let it compile: Marionette runs a short survey pass, drafts a sharper prompt, and hands you the result to accept or discard. Use
/marionettein the CLI, the compile strip in the desktop app, or the--steps/--timeflags to cap how much effort it spends. It picks a lane based on what you are doing, and the fast lane now ships the settings that won our benchmark passes rather than defaults someone guessed. There are guided tours and intro popups the first time you meet it. - Memory that was tuned against a benchmark. Cross-session recall got a ground-up overhaul: a sanitizer that strips noise before storage, keyword and semantic scoring blended together, a maintenance pass that keeps the store healthy over time, a local embedder so recall does not depend on a network call, and distillation that compresses what it keeps. Recall now weights files by how distinctive their path is, so a hit in an obscure module counts for more than one in a file everyone touches.
- Background-first agents. Delegated work no longer blocks your turn. Fan several agents out at once, watch them on the tasks strip, and steer any of them while it runs. Empryo also picks the delegate from what you are actually doing next rather than a static preference.
- See your subscription limits, not just your spend. If you route through an Anthropic subscription or a Copilot seat, Empryo now reads the real per-model caps and monthly allowances and draws them as meters in the status bar, usage panel and headless output — including which window is currently gating the model you are on. Subscription routing is documented as use-at-your-own-risk.
- Real computer use. The computer-use tool is implemented and gated per lane and per model, so only the models that genuinely support it can reach for it.
- A transcript that folds. The TUI transcript was reworked: older turns collapse into clickable scars you can reopen,
^Ounfolds them, one turn stays open at a time, and the tool rail is aligned to a proper cell grid. Tasks collapse into a well with a tally of changed files on the ground line. - Ten tabs, with a context gauge. The tab cap rose to 10 in both the TUI and the desktop app, and each tab shows how full its context is.
- Branch a conversation into a new tab. Fork any point of a chat into its own tab instead of destroying the original thread.
- See-through windows on Linux and Windows. The desktop app's translucent chrome is no longer macOS-only.
- The embedded browser moved to real guest views, with a shared network-policy cache and load errors that actually surface as an action you can take.
- Sessions restore without stepping on your work. Restoring is additive, tab numbers stay stable across restarts, renames are written to the session log the moment you make them, and the log itself is durable.
- The proxy sidecar is a shared daemon. It is no longer killed and respawned on every provider switch or spawned once per host, which removes a class of dropped-connection stalls.
- Quota and usage formatting is consistent across the badge, the drawer and the status bar, drawn in the same visual vocabulary as the context gauge.
- Search results say where they came from, and repeated code edits fold into one grouped row, so a large refactor reads as a single entry instead of fifty.
- Composer and layout polish. Slash-command tokens are tinted as you type, command names stay intact at narrow widths, free-text fields wrap instead of scrolling sideways, composer hints degrade based on measured fit, and the cursor lands at the end after tab completion.
- Toasts stack instead of stacking up — bottom-anchored with overlap, fanning out when you hover.
- Agents stopped prefixing `cd <project root>` to your commands. Shell commands run in the right place without the redundant prefix that broke quoting and chained commands.
- A turn's answer is never swallowed. When the final response step was skipped, the actual answer could vanish; turns are also only called silent when they genuinely said nothing.
- Deleted memories stay deleted. Deduplication could resurrect a memory you had soft-deleted. It no longer does, and recall deduplicates across scopes correctly.
- File paths in memory work on Windows. File-reference paths are normalized, so file affinity scoring is not silently dead on Windows.
- `list_dir` reads the filesystem live instead of answering from a stale view.
- Tool child processes are reaped. Long-running project tools no longer leave orphaned process trees behind.
- Modals keep their keyboard. The CLI stopped swallowing keys destined for modals that own keyboard input, and subagent docks stay scoped to the tab that spawned them.
- Edits land where they should. A targeted edit now finds its anchor no matter how the surrounding code is indented.
- Provider switching is cleaner. Stale provider-executed search blocks are stripped as matched call/result pairs and stay replayable, and a dead reasoning setting is no longer sent to MiniMax.
- Desktop config writes resolve in order, so a write no longer completes before the config invalidation it depends on.
- Desktop display fixes. One marionette on stage at a time and confined to the conversation box, the maze search dropdown draws above the HUD instead of behind it, and selected text in the composer stays visible.
- Successful edit rows dropped the redundant "Edited x" line — the diff already says it.
This is a beta. Downloads for macOS, Linux and Windows are on the downloads page.
