Install
$ agentstack add skill-getspinup-skills-hetzner-devbox ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Hetzner Devbox
Use this skill to create a long-running remote devbox for AI-agent work. It is an opinionated starting point, not a universal cloud provisioning framework.
Defaults
- Server name:
agent-devbox-01 - Server type:
cpx32 - Location:
nbg1 - Image:
ubuntu-24.04 - Admin user:
admin - Firewall name:
agent-devbox-private - Tailscale hostname: server name
- Bun version:
1.2.15
Required Local State
hcloud,jq,ssh,ssh-add, andgitmust be available locally.HCLOUD_TOKENand a freshTS_AUTHKEYmust be set in the environment or in.env.HCLOUD_SSH_KEY_NAMEmust be set before creating a new server.- The Hetzner SSH private key must already be loaded into the local SSH agent. Never export, copy, paste, or write private SSH keys to disk.
The scripts load .env from the skill directory by default, or from the current working directory if no skill-local .env exists. Override with ENV_FILE=/path/to/.env.
Use scripts/check-prereqs.sh before provisioning. It checks commands, required environment values, and loaded SSH-agent identities without printing secret values.
Workflow
- Check prerequisites:
skills/hetzner-devbox/scripts/check-prereqs.sh
- Create or reuse the server:
skills/hetzner-devbox/scripts/create-server.sh
Set SERVER_NAME, SERVER_TYPE, LOCATION, IMAGE, or HCLOUD_SSH_KEY_NAME to override defaults. The script prints the public IPv4 address needed for the first root SSH bootstrap.
- Run the remote hardening bootstrap:
SERVER_IPV4= skills/hetzner-devbox/scripts/bootstrap-hardening.sh
This streams the vendored scripts/bootstrap-private-vps.sh over SSH, passes TS_AUTHKEY without putting the key on the command line, and configures the server as Tailscale-only. After it finishes, verify ssh admin@ works before relying on the firewall.
- Apply the Hetzner provider firewall:
skills/hetzner-devbox/scripts/apply-firewall.sh
The provider firewall allows only inbound ICMP and UDP 41641 for Tailscale direct WireGuard connections. It deliberately does not allow public TCP/SSH. Host UFW remains the stricter inner layer.
- Install the devbox toolchain:
skills/hetzner-devbox/scripts/install-toolchain.sh
This installs base packages, Docker Engine plus Compose, GitHub CLI, Bun, uv, current Node LTS user-locally, Codex CLI, and Claude Code by default. Set INSTALL_* flags to 0 to opt out of optional groups. Set INSTALL_REMOTION_LIBS=1 to include headless Chromium runtime libraries.
Verification
After setup, verify from a fresh local shell:
ssh admin@agent-devbox-01 'bash -lc "id -nG; docker ps; bun --version; uv --version; node --version; gh --version | head -n 1; codex --version; claude --version"'
Also verify:
hcloud firewall describe agent-devbox-privateshows only ICMP and UDP41641inbound.sudo ufw status verboseon the server shows inbound allowed ontailscale0and no public SSH allow rule.adminis in thedockergroup on a fresh login if Docker was installed.
Safety Rules
- Never print
.envvalues or auth keys. - Never materialize private SSH keys; rely on the user's local SSH agent.
- Do not delete existing Hetzner servers, firewalls, or SSH keys unless the user explicitly asks.
- If a server was created in the same run and bootstrap fails, explain the state and ask before deleting it.
- Treat adding
adminto the Docker group as root-equivalent access and mention that tradeoff when relevant. - Ask before creating paid infrastructure when running this skill from an agent session.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: getspinup
- Source: getspinup/skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.