Latest release

Changes, verification and known limitations in the latest stable release.

Manual for v0.9.5. Stable release: v0.9.5.

octet 0.9.5 brings native Google audio input, Windows octet update, native Tern touchpad scrolling and a set of terminal and safety fixes. The version-pinned release page records the immutable source, CI runs, artifact checksums and actual channel availability. Source-build evidence is not public-artifact qualification.

What changed in 0.9.5#

  • Audio input on Gemini, Vertex AI and Google-compatible OpenCode models. Audio-capable models keep audio in discovery, attachments and read results and receive inline WAV, MP3, AAC, FLAC and Ogg Opus bytes through native generateContent. Oversized audio reads name the 20 MiB raw-audio cap and suggest compressing or splitting the file. Audio output, raw PCM16 and provider file references remain unsupported.
  • Parallel Gemini tool calls remain distinct across stream chunks. Gemini 4 Argon on OpenCode Zen and Argon Contributor on Go retain every call's arguments, thought signature and paired result instead of merging calls at the same chunk-local position. The fix applies to the shared Google codec.
  • octet update works for Windows PowerShell installs. An install-octet.ps1 installation is recognized and updated by re-running the version-pinned PowerShell installer, even while an older session still runs from octet.exe.old.
  • Native Tern touchpad scrolling. octet no longer captures the mouse on the native Tern surface, so touchpad scrolling and selection behave natively. ANSI fallback keeps the requested capture policy.
  • Native Tern reconnect recovery. A detached UI no longer permanently forces ANSI fallback on frame-credit timeout. octet waits for a fresh hello, replays the transcript and draft, and restores the native input owner. Real last-window close/reopen remains an attended RC check.
  • Plain-click web links with mouse capture. Fullscreen and explicit --mouse app open HTTP(S) transcript links on an ordinary left-click release, without Shift or Ctrl. Dragging still selects/copies; stale clicks cannot open a different link. Native Tern link gestures remain terminal-owned.
  • Thinking changes are quieter and keep your prompt. Same-mode idle thinking changes keep the session and extensions instead of rebuilding them, and Enter pressed while a thinking change is pending submits that prompt exactly once.
  • Terminal presentation. Tool inputs and Bash/PowerShell commands wrap to six visible rows rather than clipping after part of one line; Ctrl+O and copy preserve the full sanitized input. Mid-run /context shows the full usage grid, and provider errors after a mid-stream failure no longer show internal stream counters.
  • Prompt caching holds across large tool batches. Anthropic keeps its previous conversation cache breakpoint reachable after large parallel tool batches, supported Claude Bedrock routes add native cache points, and Kimi's cached_tokens usage is counted. Opt-in provider request traces now report salted prefix diagnostics without prompt, tool or credential contents. These are local checks, not measured provider cache hits.
  • Safety hardening. Controlled shell policies require an exact one-shot approval for every shell command; edit and write preserve newline conventions and hash raw bytes; Windows bulk locks use a stable private lock file.

0.9.4 matched Gemini thinking levels to each model; see the 0.9.4 notes. 0.9.3 sent OpenCode Go Gemini requests to the endpoint that serves them; see the 0.9.3 notes. 0.9.2 added /extensions install and octet extension install --all; see the 0.9.2 notes. Everything below from 0.9.1 still applies.

Status at a glance#

  • Pi compatibility is experimental and unstable. Full Pi backwards compatibility is not yet qualified. The octet-pi-compat adapter does not ship in this release; it remains source-only experimental work, and loading real Pi setups can be slow or fail for individual extensions.
  • Many extensions work today. Five first-party bundles ship (codemode, computer use, MCP, subagents and web search), any-language subprocess extensions are supported, and in the source preview unchanged Pi extensions such as Doom, drawing, the powerline footer and the rainbow editor run through the adapter. These Pi receipts are development evidence, not release qualification.
  • Windows is in preview. The native Windows x86-64 (MSVC) archive and install-octet.ps1 are published and pass release-workflow runtime, terminal and ConPTY checks, but attended desktop use is unqualified and known issues remain open.

