spawn/hetzner
Ahmed Abushagur 749ca907b7
fix: Hetzner reprompt for different API key on account limits (#1494)
When server creation fails with account-level errors (server limit
reached, insufficient funds, quota exceeded), offer to switch to a
different Hetzner API token and retry instead of just failing.

- Add _is_hetzner_account_error() to detect account-level issues
- Return exit code 2 from create_server() for account errors
- cloud_provision() catches code 2, prompts "Try a different account?"
- On yes: re-prompts for new API key, re-registers SSH keys, retries

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 20:40:20 -05:00
..
lib fix: Hetzner reprompt for different API key on account limits (#1494) 2026-02-19 20:40:20 -05:00
claude.sh fix: use ~/.spawnrc for env vars instead of inlining into .bashrc (#1362) 2026-02-16 17:05:17 -08:00
codex.sh fix: use native OpenRouter model_provider for Codex CLI config (#1490) 2026-02-19 18:47:40 -05:00
kilocode.sh refactor: introduce cloud adapter + spawn_agent runner system (#1340) 2026-02-16 16:25:44 -08:00
openclaw.sh fix: harden agent reliability + security across all clouds (#1468) 2026-02-19 08:36:24 -05:00
opencode.sh refactor: introduce cloud adapter + spawn_agent runner system (#1340) 2026-02-16 16:25:44 -08:00
README.md fix: sync cloud READMEs with current agent list (#1486) 2026-02-19 17:47:57 -05:00
zeroclaw.sh feat: reorder agents and remove NanoClaw (#1477) 2026-02-19 11:39:03 -08:00

Hetzner Cloud

Hetzner Cloud servers via REST API. Hetzner Cloud

Agents

Claude Code

bash <(curl -fsSL https://openrouter.ai/labs/spawn/hetzner/claude.sh)

OpenClaw

bash <(curl -fsSL https://openrouter.ai/labs/spawn/hetzner/openclaw.sh)

ZeroClaw

bash <(curl -fsSL https://openrouter.ai/labs/spawn/hetzner/zeroclaw.sh)

Codex CLI

bash <(curl -fsSL https://openrouter.ai/labs/spawn/hetzner/codex.sh)

OpenCode

bash <(curl -fsSL https://openrouter.ai/labs/spawn/hetzner/opencode.sh)

Kilo Code

bash <(curl -fsSL https://openrouter.ai/labs/spawn/hetzner/kilocode.sh)

Non-Interactive Mode

HETZNER_SERVER_NAME=dev-mk1 \
HCLOUD_TOKEN=your-token \
OPENROUTER_API_KEY=sk-or-v1-xxxxx \
  bash <(curl -fsSL https://openrouter.ai/labs/spawn/hetzner/claude.sh)