Aquablu R&D · Agent orchestration · 2026
Orbit
Keep the mission intact when the agents change.
Orbit began as a way to automate planned work across development, user feedback, and campaigns involving multiple projects. Feedback had its own review paths, with automated checks and human decisions at different points in the flow.
I defined, designed, and built the program: the mission model, agent coordination, approval and recovery workflows, and the interfaces for people and agents.
Unreleased R&D. A working exploration, not a shipped customer platform.
Many sessions. A shared objective.
The agent is replaceable. The mission holds the context, decisions, and evidence that make the next session useful.
Many agents.
One mission.
Sessions can change. The objective, decisions, and evidence stay with the work.
Designing for continuity and control.
Sessions are disposable. The objective is not.
Keeping the mission separate from the session executing it is what made everything else possible: recovery, handoff, and an honest record.
Autonomy belongs in configuration.
How much an agent may do alone should be a project decision that is compiled, versioned, and inspectable, not something buried in a prompt.
Interruption is the normal case.
Connections drop, context runs out, and machines restart. Resume, restore, and replace have to be designed in from the start.
Explore the architecture and integration boundaries
One mission, wherever the work runs.
Requests arrive from a terminal, an API, an AI client over MCP, or a tracker. Orbit decides how the work enters the project, then launches agent sessions on a laptop, a remote host over SSH, a container, or a cluster. When a session is lost, the mission is not.
Requests arrive
- CLI
- API
- MCP
- Web
- Trackers
- Program
- direct-bugfix · governed
- Sessions
- 3 launched · 1 replaced
- Decisions
- 1 approved
- Evidence
- PR · checks · notes
Durable state · Postgres
Sessions run wherever the work is
- Laptop · tmuxClaude CodeRunningShaping complete
- Remote host · SSHCodexRunningConnection lost
- Container · DockerClaude CodeResumed with mission history
- Cluster · KubernetesAny supported agentAvailable
Program rules · Budgets · Approvals · Recovery history · Delivery evidence
Built to be swapped out.
Every external dependency sits behind a plugin slot, so the control plane does not care which agent, runtime, or tracker a project uses.
Agent
Who does the work
- Claude Code
- Codex
- Gemini
- Cursor
- OpenCode
- Aider
- OpenHands
- SWE-agent
Runtime
Where a session runs
- tmux
- Process
- SSH
- Docker
- Container
- Kubernetes
Tracker
Where requests come from
- GitHub
- GitLab
- Linear
- Asana
Source control
Pull requests and CI
- GitHub
- GitLab
Notifier
How people are asked to decide
- Slack
- Desktop
- Webhook
Terminal
How a person attaches to a session
- iTerm2
- Web
$ orbit request submit site "Investigate flaky CI and propose the fix"
$ orbit status --watch
$ orbit session restore ses-142 # pick up where the lost session stopped
$ orbit decision resolve dec-17 --message "Approved"One source of truth, many surfaces.
The CLI, API, MCP, and web interface all read and change the same state, so people and agents never work from different versions of events.
Draw the boundaries early.
Agents and harnesses change every few months. Explicit seams for agents, runtimes, trackers, and notifiers kept each change contained.
What remains useful.
Company needs were still taking shape and priorities kept shifting, making stable workflows difficult to define. Orbit remained unreleased, but useful parts can be adapted to current agent harnesses.
The emphasis on CLI and MCP interfaces kept the design independent of any single agent. Review paths, quality checks, and human approval points remain useful foundations for coordinating work and improving it over time.
TypeScript · Node.js · Next.js · React · PostgreSQL · Rust sidecar · MCP integration protocol