Skip to content

Guide · Agent skill

How to use the Sandboxed Coding Agent skill (coding-agent)

Updated · written with AI from the project's own documentation and checked against our catalogue data

The coding-agent skill is a set of instructions that teaches an AI agent how to run Claude Code, OpenCode, Codex or another coding agent inside a persistent smolvm virtual machine, with your project folder mounted in. It is useful if you want an agent to run with full permissions, such as skip-permissions mode, without giving it free rein over your computer. By the end of this guide you will know what the skill does, how to install it, how to ask for it in plain language, and how to check that the setup works.

Sandboxed Coding Agentsmol-machines/smolvm · Apache-2.0

Quick start

  1. 1Download and unzip. Download the ZIP from this page and unzip it into ~/.claude/skills/ or a project's .claude/skills/ folder.
  2. 2Check requirements. Confirm smolvm is installed, you have an agent API key on the host, and SSH_AUTH_SOCK is set or the [auth] block is removed.
  3. 3Copy the Smolfile. Copy agent.smolfile into your project as Smolfile and edit the npm install line to list the agents you use.
  4. 4Create and start the machine. Run smolvm machine create with --secret-env, then smolvm machine start. The first start runs init.
  5. 5Run the agent. Use smolvm machine exec with claude --dangerously-skip-permissions or opencode.
  6. 6Verify git. Run git status through machine exec to confirm the repo works without a dubious ownership error.

What does the coding-agent skill make the agent do?

The skill sets up a smolvm machine that holds a coding agent and mounts your project directory inside it. The agent can then run with full permissions and install anything it needs inside the machine. According to the skill, edits to files appear in your project on the host, and git works on the mounted repo.

The machine is the boundary. Because the agent works inside it, the agent does not need to ask before each command, and installs and experiments stay inside the machine rather than on your host.

  • Works with Claude Code, OpenCode, Codex or any other coding agent you list in the install step.
  • Keeps the agent's installed tools in a persistent machine, so later starts are quick.
  • Project files are mounted from the host, so changes show up in your repo.

How do you install the coding-agent skill?

Download the ZIP from this page and unzip it. Put the resulting folder in ~/.claude/skills/ to make it available across your projects, or in a project's .claude/skills/ folder to make it available only there.

If you use the Claude apps, you can instead upload the skill under Settings → Capabilities → Skills.

  • Personal install: unzip into ~/.claude/skills/
  • Project install: unzip into the project's .claude/skills/
  • Claude apps: Settings → Capabilities → Skills

What do you need before you start?

The skill needs smolvm installed on your host. It was tested on smolvm v1.27.4 and v1.29.0. You also need an Anthropic API key or another agent API key on the host, and Node/npm inside the machine to install the agents, which the Smolfile's init step handles.

The Smolfile forwards your SSH agent, so SSH_AUTH_SOCK must be set on the host unless you remove the [auth] block.

  • smolvm (tested on v1.27.4 and v1.29.0)
  • An Anthropic API key or other agent API key on the host
  • SSH_AUTH_SOCK set on the host, or the [auth] block removed
  • Node/npm inside the machine, via the Smolfile init step

How do you set up the machine and run the agent?

First, copy the Smolfile into your project and edit the npm install line in init to list the agents you use. Then create and start the machine, passing your API key as a reference so it is read from the host at launch and not written to the machine record. The first start runs init, which the skill describes as under a minute once the image is pulled.

Start the agent with machine exec. For anything else, machine shell gives you a shell in /workspace.

  • Run machine exec --name agent -- git status to check git. It should print the repo status, not 'dubious ownership'.
  • Stop with machine stop --name agent to keep the installed agents; the next start takes about a second.
  • Remove with machine delete --name agent -f; your project stays on the host.
cp docs/coding-agent/assets/agent.smolfile ./Smolfile smolvm machine create --name agent -s Smolfile --secret-env ANTHROPIC_API_KEY=ANTHROPIC_API_KEY smolvm machine start --name agent smolvm machine exec --name agent -it -- claude --dangerously-skip-permissions smolvm machine exec --name agent -it -- opencode

How do you trigger the skill with natural requests?

You do not need special syntax. Describe what you want in plain language. The skill's description says to use it when someone wants to sandbox their coding agent, run it in skip-permissions or YOLO mode safely, or give it a disposable environment it can install anything into.

Good requests name the goal and the agent. Examples that match the skill's stated use cases are below.

  • "Set up a sandbox so I can run Claude Code in skip-permissions mode."
  • "Run OpenCode inside a machine with my project mounted."
  • "I want a disposable environment where the agent can install packages safely."

What are the safety notes?

The skill runs scripts and uses the network. The agent inside the machine has network access so it can install and download. To keep the agent off your local network and the host's ports, you can add block_private = true under [network] (from v1.28.1).

The project directory is mounted read-write from the host, so agent edits land in your files directly. The sandbox does not protect project files. It is also not meant for running untrusted code with no network; the skill says to use throwaway-machine for that.

  • Project files are mounted read-write; the sandbox does not protect them.
  • Set block_private = true under [network] to restrict private network access.
  • init runs once, so changing it later needs a new machine or running the new commands with exec.
  • For Docker inside the machine, see docker-in-machine.

What tips help the setup go smoothly?

Keep your agent list in the init step accurate, since init only runs on first start. Commit or back up your repo before letting an agent make large changes, because edits go straight to your files.

  • If git reports 'dubious ownership', check that the safe.directory line in init ran.
  • If start stops with 'ssh-agent: SSH_AUTH_SOCK is not set', run eval $(ssh-agent) or remove the [auth] block.
  • Use machine stop rather than delete when you want to keep installed agents.

What people use it for

  • Running Claude Code in skip-permissions mode while keeping the host protected from installs.
  • Giving OpenCode or Codex a disposable environment to install packages and experiment in.
  • Keeping a persistent machine with agents already installed, so each session starts in about a second.
  • Letting an agent edit a project and use git on the repo from inside the machine.

Frequently asked questions

Is the coding-agent skill free?

The skill is published under the Apache-2.0 licence. The source does not state prices, so check the project for any costs of the tools it uses, such as your agent API key.

What do I need to use the coding-agent skill?

You need smolvm (tested on v1.27.4 and v1.29.0), an Anthropic API key or other agent API key on the host, and an SSH agent with SSH_AUTH_SOCK set unless you remove the [auth] block. Node/npm inside the machine is installed through the Smolfile init step.

Can I run Claude Code in skip-permissions mode with this skill?

Yes. The skill's procedure runs claude with --dangerously-skip-permissions inside the machine. The machine is the boundary that protects your host, but the project files are mounted read-write.

Does the sandbox protect my project files?

No. The project directory is mounted read-write from the host, and agent edits land there directly. The sandbox protects the host environment, not your project.

What should I use instead for untrusted code with no network?

The skill says not to use it for running untrusted code with no network access. It directs you to use throwaway-machine for that case.

Why does git show 'dubious ownership' and how do I fix it?

The skill says this means the safe.directory line in init did not run. Check the init step of your Smolfile, and if needed create a new machine, since init runs only on the first start.

New agent skills, repos and AI tools — every week

The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.

Our verdict

This skill suits developers who want to run Claude Code, OpenCode or Codex with full permissions without giving the agent free rein over their host, and teams that want a disposable, persistent environment for installs. It is not suitable for running untrusted code without network access, where the skill itself points to throwaway-machine, or for anyone expecting the sandbox to protect project files, which are mounted read-write.

Download the skill