Generated Computers
Locals: an Apple Silicon engine that runs local LLMs up to 3x faster. A product of Generated Computers.
Translation pending
Paddock gives each AI agent its own Linux computer or a locked-down sandbox, on one VPS you own. Free and open source, MIT licensed.
Developer toolsGo · TypeScriptGitHub @tony1908OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Computers and sandboxes for your AI agents, self-hosted on one VPS
Taken from the repository README
Loading the full README.
Read the full README ↗Website: https://tony1908.github.io/paddock/
Paddock gives your AI agents computers and sandboxes on a VPS you own. Each agent gets a full Linux box: an XFCE desktop, sudo, Docker inside the box (via Sysbox), SSH, and preinstalled coding-agent tooling. Use a box as a long-lived computer the agent keeps working in, or as a locked-down sandbox for one task that you delete afterwards. Boxes can be created, stopped with a snapshot, resumed, forked, and deleted through a web UI, a CLI, or the HTTP API.
--headless), SSH access, and Docker-in-box (Sysbox).xsmall (1 CPU, 2 GiB) to xlarge (16 CPU, 32 GiB).--ttl, --no-auto-stop) and idle stop (--idle-stop). New boxes idle-stop after 30 minutes unless you set --idle-stop or --no-auto-stop.resume, fork, and restore (rollback). Retention per box with --keep-snapshots.paddock prompt) for claude, codex, opencode, pi, prime, and kimi,
with steering, interrupt, event streaming, and optional stop-when-done.exec --desktop), screenshots (paddock screenshot), public or private host ports (paddock host), and local port
forwarding (paddock forward).exec --detach, ps, logs -f, kill).--tag), filterable with paddock list --tag.allow-all, deny-all, or a domain/CIDR allowlist), changeable on a running box. DNS goes through the agent, and cloud metadata is always blocked.--git, --tarball).--help on every command, and paddock help <command>.paddock drive, --mount).paddock user, paddock group).--image), activity log, per-box usage totals, and optional cost estimates from hourly pricing.amd64 or arm64, with root access.--domain: your own domain, or a sslip.io
name such as paddock.203.0.113.10.sslip.io.The installer installs Docker, Sysbox, restic, and Traefik. See docs/self-hosting.md for details.
curl -fsSL https://raw.githubusercontent.com/tony1908/paddock/main/install/install.sh \
| sudo bash -s -- --domain paddock.example.com --email [email protected]
--domain and --email are required. When the installer finishes it prints a
one-time owner setup link:
Owner setup link (one time): https://paddock.example.com/signup/?setup=<token>
Open the link, create the owner account (password of at least 12 characters),
then sign in at https://paddock.example.com/login/. The setup token is also in
/var/lib/paddock/admin.token. Full flags and first-login steps are in
docs/self-hosting.md.
The server publishes the CLI installers at /install/cli.sh and /install/cli.ps1.
macOS and Linux:
curl -fsSL https://paddock.example.com/install/cli.sh | sh
Windows (PowerShell):
irm https://paddock.example.com/install/cli.ps1 | iex
Or download a release binary from GitHub Releases. On Apple silicon, for example:
curl -fsSL https://github.com/tony1908/paddock/releases/download/v0.2.0/paddock_0.2.0_darwin_arm64.tar.gz | tar xz paddock
sudo mv paddock /usr/local/bin/
Then log in with the owner account, or with an API key from the dashboard's API keys page:
paddock login --server https://paddock.example.com --email [email protected]
paddock login --server https://paddock.example.com --api-key <key>
paddock skill install writes the Paddock skill to ~/.claude/skills/paddock/SKILL.md (Claude Code, and OpenCode) and ~/.codex/skills/paddock/SKILL.md (Codex). Use --claude, --codex, or --force to limit the install or overwrite a changed copy. Run it again after upgrading the CLI.
paddock skill install
To install manually from the source file:
mkdir -p ~/.claude/skills/paddock && curl -fsSL https://raw.githubusercontent.com/tony1908/paddock/main/internal/cli/skill.md -o ~/.claude/skills/paddock/SKILL.md
Then ask your agent, for example: "Run the tests in a Paddock box".
paddock new --type small --ttl 3600 # create a box (it becomes "current")
paddock exec current -- uname -a # run a command
paddock push current ./project --to /config/project
paddock desktop current # open the desktop session
paddock prompt current "summarize the repo" --provider claude
paddock stop current # snapshot, then stop
paddock resume current # restore from the latest snapshot
paddock fork current --ttl 1800 # new box from a fresh snapshot of this one
paddock delete current --yes
The full command reference is in docs/cli.md.
On an existing server, refresh the server, agent, and CLI binaries. Your
/etc/paddock settings are kept:
sudo bash install/install.sh --upgrade
or, through the installer URL:
curl -fsSL https://raw.githubusercontent.com/tony1908/paddock/main/install/install.sh \
| sudo bash -s -- --upgrade
Sysbox version changes restart Docker and need --allow-runtime-restart; see
docs/self-hosting.md.
Build and check the Go code:
go build ./...
go vet ./...
go test ./...
Build the web UI (it is embedded into the server through make web):
pnpm --dir web build
Build the box and tools images:
docker build -f images/box/Dockerfile -t paddock/box:dev .
docker build -f images/tools/Dockerfile -t paddock/tools:dev .
Run the end-to-end scripts (they start a local stack with Docker):
scripts/e2e-local.sh: creates a box, runs commands, checks stop, resume,
fork, and desktop routing. Requires docker, go, jq, and curl.scripts/e2e-agents.sh: builds the web UI and runs the agent-facing checks
against the local stack.scripts/e2e-remote.sh: runs the same checks against a live server. Set
PADDOCK_URL (HTTPS), PADDOCK_EMAIL, and PADDOCK_PASSWORD or PADDOCK_PASSWORD_FILE.
PADDOCK_SSH_HOST=root@<host> is optional.Release binaries and the CLI matrix are built with make cli-binaries and
GoReleaser (.goreleaser.yaml).
Landing page: site/index.html.
MIT. See LICENSE.