What's better since v0.8.1#

v0.8.2 was a source candidate and never published, so upgrading from v0.8.1 brings the 0.8.2, 0.9.0, 0.9.1, 0.9.2, 0.9.3, 0.9.4 and 0.9.5 entries in the changelog.

  • Up to 8× more parallel reads. Read-only tool calls run in waves of one per CPU, from 4 up to 32 (v0.8.1: always 4), and the runtime's worker pool is sized to the machine instead of 2 threads.
  • Edits stop filling the model's context. edit and write return one short line (ok, path, verb, content hash); the unified diff moves to result metadata the model never sees. Tool cards still show the diff.
  • Windows went from unbuildable to native (preview). The interactive crate did not compile for Windows in v0.8.1. v0.9.5 publishes a signed MSVC octet.exe with install-octet.ps1 that runs in Windows Terminal and conhost, with no WSL.
  • Sign in instead of pasting keys. Browser sign-in for ChatGPT/Codex joins device-code sign-in, plus new Grok, Kimi, Meta and OpenRouter account sign-in. /setup can remove any saved sign-in, key or custom provider.
  • Extensions are set up inside the app. /extensions installs, configures and manages the five signed first-party bundles (MCP, web search, subagents, codemode, computer use) with live progress, cancellation and confirmations.
  • Changes land when you make them. Every /settings choice applies immediately, even mid-run; model and reasoning changes made during a run are queued for the next safe boundary instead of being refused.

Faster and leaner#

  • A launch that names its model no longer waits for a cold provider inventory.
  • Resume hydrates only a viewport-sized tail; startup reuses tool definitions, extension host state and resumed configuration, and defers terminal background detection until after the first frame.
  • The models.dev refresh builds only the providers octet reads instead of the whole ~5 MiB catalog, whose value tree peaked near 60 MiB.
  • Only the newest four tool-result images (typically screenshots) are sent to the model on each request.
  • The core toolset is read, edit, write and bash; the native Search tool is removed in favor of rg through the shell. The default prompt makes the change, runs one relevant check and stops.

These are specific, recorded changes; no whole-release speed or memory benchmark is published.

Smoother terminal#

  • Fullscreen by default with wheel and trackpad scrolling; selection and copy follow the painted transcript across scroll and wrapping.
  • Quieter startup and reloads: background work no longer prints warnings, a reload ends in one note, and repeated extension notices show once per 30 s.
  • Paste and attachment chips edit like ordinary text with undo; resize replays history correctly and the Working clock keeps ticking.
  • Fixed stale or duplicated inline images when scrolling (Kitty-protocol terminals), a scrollbar hover crash, and the resume picker quitting octet on Ctrl+D (deleting is now Ctrl+X with a confirmation and recoverable trash).
  • Themes can show the thinking trace expanded; quiet Explored grouping now covers web search, MCP and computer use.

Providers and models#

  • New models: GPT-6.1 Sol (API and Codex) and Mistral Large 4; OpenCode and OpenCode Go show their live catalogs.
  • Model names, prices and capabilities refresh in the background at most every six hours, guarded against zeroed or tenfold price drops.
  • Custom first-party endpoints such as Cerebras keep their real context window; discovery errors name the provider's status and message.
  • Throughput is labelled honestly as end-to-end; one ambiguous provider failure no longer disables hard cost ceilings for the session.
  • Prompt-cache warming (/cache-warming), server-reported inference timing in /status, and an opt-in redacted provider request trace.

Extensions and platforms#

  • Five signed first-party bundles install, update and remove with one command; installing never enables an extension or grants trust.
  • In safe mode, an extension starts only with an explicit host-authority grant, which /extensions can grant and revoke.
  • Computer use and clipboard copy work on Linux desktops: Wayland (Hyprland, Sway, GNOME, KDE) and X11.
  • On Windows: Python extensions start through py -3, ! commands run through Git Bash, file edits and atomic replacement work, elevated sessions work, and computer use no longer hangs.

