O3 Code 2.0 is in open beta!

O3 Code 2.0 is in open beta!

O3 Code 2.0 is in open beta. Enable it under Settings → Experimental #3748 — it's a 2-way door, and your v1 workspaces and sessions stay put when you flip back.

Settings → Experimental — Try O3 Code v2 toggle and v1 → v2 migrationSettings → Experimental — Try O3 Code v2 toggle and v1 → v2 migration

Remote workspaces

Every workspace in 2.0 is a cloud workspace. Point your local app at any O3 Code device on the same network — a beefier box across the room, a cloud VM, a teammate's host — and run workspaces on it as if they were local. Terminal, file editor, and chat all behave the same way #3566 #3606, and ports running on the remote surface in your sidebar so your local browser can hit them #3676.

Sidebar with a Cloud workspace group and a remote workspace hover cardSidebar with a Cloud workspace group and a remote workspace hover card

Reimagined diff view

The diff viewer is rebuilt to feel like reviewing a PR on your machine — one infinite-scroll diff with a compact sidebar of changed files, per-file viewed state #3715 #3776, and shift/cmd-click selection across the file list #3683.

v2 Changes pane — infinite-scroll diff with compact file sidebar and review tabv2 Changes pane — infinite-scroll diff with compact file sidebar and review tab

O3 Code CLI

The o3-code CLI is a single static binary that drives the same backend as the desktop app. Sign in with o3-code auth login, then create workspaces, tail terminals, and trigger automations from your shell or CI #3638 #3640.

CLI docs →

A real IDE shell

Tab → Split → Pane with drag-and-drop everywhere — drop panes onto the tab strip to spawn tabs #3809. File tree with git decorations, file editor, a browser pane that keeps state across switches, a fresh terminal (XTerm.js + WebGL, kitty keyboard, OSC links, search), and Electric collections with optimistic updates #3722 — all in one window.

Migration in place

1.x projects and workspaces port directly into 2.0 #3670. The migration is org-idempotent #3775 #3781 #3783, and the migration modal only shows on first onboard #3816.


Also shipped this week

v2 project setup

  • Create or import a project from v2 #3566, with name inferred from folder #3605
  • v2 project settings + setup/relocate path #3606, wired into sidebar #3592
  • Non-setup projects route to settings from the new-workspace modal #3626
  • Auto-create a v2 main workspace on host project setup #3632
  • Keypad loading screen ported to v2 #3788

Scheduled agent runs #3576

Automations now run on a cadence — same execution path as a manual run.

  • Persistent hover card showing branch/PR/status #3813, rename branches inline from it #3793
  • PR state shown as the workspace icon #3694, local/remote/offline state on icons #3649, pending workspaces pinned to top #3655
  • AI generates title + branch together on workspace create #3692
  • Sortable v2 workspaces table #3660
  • Refreshed icons #3755 #3800, branch row dropped (lives in hover card) #3733, open state persists across workspaces #3656
  • Group management — inline rename on create, cleaner ungroup/delete, hover-only actions #3745
  • Mark-as-unread #3773 clears on click #3765, notification hooks play client-side #3675

Cross-workspace terminals

  • Terminal session dropdown lists shells from every workspace #3751 with live shell/process titles #3740
  • Hide other-workspace sessions if you'd rather scope to current #3774

Chat & markdown

  • GPT-5.5 #3808 and Opus 4.7 #3579 in v2 chat
  • Mermaid diagrams in markdown pane #3642, Tiptap tables #3719
  • v1 review comments open in a pane #3596
  • Chat double header collapsed #3805, comment headers consolidated #3803

Improvements

  • Diff pane file viewer (Shift-click for new tab) #3715, tighter file headers #3776, shift/cmd-click selection #3683
  • Configurable v2 link-click behavior #3600, Copy Branch Name in context menus #3635
  • v2 terminal hotkeys backported to v1 #3724, narrow pane header responsiveness #3737, terminal drop hover animation #3769, Ghostty keyboard model #3700
  • v2 file-open honors CMD+O editor choice #3674, agent selection honored in new-workspace modal #3699, task title used as workspace name #3678
  • "Also delete local branch" persists #3681, worktrees under ~/.o3/code/worktrees/<projectId> #3669, AI workspace naming on v2 create #3654
  • Workspace setup loader keypad + scrolling steps #3647, safer terminal agent preset defaults #3546, scaffolded PR action header (gated) #3777

Beyond v2

  • Hosts settings page for managing host access #3768
  • /pricing page + redesigned header/footer IA #3639
  • Marketing product menu simplified, yearly discount surfaced #3691

Bug fixes

  • Terminal — sleep lifecycle #3711, OSC links #3736, resize #3739 #3756, paste auto-submit #3582, Unicode 11 buffer #3581, Shift+Enter in TUIs #3667, connection diagnostics #3801
  • v2 stability across workspace switches #3687, browser passthrough on resize #3744
  • Git correctness — upstream/3-dot/numstat #3543, cross-fork PR attribution #3625, branch-only workspace status #3295
  • Sidebar — new workspaces at top of project #3619, hide rows during destroy #3621, sync #3746, no nav-away on delete #3771, active selection after removal #3767 #3741, delete toast + switch #3661, project settings route #3592, scrollable project dropdown #3628
  • Long workspace names wrap in v1 hover #3603, no overflow on create-error page #3718, DevicePicker dedupe #3593
  • AI naming for OAuth-only users #3580, ask_user vs sandbox prompt #3662, no spurious folder picker on settings nav #3602
  • Host services survive app update #3620, restart adoption #3732, tray org name #3629, ports dropdown failed-host indicator #3787, duplicate clone URLs allowed #3723
  • Automations — list flicker #3772, timezone scheduling #3738
  • Security — shell.openExternal URL allowlist #3650, uuid GHSA-w5hq-g745-h8pq #3680