spawn/ionos
A cdf6f1dba5
fix: use log_step (cyan) for in-progress messages instead of log_info (green) (#768)
In-progress actions (installing, starting, connecting...) should use
log_step (cyan) to visually distinguish them from completion messages
which use log_info (green). This makes it easier for users to see at a
glance what is happening vs what has finished.

Changes:
- cli/install.sh: add log_step function, use it for install progress
- shared/common.sh: OAuth flow and non-interactive exec messages
- Cloud libs: interactive_session, auth, and cleanup messages
- Agent scripts: gateway startup and session opening messages

Agent: ux-engineer

Co-authored-by: A <6723574+louisgv@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-12 16:45:58 -08:00
..
lib fix: use log_step (cyan) for in-progress messages instead of log_info (green) (#768) 2026-02-12 16:45:58 -08:00
aider.sh fix: use log_step (cyan) for progress messages instead of log_warn (yellow) (#534) 2026-02-11 14:37:43 -08:00
amazonq.sh fix: use log_step (cyan) for progress messages instead of log_warn (yellow) (#534) 2026-02-11 14:37:43 -08:00
claude.sh fix: use log_step (cyan) for progress messages instead of log_warn (yellow) (#534) 2026-02-11 14:37:43 -08:00
cline.sh fix: use log_step (cyan) for progress messages instead of log_warn (yellow) (#534) 2026-02-11 14:37:43 -08:00
codex.sh fix: use log_step (cyan) for progress messages instead of log_warn (yellow) (#534) 2026-02-11 14:37:43 -08:00
continue.sh fix: use log_step (cyan) for progress messages instead of log_warn (yellow) (#534) 2026-02-11 14:37:43 -08:00
gemini.sh fix: use log_step (cyan) for progress messages instead of log_warn (yellow) (#534) 2026-02-11 14:37:43 -08:00
goose.sh fix: use log_step (cyan) for progress messages instead of log_warn (yellow) (#534) 2026-02-11 14:37:43 -08:00
gptme.sh fix: use log_step (cyan) for progress messages instead of log_warn (yellow) (#534) 2026-02-11 14:37:43 -08:00
interpreter.sh fix: use log_step (cyan) for progress messages instead of log_warn (yellow) (#534) 2026-02-11 14:37:43 -08:00
kilocode.sh fix: use log_step (cyan) for progress messages instead of log_warn (yellow) (#534) 2026-02-11 14:37:43 -08:00
nanoclaw.sh fix: replace log_warn with log_step/log_info for non-warning messages (#604) 2026-02-12 03:24:30 -08:00
openclaw.sh fix: use log_step (cyan) for in-progress messages instead of log_info (green) (#768) 2026-02-12 16:45:58 -08:00
opencode.sh fix: use log_step (cyan) for progress messages instead of log_warn (yellow) (#534) 2026-02-11 14:37:43 -08:00
plandex.sh fix: use log_step (cyan) for progress messages instead of log_warn (yellow) (#534) 2026-02-11 14:37:43 -08:00
README.md feat: Add IONOS Cloud provider with minute-based billing (#304) 2026-02-10 16:51:34 -08:00

IONOS Cloud

IONOS Cloud is a budget-friendly European cloud provider offering VPS and cloud servers with flexible minute-based billing.

Features

  • Ultra-cheap pricing: Starting at $2/month for basic VPS (1 vCore, 1GB RAM, 10GB SSD)
  • Minute-based billing: Pay only for what you use with Cloud Cubes
  • REST API: Full CloudAPI v6 for programmatic control
  • Global locations: Multiple datacenters across US and Europe
  • Root SSH access: Full control over your servers
  • Unlimited traffic: No bandwidth overage charges on Cloud VPS plans

Authentication

IONOS Cloud uses Basic Authentication with your account credentials:

  1. Go to IONOS Data Center Designer (DCD)
  2. Navigate to Management → Users & Keys
  3. Create or retrieve your API credentials:
    • Username: Your IONOS account email
    • Password: Your API password/key

Set these as environment variables:

export IONOS_USERNAME="your-email@example.com"
export IONOS_PASSWORD="your-api-password"

Alternatively, spawn will prompt for them on first use and save to ~/.config/spawn/ionos.json.

Configuration

Environment Variables

  • IONOS_USERNAME (required): Your IONOS account email
  • IONOS_PASSWORD (required): Your IONOS API password/key
  • IONOS_SERVER_NAME (optional): Server name (will prompt if not set)
  • IONOS_CORES (default: 2): Number of CPU cores
  • IONOS_RAM (default: 2048): RAM in MB
  • IONOS_DISK_SIZE (default: 20): Boot disk size in GB
  • IONOS_LOCATION (default: us/las): Datacenter location

Available Locations

  • US: us/las (Las Vegas), us/ewr (Newark)
  • Europe: de/fra (Frankfurt), de/fkb (Karlsruhe), gb/lhr (London)

Usage

# Run Claude Code on IONOS Cloud
spawn claude ionos

# Run with custom resources
IONOS_CORES=4 IONOS_RAM=4096 spawn claude ionos

# Run Aider
spawn aider ionos

# Run Goose
spawn goose ionos

Pricing

IONOS offers two main compute options:

Cloud VPS (Fixed monthly plans)

  • Basic: $2/month - 1 vCore, 1GB RAM, 10GB SSD, unlimited traffic
  • Standard: $5/month - 2 vCores, 2GB RAM, 80GB SSD, unlimited traffic

Cloud Cubes (Flexible pay-as-you-go)

  • Minute-based billing
  • Scale resources on demand
  • Perfect for short-lived AI agent sessions

Spawn creates servers in the Cloud Cubes model by default for maximum flexibility.

Notes

  • Datacenter Management: IONOS organizes resources into "datacenters" (logical containers). Spawn will create one automatically if you don't have any.
  • Provisioning Time: Initial datacenter + server creation can take 3-5 minutes. Subsequent servers in the same datacenter provision faster (~2 minutes).
  • SSH Keys: SSH keys are registered per-datacenter. Spawn handles this automatically.
  • Cloud-init Support: Full cloud-init support via userData in volume creation.
  • Volume-based Boot: Servers boot from volumes (similar to AWS EBS). The boot volume is created first, then attached to the server.

API Reference

Implemented Agents

  • Claude Code (ionos/claude.sh)
  • Aider (ionos/aider.sh)
  • Goose (ionos/goose.sh)

See manifest.json for the full list of implemented and missing agents.