‹ all releases
Sign in with Cursor, Devin, Gemini CLI, Antigravity and Kimi Code
Empryo 3.7.2-beta · Sep 5, 2026
Release artwork & highlights
Subscriptions and sign-in
- Sign in with Cursor, Devin, Gemini CLI, Antigravity or Kimi Code:
/login cursor,/login devin,/login google-gemini-cli,/login google-antigravity,/login kimi-code. Native OAuth or device flow, no addon in between. - Fire Pass and Ollama Cloud sign in with an API key:
/login firepass <key>,/login ollama-cloud <key>. - Every signed-in account shows under the Subscriptions provider in the model picker on the TUI and the desktop app; switch or sign out from there.
- When one account of a kind reaches its limit, the request continues on the next account without repeating output you already received.
- Models come from the provider's own API first, then models.dev, then the bundled list. Each lane reports input, output and cached tokens.
- Codex: the client version is learned from the backend, the context window follows the account's
max_context_window, and GPT-6's effort ladder lists only the values the model accepts. - An expired grant reads "sign in again" with the server's reason. A rotated grant is kept for the session if the keychain declines to store it.
- Views can call
intent("approve", row)to run one of the cell's named actions, gated like a button press. Views also getdesk(),popup(),select(),refresh()andon(type, cb)over the app's event stream. - New blocks:
heading,buttonandbuttons, usable anywhere a block goes. kvrows takeboxed,right,mono,toneandtag;texttakessize,monoandtone.list.fromrenders a pulse's rows live, withwhere,sort,limitand aselectthat writesstate.selected*.board: "none"gives the centre of the window to the cell's blocks;chrome: "bare"removes the app header.- Views can use three.js through
runtime.three(bundled, loaded on first use) and a per-viewcssthat applies only to that view. engine://feeds refresh when the host events behind them change.cells press,cells simulateandcells watchlet the agent act on a running cell and watch the result;cells debugprints each region's block tree and each view's state.- A view that throws shows its error in place.
- Helpers restart when their script changes and report stderr on the wire. Helpers left behind by a previous sidecar are cleaned up before a new one starts.
- Compaction, review, marionette, web search, memory distill and dispatched workers each use their own cache lane on the ChatGPT and Codex route. Your main conversation's lane is unchanged, so two tabs on one project still share a warm prefix.
prompt_cache_keystays workspace-wide; only the Codexsession_idcarries per-conversation identity.- On gpt-6-astra models the top effort level is labelled ultra on the slider; the value sent is still
max.
- A passing review is final: after PASS the footer offers no apply or re-review, and the reviewer prints only the verdict line.
- The turn footer offers once or till pass on the TUI and the desktop app.
- Prompts and steers clamp at two lines with a toggle.
- The tool-row popout is always visible.
- The turn ledger shows duration, cost, in, out and cached, matching the TUI.
- Quota error text wraps; the plan tooltip has a maximum width.
- Each running tool on the rail has its own stop chip.
- Arming the stop strip closes the inspector.
- Live trailing text past the
final_responsethreshold is shown as narration.
bun run releaseopens a page at localhost:7411 with every stage, each child's output as it streams, and the hosts the run depends on (apple/container, the Windows machine, Tailscale, R2, GitHub, empryo.com).bun run release:waitblocks until the run ends and returns an exit code that says how.
- Subagents that finish without output are retried once, then reported to the parent instead of being marked complete.
- Non-streaming calls on the ChatGPT and Codex route return their output when the final response object is empty.
