{"id":44589930,"url":"https://github.com/Th0rgal/sandboxed.sh","last_synced_at":"2026-02-26T17:01:01.229Z","repository":{"id":332219943,"uuid":"1116744615","full_name":"Th0rgal/sandboxed.sh","owner":"Th0rgal","description":"Self-hosted orchestrator for AI autonomous agents. Run Claude Code \u0026 Open Code in isolated linux workspaces. Manage your skills, configs and encrypted secrets with a git repo.","archived":false,"fork":false,"pushed_at":"2026-02-22T19:40:56.000Z","size":192806,"stargazers_count":248,"open_issues_count":3,"forks_count":25,"subscribers_count":3,"default_branch":"master","last_synced_at":"2026-02-22T20:37:46.190Z","etag":null,"topics":["ai-agents","autonomous-agents","claude","claude-code","coding-assistant","containerization","developer-tools","llm","mcp","opencode","orchestration","self-hosted","workspace-isoaltion"],"latest_commit_sha":null,"homepage":"https://sandboxed.sh","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Th0rgal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"agents.md","dco":null,"cla":null}},"created_at":"2025-12-15T10:15:26.000Z","updated_at":"2026-02-22T20:29:02.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Th0rgal/sandboxed.sh","commit_stats":null,"previous_names":["th0rgal/openagent","th0rgal/sandboxed.sh"],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/Th0rgal/sandboxed.sh","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Th0rgal%2Fsandboxed.sh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Th0rgal%2Fsandboxed.sh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Th0rgal%2Fsandboxed.sh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Th0rgal%2Fsandboxed.sh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Th0rgal","download_url":"https://codeload.github.com/Th0rgal/sandboxed.sh/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Th0rgal%2Fsandboxed.sh/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29865409,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-26T16:38:37.846Z","status":"ssl_error","status_checked_at":"2026-02-26T16:37:58.932Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agents","autonomous-agents","claude","claude-code","coding-assistant","containerization","developer-tools","llm","mcp","opencode","orchestration","self-hosted","workspace-isoaltion"],"created_at":"2026-02-14T07:00:25.408Z","updated_at":"2026-02-26T17:01:01.210Z","avatar_url":"https://github.com/Th0rgal.png","language":"Rust","funding_links":[],"categories":["Container Sandboxes","Related Projects","Uncategorized","Catalog"],"sub_categories":["Quantized Models","Uncategorized","Execution Substrates \u0026 Sandboxing"],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"dashboard/public/favicon.svg\" width=\"120\" alt=\"sandboxed.sh\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003esandboxed.sh\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eSelf-hosted cloud orchestrator for AI coding agents\u003c/strong\u003e\u003cbr/\u003e\n  Isolated Linux workspaces with Claude Code, OpenCode \u0026 Amp runtimes\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cem\u003eFormerly known as Open Agent\u003c/em\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://sandboxed.sh\"\u003eWebsite\u003c/a\u003e ·\n  \u003ca href=\"https://relens.ai/community\"\u003eDiscord\u003c/a\u003e ·\n  \u003ca href=\"#vision\"\u003eVision\u003c/a\u003e ·\n  \u003ca href=\"#features\"\u003eFeatures\u003c/a\u003e ·\n  \u003ca href=\"#ecosystem\"\u003eEcosystem\u003c/a\u003e ·\n  \u003ca href=\"#screenshots\"\u003eScreenshots\u003c/a\u003e ·\n  \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr/\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"screenshots/hero.webp\" alt=\"sandboxed.sh Dashboard\" width=\"100%\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eReady to deploy?\u003c/strong\u003e Jump to the \u003ca href=\"#choose-your-installation-method\"\u003einstallation comparison\u003c/a\u003e, or go straight to the \u003ca href=\"docs/install-docker.md\"\u003eDocker guide\u003c/a\u003e / \u003ca href=\"docs/install-native.md\"\u003enative guide\u003c/a\u003e.\n\u003c/p\u003e\n\n---\n\n## Vision\n\nWhat if you could:\n\n**Hand off entire dev cycles.** Point an agent at a GitHub issue, let it write\ncode, test by launching desktop applications, and open a PR when tests pass. You\nreview the diff, not the process.\n\n**Run multi-day operations unattended.** Give an agent SSH access to your home\nGPU through a VPN. It reads Nvidia docs, sets up training, fine-tunes models\nwhile you sleep.\n\n**Keep sensitive data local.** Analyze your sequenced DNA against scientific\nliterature. Local inference, isolated containers, nothing leaves your machines.\n\n---\n\n## Features\n\n- **Multi-Runtime Support**: Run Claude Code, OpenCode, or Amp agents in the same\n  infrastructure\n- **Mission Control**: Start, stop, and monitor agents remotely with real-time\n  streaming\n- **Isolated Workspaces**: Containerized Linux environments (systemd-nspawn)\n  with per-mission directories\n- **Git-backed Library**: Skills, tools, rules, agents, and MCPs versioned in a\n  single repo\n- **MCP Registry (optional)**: Extra tool servers (desktop/playwright/etc.) when\n  needed\n- **OpenAI-compatible Proxy Queue Mode**: Optional deferred execution for\n  `/v1/chat/completions` when all routed providers are temporarily rate-limited\n- **Multi-platform**: Web dashboard (Next.js) and iOS app (SwiftUI) with\n  Picture-in-Picture\n\n---\n\n## Ecosystem\n\nsandboxed.sh orchestrates multiple AI coding agent runtimes:\n\n- **[Claude Code](https://docs.anthropic.com/en/docs/claude-code)**: Anthropic's\n  official coding agent with native skills support (`.claude/skills/`)\n- **[OpenCode](https://github.com/anomalyco/opencode)**: Open-source alternative\n  via [oh-my-opencode](https://github.com/code-yeongyu/oh-my-opencode)\n- **[Amp](https://ampcode.com)**: Sourcegraph's frontier coding agent with\n  multi-model support\n\nEach runtime executes inside isolated workspaces, so bash commands and file\noperations are scoped correctly. sandboxed.sh handles orchestration, workspace\nisolation, and Library-based configuration management.\n\n---\n\n## Screenshots\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"screenshots/dashboard-overview.webp\" alt=\"Dashboard Overview\" width=\"100%\" /\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\u003cem\u003eReal-time monitoring with CPU, memory, network graphs and mission timeline\u003c/em\u003e\u003c/p\u003e\n\n\u003cbr/\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"screenshots/library-skills.webp\" alt=\"Library Skills Editor\" width=\"100%\" /\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\u003cem\u003eGit-backed Library with skills, commands, rules, and inline editing\u003c/em\u003e\u003c/p\u003e\n\n\u003cbr/\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"screenshots/mcp-servers.webp\" alt=\"MCP Servers\" width=\"100%\" /\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\u003cem\u003eMCP server management with runtime status and Library integration\u003c/em\u003e\u003c/p\u003e\n\n---\n\n## Getting Started\n\n### Choose your installation method\n\n|                          | Docker (recommended)                           | Native (bare metal)                                 |\n| ------------------------ | ---------------------------------------------- | --------------------------------------------------- |\n| **Best for**             | Getting started, macOS users, quick deployment | Production servers, maximum performance             |\n| **Platform**             | Any OS with Docker                             | Ubuntu 24.04 LTS                                    |\n| **Setup time**           | ~5 minutes                                     | ~30 minutes                                         |\n| **Container workspaces** | Yes (with `privileged: true`)                  | Yes (native systemd-nspawn)                         |\n| **Desktop automation**   | Yes (headless Xvfb inside Docker)              | Yes (native X11 or Xvfb)                            |\n| **Performance**          | Good (slight overhead on macOS)                | Best (native Linux)                                 |\n| **Updates**              | `docker compose pull` / rebuild                | Git pull + cargo build, or one-click from dashboard |\n\n### Docker (recommended for most users)\n\n```bash\ngit clone https://github.com/Th0rgal/sandboxed.sh.git\ncd sandboxed.sh\ncp .env.example .env\n# Edit .env with your settings\ndocker compose up -d\n```\n\nOpen `http://localhost:3000` — that's it.\n\nFor container workspace isolation (recommended), uncomment `privileged: true` in\n`docker-compose.yml`.\n\n→ **[Full Docker setup guide](docs/install-docker.md)**\n\n### Native (bare metal)\n\nFor production servers running Ubuntu 24.04 with maximum performance and native\nsystemd-nspawn isolation.\n\n→ **[Full native installation guide](docs/install-native.md)**\n\n### First-time setup\n\nAfter installation, follow the **[Getting Started Guide](docs/getting-started.md)** for:\n- Configuring your backend connection\n- Setting up your library repository\n- Exploring skills and tools\n- Creating your first mission\n\n### AI-assisted setup\n\nPoint your coding agent at the installation guide and let it handle the\ndeployment:\n\n\u003e \"Deploy Sandboxed.sh on my server at `1.2.3.4` with domain `agent.example.com`\"\n\n---\n\n## Documentation\n\n### User Guides\n- **[Getting Started](docs/getting-started.md)** - First-time setup and usage\n- **[Docker Installation](docs/install-docker.md)** - Recommended installation method\n- **[Native Installation](docs/install-native.md)** - Bare metal Ubuntu setup\n\n### Architecture \u0026 APIs\n- **[Harness System](docs/HARNESS_SYSTEM.md)** - Backend integration architecture\n- **[Workspaces](docs/WORKSPACES.md)** - Isolated execution environments\n- **[Mission API](docs/MISSION_API.md)** - Mission lifecycle and control\n- **[Workspace API](docs/WORKSPACE_API.md)** - Workspace management endpoints\n- **[Backend API](docs/BACKEND_API.md)** - Backend configuration\n\n### Setup Guides\n- **[Desktop Setup](docs/DESKTOP_SETUP.md)** - X11/Xvfb configuration for GUI automation\n- **[Amp Proxy Setup](docs/AMP_PROXY_SETUP.md)** - Amp backend proxy configuration\n\n### Reference\n- **[agents.md](agents.md)** - Agent configuration and harness details\n- **[Persistent Sessions Design](PERSISTENT_SESSIONS_DESIGN.md)** - Claude CLI session management\n- **[Debugging Guide](DEBUGGING.md)** - Troubleshooting and debug workflows\n- **[Docker Analysis](docs/DOCKER_ANALYSIS.md)** - Docker setup deep dive\n\n---\n\n## Development\n\n### Setup git hooks\n\nEnable pre-push formatting checks to catch CI failures locally:\n\n```bash\ngit config core.hooksPath .githooks\n```\n\nThis runs `cargo fmt --check` before each push. If formatting issues are found,\nrun `cargo fmt --all` to fix them.\n\n---\n\n## Status\n\n**Work in Progress** — This project is under active development. Contributions\nand feedback welcome.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTh0rgal%2Fsandboxed.sh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTh0rgal%2Fsandboxed.sh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTh0rgal%2Fsandboxed.sh/lists"}