macOS & Linux · early development · orcad engine

Your agents in parallel, in a graph you can fly through.

Cubito is a 3D development environment for coding agents. Every worktree is a node, every fan-out is a litter of branches growing in space, and every agent lives in the scene with its real terminal.

MIT · runs on orcad, the headless runtime extracted from ORCA
Everything is a node
worktree agent terminal fan-out diff orchestration run

Features

grafo.linaje

Your project is a graph

Every worktree is a node in a navigable 3D scene. Which branch spawned which stops being hidden metadata and becomes an edge you can follow with the camera.

agentes.vivos

Agents live in the scene

Every node carries its terminal: real PTYs, streamed over RPC and rendered inside the world. A pulsing amber cube is an agent waiting for your answer, impossible to ignore.

fan-out.camada

One litter, one prompt

From any node, fan out: N child worktrees are born in parallel, each with its own agent, comparable side by side. Look at the litter, pick the winner, merge it.

cómo.funciona

One daemon, one RPC, one scene.

Cubito · frontend 3DThree.js · WebGPU · navigable sceneWebSocket RPC · versioned envelopeworktree.*terminal.*git.*orchestration.*orcad · headless daemongitworktrees +lineagePTYnode-pty,survivesrestartsorchestrationDAG in SQLite
  1. orcad runs in the background

    It is ORCA's headless runtime, no Electron. It registers repos, creates worktrees with parent → child lineage, keeps PTY terminals alive across restarts and coordinates multi-agent runs in SQLite.

  2. Cubito talks to it over WebSocket

    A versioned RPC with an {id, ok, result | error} envelope and keepalives, across four namespaces: worktree.*, terminal.*, git.* and orchestration.*. The runtime is the source of truth: the scene resyncs on reconnect.

  3. The scene makes it spatial

    Three.js draws every worktree as a cube and every lineage as an edge. Agent state lives in the color: blue working, amber waiting for input, grey idle. Pairing with the daemon is E2EE straight from the browser.

runtime.orcad

Restart the daemon. The graph is still there.

Cubito doesn't reinvent orchestration. It runs orcad, the headless runtime extracted from ORCA, as a background daemon and talks to it over its versioned RPC. Repos, worktrees with lineage, PTYs that survive restarts and multi-agent runs are already solved. Cubito makes them spatial.

worktree.*terminal.*git.*orchestration.*
$ node out/orcad/orcad.js --bind 127.0.0.1 --json
● orcad listening · runtime 4f2a9c
$ orca worktree create --name auth-retry --agent claude
… checkout · setup · agent launched
$ kill -HUP orcad && node out/orcad/orcad.js
● restoring 6 nodes…
lineage main → auth-retry — intact
pty claude — reattached
what.we.built

From the fork to the first graph.

Cubito does not start from zero: it is born from ORCA, Stably AI's agent orchestrator, MIT licensed. We kept the engine and changed the window.

10,461

files pruned: Electron shell, desktop renderer, mobile apps and relay.

5.6 MB

is the headless orcad bundle, with zero Electron imports, checked in CI.

30+

CLI agents the engine already orchestrates: Claude Code, Codex, OpenCode and more.

E2EE

browser ↔ orcad pairing validated end to end against a real daemon in Docker.

upstream

full ORCA history retained: the engine stays mergeable.

in progress

the 3D scene: graph layout, camera, terminals rendered as textures.