by Th0rgal
Safe runtime for autonomous on-chain AI agents: isolated sandboxes, Library skills, encrypted secrets.
# Add to your Claude Code skills
git clone https://github.com/Th0rgal/sandboxed.shLast scanned: 5/20/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-05-20T07:43:56.641Z",
"semgrepRan": false,
"npmAuditRan": true,
"pipAuditRan": true
}sandboxed.sh is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by Th0rgal. Safe runtime for autonomous on-chain AI agents: isolated sandboxes, Library skills, encrypted secrets. It has 491 GitHub stars.
Yes. sandboxed.sh passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/Th0rgal/sandboxed.sh" and add it to your Claude Code skills directory (see the Installation section above).
sandboxed.sh is primarily written in Rust. It is open-source under Th0rgal on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh sandboxed.sh against similar tools.
No comments yet. Be the first to share your thoughts!
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
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.
sandboxed.sh is the mission-execution backend of a two-part system — the
half an autonomous agent drives over MCP to actually build things in
isolation. The other half is a coordinator that decides what to do and
when: we run our own Hermes fork —
hermes-agent (the Python gateway +
CLI) and its bundled hermes-desktop Electron app (apps/desktop/) — but any
MCP-capable assistant works. The agent never runs untrusted code itself; it
hands each unit of work to sandboxed.sh, which runs it in a throwaway
workspace/container and streams back structured results. Four concepts tie the
system together:
| Concept | What it is | Where it lives |
|---|---|---|
| Project | The durable unit of work (an audit, a paper, a benchmark). First-class object with a mode (active / blocked / paused), an autonomy grant (merge authority, budget, parallelism), tracks, and open decisions. |
projects.db on the sandboxed.sh host, served at /api/projects/* |
| Controller | A coordinator cron that wakes on a schedule, reads its control conversation + GitHub + the project state, and dispatches work. Each controller owns its project(s) and reports structured status trailers; it can also launch missions on another project when it depends on that project's output (see Coordination between controllers). | Coordinator (e.g. a Hermes cron with the project MCP tools) |
| Conversation (control session) | The durable Hermes chat thread; the one bound to a project is its control conversation — where you (or the controller) talk. Continuations roll over, so it's addressed by route, not a frozen ID. | Coordinator, binding stored in projects.db |
| Mission | One unit of autonomous execution: an agent in an isolated workspace/container running a harness (Claude Code, Codex, …) that writes code, runs builds, opens PRs. Tagged with project/track. |
sandboxed.sh workspaces |
decide / coordinate build / execute
┌────────────────────────────────┐ ┌────────────────────────────────────┐
│ Coordinator (Hermes) │ MCP │ sandboxed.sh │
│ ├─────▶│ │
│ controller crons │ │ missions in isolated workspaces │
│ control conversations │ │ (systemd-nspawn / Docker) │
│ project tools + start_mission │◀─────┤ projects.db · event stream │
└────────────────────────────────┘ SSE/ └────────────────────────────────────┘
webhooks
Controllers write structured project state through MCP tools (list_projects,
update_project_status, set_project_grant, link_mission_to_project, …)
instead of free text; a state ingestor also folds controller status trailers
from deliveries into the project record, so the roster stays current even for
text-only updates.
Rule of thumb: a controller drives a project through its control conversation by dispatching missions. Decide/coordinate → the assistant; build/execute in isolation → a sandboxed mission. In-conversation subagents are for quick reasoning and decomposition; anything needing a real filesystem, git, builds, or a PR gets dispatched as a mission.
The same project roster is rendered by three surfaces: the web dashboard's
board (/), the desktop Projects board, and the iOS app's Projects tab.
/v1/chat/completions when all routed providers are temporarily rate-limiteddocs/INFERENCE_PROTOCOLS.mdThe coordinator — the agent that decides what to run and drives sandboxed.sh over MCP:
apps/desktop/). It owns the control
conversations, controller crons, and the project MCP tools (start_mission,
link_mission_to_project, …). Any MCP-capable assistant can take this role;
Hermes is the reference implementation. See its
FORK.md for how
our changes are layered on upstream to stay easy to update.The runtimes — the coding agents sandboxed.sh executes inside isolated workspaces:
.claude/skills/)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.
| 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) |