Reliability and trust#

  • Every native and extension asset is checksummed and Sigstore-signed by the tracked release workflow; the version-pinned installer verifies it.
  • Concurrent conditional writes to one file are serialized on Linux and macOS; removing the last custom provider no longer discards a concurrent writer's registry.
  • Extension crash and startup-handshake fixes found by a real-package matrix, and a new end-to-end suite that drives the real binary through PTY sessions.
  • Removed: the packaged Serve app, its web client, the macOS/iOS companions and the old browser extension. Computer use drives your own browser.

Highlights#

  • Native coding surface: read, edit, write and bash (PowerShell on Windows). Independent reads and shell calls can overlap under full access; mutations and approval-bearing calls remain ordered. Native Search is removed; content search uses rg or grep through the shell.
  • Interactive correctness: model and reasoning changes wait for a safe request boundary; settings apply visibly; paste and attachment chips remain editable text with undo. Fullscreen scrolling retires stale Kitty images.
  • Provider setup and discovery: review-first API-key, subscription and local endpoint setup; explicit removal of saved providers/sign-ins; live OpenCode inventories; bounded background discovery when the model is already known.
  • Sessions and presentation: resumable histories, busy steering/follow-up, selectable built-in themes, transcript selection/copy and Tern native surfaces.
  • Optional integrations: five separately installed bundles: codemode, computer use, MCP, subagents and web search. Installation never enables an extension, grants trust or provisions its optional dependencies.

Changed#

  • Product, SDK source and the five shipped extension manifests use 0.9.5. Extension API versions remain independent; bundled extensions require the exact host version =0.9.5.
  • Removed the packaged Serve application, its web/Apple companions, the native Search tool and the obsolete browser extension.
  • The interactive terminal defaults to fullscreen with app-owned mouse input. --mouse auto retains inline terminal scrollback.
  • Provider-request tracing is opt-in and redacts prompt, credential and output contents. Only the newest four tool-result images are sent to the model.

Qualification#

Surface Qualification boundary
Rust workspace, SDKs and shipped integrations Exact-source automated CI; final run and result recorded on the release page
Linux/macOS native archives Clean release builds, version/host smoke, repeatable packaging, checksums and Sigstore verification; public-install receipts belong to the published artifacts
Windows MSVC archive (preview) Release-workflow native runtime, terminal and extracted-executable ConPTY checks; GNU CI alone does not qualify MSVC
Terminal/model behavior Loopback-provider and PTY evidence, not paid-provider or physical-display acceptance
Pi compatibility Not yet qualified; the adapter is not offered in the release catalog. Source-preview receipts for individual Pi extensions are development evidence

Prior candidate runs and local development tests are not evidence for a different release SHA. The release page distinguishes completed gates from pending or unrun acceptance; a successful build alone is not a passing coding-task smoke.

Known limitations#

  • Full Pi backwards compatibility is not yet qualified, and the adapter does not ship. octet-pi-compat remains source-only experimental work; several unchanged Pi extensions run in the source preview, but Pi 1.0.2 API parity is not established. Installed-Pi lifecycle/command parity, dependency-bearing workflows and cold mirror startup are not release qualifications. Previously installed experimental adapters are not automatically removed or enabled; disable them explicitly if present. Built-in Pi-themed palettes, migration utilities and codemode are separate from this adapter.
  • Live provider, subscription and audio acceptance is not run for this release. Mock-provider tests do not establish account/model availability, billing accuracy or real audio behavior. The reported Windows Codex HTTP 400 issue (#572) remains unresolved pending a redacted request trace.
  • Windows is a preview platform. The MSVC archive passes automated release checks only; attended Windows desktop use, physical-console presentation and provider behavior on Windows are unqualified, and the Codex HTTP 400 report above is Windows-specific.
  • Attended UI/driver journeys remain unqualified. Automated terminal-buffer and ConPTY checks do not establish physical presentation, trackpad behavior in every terminal, or granted desktop-driver behavior.
  • No performance comparison is published. Historical benchmark records are not measurements of this release's final artifacts.
  • Publication channels are independent. npm, Homebrew, crates.io, SDK registries and container registries are not made available by the native release workflow. Only channels with explicit receipts on the release page should be treated as published.