Open source · MIT licensed15 GitHub stars

Agents do the work.You run the room.

You set one outcome. The orchestrator turns it into scoped packets, sends each to the best-fit agent, then brings every diff and decision back to one room for review.

o8main
Today
Earlier
o8-mobile /Summarize everything that merged today
Risky — worth a look
  1. Lifecycle work (#1292). Touches the machinery that reaps and cleans live agent processes.
  2. Stripe promo codes. Tiny diff, but it's live Pro checkout money — confirm a promo can't 100%-off.
Writeo8.md
Edited 2 files
Worked for 8m 30sRead, Grep, Brain +1
5 tools·2 files·47k tokens
Mission complete · 2 packets merged and archived
Ask anything · / for commands
Opus 4.8
o8
+9 −6main
src-tauri/Cargo.lock+1 −1
@@ −41,7 +41,7 @@
41 name = "o8"
version = "0.1.493"
42+ version = "0.1.514"
43 dependencies = [
o8.md+8 −5
@@ −8,5 +8,8 @@
8 we need local connectivity and
a local-only mode.
9+ BROWSER — the window goes behind
10+ the app on resize; fix occlusion.
11 example:
3 ports
Mission scopedThe orchestrator turns one outcome into bounded work.
try the canvas
Click Canvas in the app window, then explore the full surface below.
16 dispatchable runtimes · one contract

One conversation runs the fleet.

Choose the orchestrator you trust. o8 sends each packet to the supported CLI and model that fit the work, isolates every worker, and brings every result through one review path.

01context held
Choose the orchestrator
Your goalOne orchestrator
02work dispatched
Route each packet
Bounded packetBest-fit runtime
03main untouched
Keep work isolated
WorkerOwn worktree
04then merge
Review before integration
Reviewed diffApproval gate
Desktop, mobile, the o8 CLI, and MCP clients all reach the same missions, reviews, approvals, memory, and audit trail.
Canvas is the other half of o8

The whole room, laid out in front of you.

Drag or scroll0105
Swipe through five real workflows.
01 / 05
Canvas mode

Turn the IDE into a work surface.

Open terminals, browsers, agents, files, and diffs on one board. Move any card, or tile the board when you need structure.

Move cards · Tile board · Zoom · Search
o8CanvasFree layout
100%+FreeGrid
zsh · o8
o8 npm run ship
typecheck · build · sign
release ready
localhost:3010live
localhost:3010
Codex68%
Building landing story68%
approve.ts+3 −1
export async function approve(packet) {
return merge(packet.branch)
+ await requireReviewedHead(packet)
+ await requireOperatorApproval(packet)
Orchestrator

I opened the browser, terminal, worker, and diff together.

Ask o8…
02 / 05
Every artifact stays in view

Work with the thing itself.

Bring files, images, video, localhost, and past sessions onto the same board. Every card reopens from its real resource path.

Files · Media · Browser · Session history
o8CanvasMixed media
100%+FreeGrid
notes.mdfile
Launch notes
Files open in place.

Cards return through their saved resource paths.
reference3 images
demovideo
localhost:3010browser
localhost:3010
Canvas launch storyrestored
Board restored
o8-site · 6 cards
03 / 05
Dispatch from the board

Run the fleet where you can see it.

One prompt becomes visible worker cards. Each one stays attached to its packet, runtime, branch, and status.

Fleet · Single · Fusion · Up to five workers
o8CanvasFleet orchestration
100%+FreeGrid
Dispatch
FleetSingleFusion
Build the Canvas launch story and verify every claim.
4 workers dispatched
Codexpacket 1
hero interaction
running · feat/canvas-1
Claudepacket 2
Canvas copy
review · feat/canvas-2
Geminipacket 3
responsive pass
running · feat/canvas-3
opencodepacket 4
build verification
queued · feat/canvas-4
04 / 05
Review in place

Keep the evidence beside the decision.

Compare the diff with its checks and reviewed head, then approve or steer without leaving the board.

Diff · Checks · Head lock · Operator decision
o8CanvasOperator review
100%+FreeGrid
review diff+412 −0
export async function approve(packet) {
return merge(packet.branch)
+ await requireReviewedHead(packet)
+ await requireOperatorApproval(packet)
Checks passed · head locked
APPROVAL REQUIREDhead locked
Ship the Canvas launch story

TypeScript and production build passed. The expected reviewed head still matches.

ApproveSteer
awaiting operator
05 / 05
The canvas has an API

Tell o8 what to put on screen.

A voice or prompt can open tools, move cards, and render a structured answer on the board. You can still arrange and review the result yourself.

Voice prompt · Visible actions · Persistent board
o8CanvasAgent-controlled canvas
100%+FreeGrid
Symonlistening
“Put the launch plan on Canvas and arrange the evidence beside it.”
Launch planrendered
Canvas launch
  1. Open from the hero
  2. Move through five real modes
  3. Keep mobile swipe native
  4. Review before ship
Rendered by the orchestrator
Evidence2 sources
The plan opened with its supporting material beside it.
1 · launch notes
2 · review packet
list cards
move card
open diff
render note
tile grid
MIT licensed

Steal the code and make o8 yours.

Fork every line, change the interface, add a runtime, replace a workflow, or ship your own build. The app stays free forever with the model subscriptions and keys you already use; Pro pays for the optional managed path.

~/code
$ gh repo fork hurttlocker/o8 --clone
 Cloned o8 into ./o8

$ cd o8 && npm install
 Dependencies ready

$ npm run dev
 o8 is running locally
CLI + MCP

Four ways in. One governed system.

Desktop, mobile, the o8 CLI, and any MCP client reach the same missions, packet reviews, approvals, Brain, and audit trail. Every client goes through the same gates.

Desktopvisual control room
Mobileapprove anywhere
o8 CLIterminal native
MCPany compatible client
o8 governed control plane
one live state · one review path · one audit
shared state
CLIo8 status
CLIo8 packet review --approve
MCPcreate_mission()
MCPcortex_ask()
missionpacketreviewapprovalBrainaudit
Symon · voice across o8 and macOS

Speak to the whole system.

Hold Fn to dictate anywhere. Hold Right Option to ask, act, or run o8. Keep the conversation going from your phone while the Mac stays in control.

Notesfrontmost app
Launch note
The review is ready. I checked the changed head, the tests passed, and the merge is waiting for approval.
polishedlocal history savedRevert
Hold Fn · speak · release
Read-onlyruns immediately
Actionsask first
Destructivealways confirms
Action ledgerundo when safe
o8 mobile + Symon

Run the room from your pocket, by voice.

Catch up on every repo, inspect the work, and make the call from your phone. Ask Symon what changed, then approve, reject, steer, or continue the same session by voice. o8 keeps the review and confirmation rules attached.

01
See the whole room
Commits, tracked repos, agents, approvals, and the next move stay in one live operator view.
02
Ask instead of hunting
Talk to Symon about the screen, open a surface, inspect a diff, or hear the latest checks out loud.
03
Voice reaches the gate
Ask Symon to approve, reject, steer, or continue. The review receipt and confirmation policy stay attached.
Paired to your Mac · live state · governed actions
o8 mobile Home showing 34 new commits, tracked repositories, and the Ask Symon composer
A Symon voice session on iPhone showing an active operations snapshot, approvals waiting for review, and the Follow voice control
16 dispatchable runtimes · one contract

Use the agents you already pay for.

One runtime holds the goal while each packet uses the runtime and model that fit the work. Every worker still uses the same mission, worktree, review, and approval path.

The interface cycles through each state. Choose a step to hold it still.
o8Mission room
MISSION 184
Launch the new o8 story
One outcome becomes scoped packets. Each packet can use the runtime that fits the work.
Rebuild the landing storyClaude Code · packet 1queued
Verify the review pathCodex · packet 2queued
Check mobile approvalGemini · packet 3queued
Worker runtime16 ready
Claude Code
Codex
Gemini
opencode
OpenHands
Goose
Qwen Code
Qoder
Kimi Code
Aider
Pi
Cursor
Grok Build
Intent receivedlive
Governance is the product

Approve what ships.

Each packet stays in its own branch and worktree. o8 opens the diff, runs checks, and holds the merge until the operator approves it.

The interface cycles through each state. Choose a step to hold it still.
o8Review gate
src/lib/merge/approve.ts+3 −1
41 export async function approve(packet) {
42 return merge(packet.branch)
43+ await requireReviewedHead(packet)
44+ await requireOperatorApproval(packet)
45+ return merge(packet.branch)
46 }
typecheck passedhead lockedapproval pending
Review open
Ship review-queue keyboard controls

6 changed lines · 2 checks passed

ApproveSteer
AUDIT TRAIL
review submitted
operator decision pending
merge held
Reviewed head lockedlive
Cortex + Engineering Brain

The fleet remembers the work.

Completed outcomes stay with the repository. The Brain answers with citations, and durable directives require operator acceptance.

The interface cycles through each state. Choose a step to hold it still.
o8Engineering Brain
ASK THE ENGINEERING BRAIN
What did the fleet decide about protected merges?
Searching directives, outcomes, and repo history
PROPOSED DIRECTIVEoperator review
Keep merge authority separate from worker execution.

Proposed from three completed packet reviews. The rule becomes durable only after the operator accepts it.

Waiting for an operator decision
Outcome storedlive
Trust, without theater

Real work. Real repositories.Every decision recorded.

REVIEW RECEIPT 184
Approved
reviewed head locked

We're early, so the proof is concrete: 3 named operating contexts, a public shipping record, 16 dispatchable runtimes, and an MIT codebase. No borrowed logos or invented praise.

Named operating contexts and product proof
Rainwater
Confirmed active use
Spear Global
Confirmed active use
MISTER
Confirmed active use
16 dispatchable runtimes
MIT licensed
Isolated worktrees
Reviewed merge gates
Mobile approval
Voice control
33 releases in 14 days
Rainwater · Spear Global · MISTER
The machine

Built for the machine you already have.

Your machine runs dispatch, review, merge gates, and memory. The agent runtimes use the subscriptions and CLIs you already have.

macOS
Signed release
Windows 11
Public preview
Linux
Public preview
macOS is signed, notarized, and auto-updating. Windows has public MSI and EXE previews with checksums and build attestations; publisher signing remains open. Linux has public AppImage, deb, and rpm previews; the AppImage is GPG-signed, while desktop verification and update delivery remain open.
Download
macOS · Windows · Linux
Trust
Checksums · attestations
Built with
Tauri 2 · Rust core
Your data
SQLite in ~/.o8
The managed layer

Ten machines. One console. Anywhere.

Pro connects up to 10 Macs to your o8 account. Open the web console from any browser, switch machines, and use the live desktop or mobile surface wherever you are.

The Mac stays in control, so o8 must be open on the machine you want to reach.

o8web console
3 / 4 online
Machines
Studio
macOS · connected
Field Mac
macOS · connected
Mac mini
macOS · connected
Laptop
last seen 2h ago
Six more device slots available.
Studio
DashboardMobile connected
Live on Studio
The room is running.
Active agents
4
Waiting on you
2
o8-siteReview ready
mobileRunning checks
docsWaiting for approval
Inference, on us

Useful compute should get cheaper until it feels free.

Every installation gets a limited hosted model allowance without sign-in, provisioned on demand when first used. As serving gets cheaper and the model improves, we'll keep improving that free path too. Pro pays for portable managed services and includes our most generous daily fair-use limits for life.

10
connected Macs

Register ten machines to one account and move between them from the web console.

Fast
managed Brain

Ask and get the managed answer without waiting on a local CLI or bringing another key.

Voice
managed for you

Dictation polish and premium Whisper speech-to-text are included within fair use.

Early
access, always on

Experimental surfaces arrive ahead of the public channel and stay enabled for Pro.

The local core stays free
The full app, 16 dispatchable runtimes, governance, memory, local mobile, and local voice keep working with the subscriptions and CLIs you already use. Pro pays for reach, managed infrastructure, and supported customization without maintaining your own fork.

Run the room.

Download o8, or fork the MIT-licensed repo and build your version.

v0.1.737 · macOS release · Windows and Linux previews
Windows runtime verified · checksums and build attestations on every preview
Explore Pro