v0.3.0
A big release — Codex agents are now a first-class citizen alongside Claude Code, the dashboard handles Claude usage limits gracefully, copy-to-clipboard finally works on remote deployments, and a bunch of polish landed throughout.
🤖 Codex agents land as a first-class provider
Codex agents now behave like Claude Code agents in autonomOS — same dashboard, same status, same messaging.
- 🛠️ #228 — Per-agent Codex daemon +
--remoteTUI. Each Codex agent runs a dedicatedcodex app-serversidecar plus a--remoteterminal — the foundation that everything else below builds on. - 📬 #234 — Codex agents can receive messages from other agents.
send()to a Codex agent now drops a message into its thread, just like a Claude Code agent. - 🟢 #236 — Live busy/idle status for Codex. No more flat "running" — status icons reflect what the agent is actually doing.
- 💾 #237 — Codex agents resume across server restarts. Conversation and memory survive a daemon restart instead of forking into a fresh empty thread.
- 🔓 #230 — Codex runs with full access (no bubblewrap). Fixes the "could not find bubblewrap on PATH" warning on Linux. autonomOS is the trust boundary.
- 🎯 #243 — Create-agent panel correctly shows Codex has live status. The capability row was incorrectly hardcoded to "via hooks" — Codex sources status from its event stream instead.
✨ Spawn any provider from anywhere
- 🌐 #231 —
create_agentMCP tool now takes aproviderfield. Agents (like Dispatcher) can spawn Codex or Gemini, not just Claude Code. - 🎨 #242 — Per-provider agent icons in the dashboard. New "Agent Icons" setting picks between provider+status or status-only icons. Defaults to provider+status so you can tell agents apart at a glance.
⏰ Hit your Claude usage limit? autonomOS waits for you
- 🚦 #232 — Queue-send on usage-limit clear. Type your next prompt while capped, click the hourglass, and autonomOS hits Enter for you the moment the limit lifts — even with no dashboard open.
- 🔘 #239 — At-limit toggle UI. The button only appears when you're actually capped, with clear on/off state and a built-in simulation mode for demos.
- 🚨 #233 — Per-pane credential-failure warnings. Each armed pane now gets its own warning when credentials break, instead of only the first one.
- 🧪 #235 — Dev/QA usage-limit simulation control. Demo the queue-send feature without burning a real limit.
🔑 Claude Usage plugin is now zero-touch
- ✨ #221 — Auto-detect your Claude session, no manual cookie paste. Claude Code injects the cookie; a SessionStart hook relays it; the plugin uses it. Works on any install once an agent has run.
- ✅ #218 — Validate your session key on save. No more false "Saved!" for keys that don't actually work. Errors are categorized — credential vs transient — with the right action button.
- 🏢 #219 — Query the right organization. Fixes a 403 for anyone who's also used the Anthropic API — the plugin now picks the org with chat/Max access instead of
memberships[0].
📋 Copy from the terminal — even on remote deployments
- 🌍 #222 — OSC 52 copy works on remote (plain-HTTP) deployments.
navigator.clipboardis undefined in insecure contexts; the dashboard now falls back to an off-screen<textarea>+execCommand("copy"). - 🎉 #224 — "Copied N chars" toast confirms auto-copy. No more silent OSC 52 copies — you see when something hit the clipboard.
- 📍 #225 — Toast moved to bottom-right corner. Less visually intrusive.
🧹 Big cleanup — terminal-only
- 💥 #220 — Removed "view mode" and all non-xterm renderers. Terminal (xterm.js) is now the only view and the only renderer. The
/api/conversationroute, the Ghostty renderer, and 5 dead dependencies are gone — slimmer bundle, simpler mental model. (Breaking change:terminalRenderersetting is silently dropped.)
🩹 Reliability fixes
- 🪟 #208 — Statusline + MCP channel-server bundle into the desktop app. Two runtime-loaded scripts were missing from the bundle — desktop spawns silently lost statusline + agent messaging tools. Fixed with a manifest + boot-time warnings + smoke-test gate.
- 📨 #209 — Silently-dropped starting prompts get re-delivered. Delivery-receipt tracking re-injects the prompt via PTY paste when
UserPromptSubmitnever arrives. Auto-trust watcher uses needle-verified Enters now instead of blind bursts. - 🚀 #227 — Hosted deploys always serve a fresh dashboard.
make prodremoves stale embedded artifacts;make deploydoesn't ship them; the server logs bundle ID + mtime; the dashboard warns when its tab is older than what the server is serving.
📦 Install: curl -fsSL https://raw.githubusercontent.com/aterrylu/autonomOS/main/scripts/install.sh | sh && autonomos start
🖥️ Desktop app: download the universal DMG from the assets below
🔄 Auto-update users (v0.2.0): the desktop app will update itself on next launch
Thanks for using autonomOS! 💛