Orbital

agent
Security Audit
Warn
Health Warn
  • License — License: NOASSERTION
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 5 GitHub stars
Code Pass
  • Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
  • Permissions — No dangerous permissions requested
Purpose
This tool provides a management and delegation framework for AI agents. It allows you to organize projects, autonomously dispatch tasks to sub-agents (like Claude Code or Gemini CLI), and manage them remotely via mobile approvals and budget controls.

Security Assessment
Risk: Medium. The application inherently executes shell commands and orchestrates various sub-agents to perform work. It handles highly sensitive data, requiring API keys for 15+ LLM providers and storing credentials in the OS keychain. It also includes browser automation capabilities with anti-detection features. While the light code scan found no hardcoded secrets or dangerous patterns, and the system utilizes sandboxing (macOS Seatbelt, Windows sandbox user) for execution, the extensive system access required by its core design warrants careful handling.

Quality Assessment
The project is very new and actively maintained, with recent repository pushes. However, it is still in the Alpha stage and has very low community visibility (5 GitHub stars), meaning it has not been widely tested or vetted by a large user base. It explicitly states no Python or Node experience is required, offering straightforward pre-built installers (.exe and .dmg) for desktop users. While an open-source license badge is present in the documentation, the automated scan flagged the license status as "NOASSERTION," which is a minor administrative discrepancy to note.

Verdict
Use with caution: the codebase appears clean and utilizes sandboxing, but its alpha status, low community trust, and extensive system access require you to monitor its permissions closely.
SUMMARY

Give your agents a project, not a prompt

README.md

Autonomous agent dispatching work to Claude Code on a scheduled trigger

Scheduled trigger fires → management agent dispatches a task to Claude Code autonomously

Claude Code requests approval to create a folder — approved from phone

Claude Code needs to create a folder → approval request sent to your phone → approved → work continues

Give your agent a project, not a prompt.

Define a workspace, a supervisor, sub-agents, and a budget.
Leave the rest to your agents while you manage them remotely.

Windows Installer (.exe)  ·  macOS Installer (.dmg)  ·  Watch the demo

Set up in under 5 minutes. No Python or Node required.

Orbital

Orbital

License: GPL-3.0 Platform: Windows Platform: macOS Status: Alpha


What You Get

  • Project-based agent management — each project is a folder with its own workspace, instructions, budget, and autonomy level
  • Sub-agent delegation — the management agent monitors your workspace, evaluates progress against goals, and dispatches work to Claude Code, Codex, Gemini CLI, or any CLI agent
  • Triggers — set up a cron job or file watcher so the management agent checks in regularly and kicks off sub-agents without you
  • Approval workflows — agents pause before risky actions; approve from desktop or phone
  • Sandboxed execution — agents only access folders you specify (Windows sandbox user, macOS Seatbelt)
  • Mobile supervision — manage agents from your phone via QR code pairing
  • Budget controls — per-project spending limits with configurable actions
  • 15+ LLM providers — Anthropic, OpenAI, DeepSeek, Ollama, Moonshot, Groq, Gemini, and more
  • Browser automation — 23 browser actions via Patchright with anti-detection
  • Persistent context — PROJECT_STATE.md, DECISIONS.md, LESSONS.md maintained across sessions
  • Self-improving skills — agent creates reusable skills from multi-step workflows and consults them before repeating similar tasks
  • Credential store — API keys and website passwords in OS keychain, never exposed to chat

Screenshots

Orbital dashboard with multiple agents running in parallel

Multiple agents running in parallel — each with its own project, triggers, and session history

Mobile approval card — approve agent actions from your phone

An agent needs permission to run a command — approve or deny from your phone

Sub-agent executing delegated work and reporting back

Management agent delegates Phase 1 to @claudecode, monitors progress, and reviews the result


Quick Start

  1. Launch Orbital — the setup wizard guides you through three steps:

    Step 1 — LLM Provider: Connect your API key. Supports Anthropic, OpenAI, Moonshot, DeepSeek, and 15+ other providers.

    Setup wizard step 1 — configure your LLM provider and API key

    Step 2 — Sandbox: Orbital creates an isolated user account so agents can't access your personal files or network without permission.

    Setup wizard step 2 — sandbox isolation confirmation

    Step 3 — Browser Warm-up: Sign into sites your agents will need (Google, GitHub, etc.) so they can browse without getting blocked by CAPTCHAs.

    Setup wizard step 3 — browser warm-up for agent web access

  2. Create a project — give it a name, pick a workspace directory, set an autonomy level

New project creation with workspace and autonomy settings

  1. Chat — type a task in the chat bar and the management agent handles it
  2. Approve or automate — review tool calls in the approval card, or set autonomy to hands-off

