EmpryoEmpryo.beta
‹ all releases
3.5.9-betaAug 10, 2026

Empryo has a Cost Center now: one page for every dollar you spent, which model spent it, and how much prompt caching saved you. Building it meant staring at our own numbers, and the numbers were embarrassing. Caching was broken on half the providers we support, and nothing on screen said so. We fixed that too, so the savings figure on that page went up on its own. Also in this one: diagrams that draw themselves in your terminal, a tab strip you can read from across the desk, and browser and terminal panels that park and pop out instead of squatting on your workspace.

The Cost Center
  • What you paid leads. What you might have paid is the footnote. Most usage dashboards show list price and leave the arithmetic to you. This one puts the amount that left your account first, with the full API rate and your caching leverage underneath. A burn-rate chart, a spend-by-model table and a per-provider split sit below that.
  • Plans and quotas share a room with per-token spend. Subscription windows, reset times and remaining allowance live on the same page as metered billing, so a Claude Max seat and a pay-as-you-go key stop occupying separate corners of your brain.
  • Three ways to hide your account. Masked (ou•••@g•••.com), fully hidden, or visible. Pick it once from the status bar or the Cost Center rail and every open surface follows on the spot. Your screen-share thanks you.
  • Click a provider, filter the table. Every row carries its cache hit rate and the dollars that hit saved you.
Pay less for the same work

The savings number moved because caching finally works everywhere. We measured every one of these on a live session instead of assuming it.

  • OpenAI-family models cache within a session again. The cache key was going out as a header, which does nothing. Moved into the request body, a GPT session over the proxy went from a flat 3,456 cached tokens to 21,900 and climbing.
  • OpenRouter caches the tail. Its SDK ignores a request-level cache mark, so Empryo now stamps the last message of every request instead. Cached reads advance turn over turn rather than sitting still.
  • Subagents stopped paying for the cache twice. One tool showed up only for background agents, which split the prompt prefix into two variants and bought two separate 27k writes. Every subagent now carries the same tool belt.
  • A warm session appends, a cold one rebuilds. Idling past the cache window used to glue a stale snapshot onto a warm prefix. Empryo now spots the tab going cold, refreshes what it knows about your code, and takes the one write it was always going to owe.
  • When caching breaks, Empryo tells you. A big write with zero reads on a request that should have landed warm now prints a notice in the chat instead of billing you in silence.
  • Prices you can trust. We checked every effort ladder and reasoning setting against its vendor, and a rate we cannot verify now says so instead of guessing.
Diagrams, in both apps
  • Mermaid renders on the desktop as real SVG you can zoom, pan and blow up full-screen. It waits for the fence to close and the turn to settle, so nothing lurches while the model is still typing.
  • And in the terminal. Flowcharts and sequence diagrams drawn in box characters, no browser anywhere near it. Architect and plan modes know they can draw now, so go ahead and ask for one.
Also new
  • A tab strip you can read at a glance. The selection is one pill that travels: it tweens to the tab you picked, squashes with its own speed, and retargets mid-flight if you keep moving. A working lane sweeps and bobs its mode icon off-beat; a finished lane goes green with a check and a rail.
  • Minimize, dock, pop out, fullscreen. The terminal and the embedded browser each park to a status-bar pill and come back on demand. The workspace grid slides to make room for a panel instead of teleporting.
  • Code execution, resolved per provider. Anthropic's sandbox on the models that support it, OpenAI's code interpreter on the Responses lane, off behind gateways that can run neither.
  • The model picker fills in as answers arrive rather than making every provider wait for the slowest one. Routing through the proxy also reads its live model list, so the newest ids show up with the context windows they really have, 1M included.
  • ⌘L jumps to the composer from anywhere, including out of a focused browser page. The idle placeholder mentions it until you learn it.
  • Links in chat are links, and a GitHub URL becomes a chip with the avatar on it.
  • Ask exchanges stay in the transcript. The question and the answer you picked sit together in the thread instead of evaporating the moment you click.
  • Screenshots go somewhere. Send one to the chat, copy it, or save it to a file.
  • Reveal in Finder (or Explorer, or your file manager) from any row of the file tree.
Faster
  • Long markdown opens instead of stalling. A 186KB document cost 1.5 seconds to parse in one piece. Split into chunks it costs 260 milliseconds, character for character identical.
  • Switching tabs no longer rebuilds the conversation. Lanes stay mounted, so a tab flips into view instead of reconstructing its entire transcript.
  • The browser console holds 5,000 lines and renders 17 of them. It follows live output, then holds your place the second you scroll up to read something.
Fixed
  • Your scroll position survives. Leave a tab pinned to the bottom and it re-pins when you come back. Leave it up in history and it stays there.
  • A renamed tab keeps its name through restarts and session reloads, in both apps.
  • Parking the browser stopped destroying your loaded tabs. Minimizing used to leave it on screen swallowing clicks, too.
  • Run waits for your dev server. It used to flash a connection error a heartbeat later and give up seven seconds in. Now it waits for the port to accept, which matters when a Vite app with a codegen step ahead of it needs 15 seconds to bind.
  • Editing a message in one split stopped replacing the draft in every other split.
  • A fresh session clears every tab, and restoring the same session twice no longer doubles your lanes.
  • Headless stopped dropping your tool flags. Code execution, computer use and the text editor were set everywhere except there.
  • Empryo clamps the output ceiling per model. One gateway checks that ceiling and rejected every single turn with a 400, because we asked for 64k from a model capped at 32,000.
  • The code map skips dot-directories. .github, .claude and the rest stopped being indexed the moment your project was a git repo.
  • Organize imports works, and code actions on the last line of a file stopped being unreachable.
  • Installing a skill survives a slow registry instead of giving up early with an error too long to read.
  • A slash command stays highlighted when you shift+enter onto a second line.
  • A missing session says which directory it searched, so a resume from the wrong folder explains itself.
  • Empryo's memory number means something now. Raw RSS counts pages Bun has already handed back, so the old figure tripped guards over nothing.
  • Linux windows read the real display backend, so a Wayland session gets Wayland behaviour.
Notes

This is a beta. macOS, Linux and Windows builds are on the downloads page.