MCPcopy Index your code
hub / github.com/Th0rgal/sandboxed.sh

github.com/Th0rgal/sandboxed.sh @v0.12.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.12.0 ↗ · + Follow
5,253 symbols 14,331 edges 291 files 1,372 documented · 26%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

sandboxed.sh

sandboxed.sh

Self-hosted cloud orchestrator for AI coding agents

Isolated Linux workspaces with Claude Code, OpenCode, Codex, Gemini, and Grok runtimes

Formerly known as Open Agent

Website · Discord · Vision · Features · Ecosystem · Screenshots · Getting Started

sandboxed.sh Dashboard

Ready to deploy? Jump to the installation comparison, or go straight to the Docker guide / native guide.


Vision

What if you could:

Hand off entire dev cycles. Point an agent at a GitHub issue, let it write code, test by launching desktop applications, and open a PR when tests pass. You review the diff, not the process.

Run multi-day operations unattended. Give an agent SSH access to your home GPU through a VPN. It reads Nvidia docs, sets up training, fine-tunes models while you sleep.

Keep sensitive data local. Analyze your sequenced DNA against scientific literature. Local inference, isolated containers, nothing leaves your machines.


Features

  • Multi-Runtime Support: Run Claude Code, OpenCode, Codex, Gemini, and Grok agents in the same infrastructure
  • Mission Control: Start, stop, and monitor agents remotely with real-time streaming
  • Isolated Workspaces: Containerized Linux environments (systemd-nspawn) with per-mission directories
  • Git-backed Library: Skills, tools, rules, agents, and MCPs versioned in a single repo
  • Telegram Integration: Connect bots to missions for chat-based AI assistants with auto-mission creation per chat
  • Automations: Schedule recurring agent runs with cron-like triggers
  • Model Routing: Provider fallback chains with health checks and rate-limit handling
  • MCP Registry (optional): Extra tool servers (desktop/playwright/etc.) when needed
  • OpenAI-compatible Proxy Queue Mode: Optional deferred execution for /v1/chat/completions when all routed providers are temporarily rate-limited
  • Multi-platform: Web dashboard (Next.js) and iOS app (SwiftUI) with Picture-in-Picture

Ecosystem

sandboxed.sh orchestrates multiple AI coding agent runtimes:

  • Claude Code: Anthropic's official coding agent with native skills support (.claude/skills/)
  • OpenCode: Open-source alternative via oh-my-opencode
  • Codex, Gemini, and Grok: Native CLI backends for OpenAI, Google, and xAI coding agents

Each runtime executes inside isolated workspaces, so bash commands and file operations are scoped correctly. sandboxed.sh handles orchestration, workspace isolation, and Library-based configuration management.


Screenshots

Dashboard Overview

Real-time monitoring with CPU, memory, network graphs and mission timeline

Library Skills Editor

Git-backed Library with skills, commands, rules, and inline editing

MCP Servers

MCP server management with runtime status and Library integration


Getting Started

Choose your installation method

Docker (recommended) Native (bare metal)
Best for Getting started, macOS users, quick deployment Production servers, maximum performance
Platform Any OS with Docker Ubuntu 24.04 LTS
Setup time ~5 minutes ~30 minutes
Container workspaces Yes (with privileged: true) Yes (native systemd-nspawn)
Desktop automation Yes (headless Xvfb inside Docker) Yes (native X11 or Xvfb)
Performance Good (slight overhead on macOS) Best (native Linux)
Updates docker compose pull / rebuild Git pull + cargo build, or one-click from dashboard

Docker (recommended for most users)

git clone https://github.com/Th0rgal/sandboxed.sh.git
cd sandboxed.sh
cp .env.example .env
# Edit .env with your settings
docker compose up -d

Open http://localhost:3000 — that's it.

For container workspace isolation (recommended), uncomment privileged: true in docker-compose.yml.

Full Docker setup guide

Native (bare metal)

For production servers running Ubuntu 24.04 with maximum performance and native systemd-nspawn isolation.

Full native installation guide

First-time setup

After installation, follow the Getting Started Guide for: - Configuring your backend connection - Setting up your library repository - Exploring skills and tools - Creating your first mission

AI-assisted setup

Point your coding agent at the installation guide and let it handle the deployment:

"Deploy Sandboxed.sh on my server at 1.2.3.4 with domain agent.example.com"


Documentation

User Guides

Architecture & APIs

Setup Guides

Reference


Development

Setup git hooks

Enable pre-push formatting checks to catch CI failures locally:

git config core.hooksPath .githooks

This runs cargo fmt --check before each push. If formatting issues are found, run cargo fmt --all to fix them.


Status

Work in Progress — This project is under active development. Contributions and feedback welcome.

License

MIT

Extension points exported contracts — how you extend this code

Tool (Interface)
(no doc) [28 implementers]
src/tools/mod.rs
NativeLoopAdapter (Interface)
Per-harness adapter. Phase 1 surface is intentionally narrow — observation only. Phase 2 will add `launch` and `stop` so [3 …
src/backend/native_loops.rs
MissionStore (Interface)
(no doc) [3 implementers]
src/api/mission_store/mod.rs
Agent (Interface)
(no doc) [1 implementers]
src/agents/mod.rs
StatsCardProps (Interface)
(no doc)
dashboard/src/components/stats-card.tsx
Backend (Interface)
(no doc) [5 implementers]
src/backend/mod.rs
StreamingMarkdownProps (Interface)
(no doc)
dashboard/src/components/streaming-markdown.tsx
DesktopStreamProps (Interface)
(no doc)
dashboard/src/components/desktop-stream.tsx

Core symbols most depended-on inside this repo

get
called by 1070
src/api/deferred_proxy.rs
push
called by 666
src/library/mod.rs
as_str
called by 610
src/library/rename.rs
ok
called by 437
scripts/proxy_smoke.py
cn
called by 346
dashboard/src/lib/utils.ts
exists
called by 328
src/task/deliverables.rs
error
called by 202
src/bin/desktop_mcp.rs
success
called by 175
src/agents/types.rs

Shape

Function 3,396
Method 976
Class 543
Interface 231
Enum 107

Languages

Rust74%
TypeScript25%
Python1%

Modules by API surface

src/api/mission_runner.rs434 symbols
src/api/control.rs422 symbols
dashboard/src/lib/api.ts232 symbols
src/api/ai_providers.rs187 symbols
src/api/mission_store/sqlite.rs172 symbols
src/api/telegram.rs129 symbols
src/api/mission_store/mod.rs129 symbols
src/workspace.rs113 symbols
src/api/library.rs102 symbols
src/library/mod.rs98 symbols
src/api/proxy.rs89 symbols
src/bin/orchestrator_mcp.rs85 symbols

For agents

$ claude mcp add sandboxed.sh \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page