How It Works

Orbital treats each unit of agent work as a project — not a chat session. A project binds a workspace directory, evolving instructions, an autonomy preset, a budget, approval rules, and persistent state into one supervised unit. The agent works inside the project. You supervise from anywhere.

+------------------------------------------------------+
|                    Frontend (React SPA)               |
|  Chat UI . Approval Cards . Project Settings . Files  |
+-------------------------+----------------------------+
                          | REST + WebSocket
+-------------------------v----------------------------+
|                  Daemon (FastAPI + uvicorn)            |
|                                                       |
|  +--------------+  +--------------+  +--------------+ |
|  | AgentManager |  | SubAgentMgr  |  | TriggerMgr   | |
|  | (lifecycle)  |  | (delegation) |  | (cron/watch) | |
|  +------+-------+  +------+-------+  +--------------+ |
|         |                 |                            |
|  +------v-------+  +------v-------+                    |
|  | Agent Loop   |  | Transports   |                    |
|  | (streaming)  |  | Pipe/PTY/SDK |                    |
|  +------+-------+  +--------------+                    |
|         |                                              |
|  +------v-------+  +--------------+  +--------------+  |
|  | LLM Provider |  | Tool Registry|  | Autonomy     |  |
|  | (multi-SDK)  |  | (shell,file, |  | Interceptor  |  |
|  |              |  |  browser...) |  | (approve/deny|  |
|  +--------------+  +--------------+  +--------------+  |
|                                                        |
|  +--------------------------------------------------+  |
|  | Platform Layer (Windows sandbox / macOS / Linux)  |  |
|  +--------------------------------------------------+  |
+-------------------------+----------------------------+
                          | WebSocket tunnel
+-------------------------v----------------------------+
|              Cloud Relay (Node.js)                     |
|  REST proxy . Event forwarding . Push notifications   |
|  Device pairing . Phone WebSocket bridge              |
+------------------------------------------------------+

Key design decisions:

  • Isolation: OS-level sandboxing (Windows sandbox user, macOS Seatbelt, Linux bubblewrap planned)
  • Fail-closed interceptor: Any approval system error results in DENY, never ALLOW
  • Single daemon: PID file enforcement prevents multiple instances

Feature Deep Dives

Orbital Is / Is Not
Orbital IS Orbital IS NOT
An autonomous agent with sandbox boundaries and approval gates A cloud service — everything runs on your machine
A sub-agent coordinator: Claude Code, Codex, Gemini CLI (supports ACP transport) + claude-agent-sdk An OpenClaw fork — custom agent loop, built from scratch
Mobile management: approve actions, browse workspace files, upload from phone A chat wrapper — agents run continuously via cron and file watchers
Budget controls, autonomy presets, credential management (OS keychain) Fully autonomous God Mode (yet) — scheduler-driven today, full autonomy on the roadmap
How Orbital Compares
Orbital OpenClaw Claude Cowork
Workspace = folder on your machine ✅ (project dir holds agent state, sessions, outputs — all version-controllable) ✅ (agent workspace with memory files) Partial (selected folder access, but agent runs in a sandboxed VM — state lives outside your project)
Structured project state ✅ (PROJECT_STATE.md, DECISIONS.md, LESSONS.md — maintained by the agent across sessions) Partial (MEMORY.md + daily notes, but no structured project/decision tracking) ❌ (session-scoped context)
Sub-agent delegation to external tools ✅ (dispatches to Claude Code, Codex, Gemini CLI, or any CLI agent) Partial (child sessions on different models, but not external CLI agents) ❌ (internal Claude sub-agents only)
File-watch triggers ✅ (agent reacts to file changes in workspace)
Scheduled triggers ✅ (cron via natural language) ✅ (openclaw cron with per-job tool allowlists) ✅ (/schedule for recurring tasks)
Approval workflows ✅ (configurable autonomy presets — hands-off, check-in, supervised) Exec-only (shell command approvals via CLI or IM inline buttons)
Mobile supervision ✅ (full dashboard — approve, deny, browse files, upload from phone) Partial (Android app, Chrome extension) Partial (Dispatch — send tasks from phone, no approval gate)
Budget controls ✅ (per-project hard limits in USD) ❌ (subscription-based)
Sandbox isolation ✅ (OS-level sandbox user, enabled by default) Opt-in (Docker containers, not default — requires Docker) ✅ (sandboxed VM, but Computer Use runs outside it)
Local-first ✅ (desktop app)
Open source GPL 3.0 MIT
Project & Workspace Model

Each project maps to a workspace directory and maintains its own sessions, triggers, and configuration.

File explorer — browse and upload files in the project workspace

Browse, preview, and upload files in each project's workspace

{workspace}/
+-- orbital/                            # Operational metadata
|   +-- AGENT.md                        # Shared agent directive
|   +-- {project-slug-a3f2}/           # Per-project namespace
|       +-- sessions/
|       |   +-- {session_id}.jsonl      # Append-only session log
|       +-- instructions/
|       |   +-- project_goals.md
|       |   +-- user_directives.md
|       +-- PROJECT_STATE.md            # Current task state
|       +-- DECISIONS.md                # Decision log
|       +-- LESSONS.md                  # Learned patterns
|       +-- SESSION_LOG.md              # Last 3 session summaries
|       +-- CONTEXT.md                  # External reference material
+-- orbital-output/                     # Agent work artifacts
    +-- {project-slug-a3f2}/
        +-- screenshots/                # Browser screenshots
        +-- pdfs/                       # Saved PDFs
        +-- shell-output/               # Shell command output

~/orbital/                              # Home global (daemon infrastructure)
+-- daemon.pid                          # Singleton enforcement
+-- daemon-state.json                   # Agent heartbeat state
+-- device.json                         # Device identity
+-- browser-profile/                    # Shared browser profile
+-- credential-meta.json                # Credential metadata

Session format: One JSON line per message (role, source, content, timestamp, tool_calls). Append-only with file locks. Never modified except during compaction.

Quick Tasks

The sidebar includes a Quick Task section for fire-and-forget interactions. Scratch projects skip the full project creation flow — useful for one-off tasks that don't need a dedicated workspace.

Quick Task — browsing Hacker News and returning structured results

Autonomy & Approval System

Three autonomy presets control how much supervision agents receive:

Preset Shell File Write Browser Description
Hands-off Auto Auto Auto Maximum autonomy. Only request_access requires approval.
Check-in Approval Approval Write only Balanced. Default for external agents.
Supervised Approval Approval All except read Maximum oversight.

Project settings — autonomy presets and budget controls

Pick an autonomy level and set budget limits per project

Approval flow:

  1. Interceptor catches tool call based on autonomy rules
  2. Frontend shows an Approval Card with tool name, arguments, and context
  3. User can Approve, Deny, or Auto-approve for 10 minutes
  4. Per-action bypass: same tool+args auto-approved for 60 seconds

Mobile approval card — approve agent actions from your phone

Approve agent actions from your phone — with full context and optional guidance

Sub-Agent Delegation

Orbital is not tied to a single AI tool. The management agent plans and delegates, while specialized sub-agents execute. Any CLI-based agent can be registered via a manifest file.

Management agent creating a plan and delegating to sub-agents

The management agent creates an implementation plan...

Sub-agent executing delegated work and reporting back

...delegates Phase 1 to @claudecode, monitors progress, and reviews the result

Transport types:

Transport Use Case
Pipe stdin/stdout subprocess, JSON streaming
PTY Pseudo-terminal for interactive agents — Gemini CLI, Codex, Copilot CLI, Cline, Goose
SDK Direct Claude SDK integration
ACP Agent Communication Protocol — supported but not the current default

Note: ACP transport is implemented in the daemon but agent manifests currently default to PTY for stability. Switching any ACP-compatible agent (Gemini CLI, Codex, Copilot CLI, Cline, Goose) to ACP is a one-line manifest change — see docs/acp-migration.md (coming soon).

Built-in Tool Suite

The management agent has access to these tool categories:

Category Tools Description
Shell shell Command execution with network-aware detection
File read, write, edit, glob, grep File operations within workspace
Browser 23 actions via Patchright Navigate, click, type, extract, screenshot, multi-tab
Triggers create_trigger, list_triggers, update_trigger, delete_trigger Schedule and file-watch triggers via natural language
Credentials request_credential Agent-initiated credential request — opens secure modal
Delegation delegate Route tasks to sub-agents
Browser Automation

Built on Patchright (a Playwright fork with anti-bot-detection):

  • Stealth mode: Anti-automation detection scripts injected into every browser context
  • Shared profile: One browser profile across all projects — log into services once, all agents share cookies
  • Accessibility-first: snapshot returns an accessibility tree with [ref=eN] element references for reliable interaction
  • 23 browser actions: navigate, click, type, fill, press, hover, select, drag, upload, snapshot, screenshot, extract, search, evaluate, tab management, PDF export, web search, URL fetch

Agent browsing arxiv.org and scanning research papers

An agent browsing arxiv.org — scanning for AI reasoning papers on a daily schedule

Continuous Operation & Triggers

Agents run continuously via triggers — no manual intervention needed. Create triggers through natural language in the chat:

"Watch the uploads/ folder for new .jpg files and analyze them"
"Run a research scan every morning at 6 AM"

The management agent translates this into a create_trigger tool call with the appropriate type and parameters.

Trigger types:

Type Configuration Example
Schedule Cron expression + timezone 0 6 * * * (daily at 6 AM)
File Watch Path + glob patterns + debounce uploads/*.jpg, 5s debounce

File watch trigger — monitoring auth/ directory for .py changes

File watch trigger: monitors auth/ for .py changes, runs tests on every save. 22 runs so far.

Scheduled trigger — daily research scan at 6 AM

Scheduled trigger: scans arxiv, Hacker News, and tech blogs every day at 6 AM. 12 runs.

Real-world example — Health Tracker with file watch:

Setting up a meal photo file watcher from phone      Agent automatically analyzing a meal photo

Left: "Watch uploads/ for meal photos and track calories." Right: Drop a photo, get instant nutritional analysis.

Context Management & Compaction

Six workspace files maintained by the LLM at session boundaries:

File Purpose
AGENT.md Shared agent directive (global)
PROJECT_STATE.md Current task, in-progress work
DECISIONS.md Decision log with rationale
LESSONS.md Learned patterns and pitfalls
SESSION_LOG.md Last 3 session summaries
CONTEXT.md External references, API docs

Cold resume: On session start, these files are assembled into the system prompt to reorient the agent — no context lost between sessions.

Compaction (when context usage exceeds 80%): memory flush, LLM-driven summarization of older messages, recent messages kept intact, post-compaction reorientation with project goals and current state.

Mobile Remote Control

Control agents from your phone on the local network or via a cloud relay.

Mobile dashboard — all projects at a glance      Agent completing work after mobile approval

Left: Project dashboard on phone. Right: Agent completes its research after you approve from anywhere.

Local network: Scan the QR code in Settings to open Orbital on your phone via LAN.

QR code for mobile access on local network

Scan to open Orbital on your phone — same Wi-Fi network required

Cloud relay (optional): Deploy a relay server for access outside your home network. Push notifications for approval requests, budget alerts, and agent status changes.

Cost Controls & Budget Limits

Per-project budget limits prevent runaway spending:

Setting Description
Budget Limit (USD) Maximum spend for the project
Budget Action ask (prompt user), pause (stop agent), or deny (block LLM calls)
Spent Running total with reset option

The agent loop tracks cumulative token usage and computes cost using per-model pricing from the provider registry. When the budget threshold is reached, the configured action fires and a push notification is sent.

Credential Management

Credential store — website passwords stored in system keychain

Website credentials stored in your system keychain. Agents always ask permission before using them.

  • API keys: Stored in OS keychain (keyring), masked in API responses, per-project BYOK override
  • Website credentials: Metadata in credential-meta.json, values in OS keychain. The request_credential tool lets agents request credentials mid-session via a secure modal — credentials never appear in chat history.
LLM Provider Routing & BYOK

15+ providers supported out of the box:

Anthropic, OpenAI, DeepSeek, Moonshot (Kimi), Groq, Google Gemini, Azure OpenAI, Ollama, and more.

  • SDK routing: Anthropic SDK for Anthropic, OpenAI SDK for OpenAI-compatible providers
  • Per-model metadata: Display name, tier, context window, max output, capabilities (vision, tool use, streaming), pricing
  • Fallback rotation: When the primary provider fails, the loop rotates to fallback providers with error classification (transient, rate limit, abort)
Loop Safety Guards

The agent loop includes multiple safety mechanisms to prevent runaway execution:

Guard Threshold Behavior
Token budget 500K tokens (configurable) Hard stop on cumulative usage
Repetition detection 5 identical action hashes Forces different approach
Ping-pong detection 3 identical consecutive pairs Breaks alternating cycles
Circuit breaker 2 consecutive identical errors Blocks tool until new user message
Context overflow 3 consecutive overflows Hard stop after progressive reduction
Desktop App & System Tray

Orbital ships as a desktop application bundled with PyInstaller:

  • System tray: Agent activity status, quick access menu, running port in tooltip
  • Native window: Embeds the React frontend via pywebview — no browser needed
  • Daemon lifecycle: Desktop app spawns the daemon on launch, manages port allocation, cleans up on exit
  • Sleep prevention: Blocks system sleep while agents are active (Windows SetThreadExecutionState), re-allows when idle

Skills system: Agents create reusable skills from multi-step workflows and consult matching skills before starting similar tasks. Skills are stored as SKILL.md files in the workspace and managed through the Settings UI.

Skills — operational patterns the agent follows

Skills like Efficient Execution, Learning Capture, and Task Planning shape how the agent works


Installation

Windows

  1. Download Orbital-Setup-1.0.0.exe from Releases
  2. Run the installer and follow the prompts
  3. Launch Orbital from the Start Menu or desktop shortcut
Windows SmartScreen Warning

Orbital is not yet code-signed, so Windows will show a security warning:

Windows protected your PC — Microsoft Defender SmartScreen prevented an unrecognized app from starting.

Click "More info" then "Run anyway". Code signing will be added in a future release.

macOS

  1. Download Orbital-1.0.0-macOS.dmg from Releases
  2. Open the DMG and drag Orbital to your Applications folder
  3. Launch Orbital from Applications or Spotlight

Requires macOS 13 (Ventura) or later. Apple Silicon and Intel supported.

macOS Gatekeeper Warning

Orbital is not yet code-signed, so macOS will block it on first launch:

"Orbital" can't be opened because Apple cannot check it for malicious software.

To proceed:

  1. Open System Settings → Privacy & Security
  2. Scroll down — you'll see "Orbital was blocked"
  3. Click "Open Anyway"

This is only needed once. Code signing will be added in a future release.

From Source

# Clone the repository
git clone https://github.com/zqiren/Orbital.git && cd Orbital

# Install Python dependencies (Python 3.11+)
pip install -e ".[desktop]"

# Install frontend dependencies (Node.js 18+)
cd web && npm install && cd ..

# Start the daemon
python -m uvicorn agent_os.api.app:create_app --factory --port 8000

# Start the frontend dev server (separate terminal)
cd web && npx vite --host 127.0.0.1 --port 5173

Open http://localhost:5173 in your browser. The setup wizard runs on first launch.

Note on Sleep/Shutdown

Orbital prevents system sleep while agents are actively working (via OS-level sleep inhibition on Windows and macOS). When all agents are idle, sleep is re-allowed. The system tray icon shows current agent activity status.


Development

Backend

# Start daemon
python -m uvicorn agent_os.api.app:create_app --factory --port 8000

# Restart with fresh code
bash scripts/restart-daemon.sh

Frontend

cd web
npm install
npx vite --host 127.0.0.1 --port 5173

Key Paths

Component Path
FastAPI app factory agent_os/api/app.py
Agent loop agent_os/agent/loop.py
Tool implementations agent_os/agent/tools/
Autonomy interceptor agent_os/agent/interceptor.py
LLM providers agent_os/agent/providers/
Trigger manager agent_os/daemon_v2/trigger_manager.py
Browser manager agent_os/daemon_v2/browser_manager.py
Desktop entry point agent_os/desktop/main.py
System tray agent_os/desktop/tray.py
Frontend components web/src/components/

Testing

# Unit + platform tests
python -m pytest tests/unit/ tests/platform/ -q \
  --ignore=tests/platform/test_consumer3_wiring.py

# TypeScript check (zero errors expected)
cd web && npx tsc --noEmit

# Daemon integration test
bash scripts/restart-daemon.sh
curl http://localhost:8000/api/v2/projects

Known pre-existing test notes:

  • test_consumer3_wiring.py — requires Windows sandbox user configuration
  • test_e2e.py, test_user_stories.py — require a real LLM API key set via AGENT_OS_TEST_API_KEY

Roadmap

Shipped

  • Multi-provider LLM routing with fallback rotation
  • Three autonomy presets with cascade to sub-agents
  • Streaming chat with real-time WebSocket events
  • Browser automation with anti-detection (Patchright)
  • Continuous operation via schedule and file-watch triggers
  • Natural language trigger creation
  • Cloud relay with push notifications and device pairing
  • Context compaction with pre-compaction memory flush
  • Per-project budget limits and cost tracking
  • Credential management (API keys + website credentials)
  • Desktop app with system tray and native window
  • Agent loop safety guards (iteration cap, repetition, ping-pong, circuit breaker)
  • OS-level sleep prevention during agent activity
  • Sub-agent delegation with @mention routing

Next

  • Webhook triggers — HTTP endpoint that fires agent tasks on incoming webhooks
  • Pipeline triggers — Chain project outputs as inputs to other projects
  • Network isolation — Per-project domain allowlists enforced at OS level
  • Linux sandboxing — bubblewrap enforcement
  • Code signing — Eliminate SmartScreen warnings on Windows
  • Auto-resume on daemon restart — Restore in-progress sessions

License

Orbital is licensed under the GNU General Public License v3.0.

Orbital - An operating system for AI agents
Copyright (C) 2026 Orbital Contributors

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

Reviews (0)

No results found