spawn/ramnode
A 0f60a2b082
fix: add actionable guidance to agent installation failures across 126 scripts (#966)
Add log_install_failed helper to shared/common.sh that provides
structured troubleshooting for agent install failures: possible causes,
SSH debug command (when server IP available), manual install command,
and re-run suggestion. Also improve SSH key registration error message.

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-13 10:14:03 -08:00
..
lib fix: add actionable guidance to error messages across 10 cloud providers (#962) 2026-02-13 10:10:45 -08:00
aider.sh fix: add actionable guidance to agent installation failures across 126 scripts (#966) 2026-02-13 10:14:03 -08:00
amazonq.sh feat: implement ramnode gaps for gemini, amazonq, plandex, kilocode (#855) 2026-02-13 02:09:35 -08:00
claude.sh fix: add actionable guidance to agent installation failures across 126 scripts (#966) 2026-02-13 10:14:03 -08:00
cline.sh fix: add actionable guidance to agent installation failures across 126 scripts (#966) 2026-02-13 10:14:03 -08:00
codex.sh feat: Add ramnode/codex (#796) 2026-02-13 07:19:00 -08:00
continue.sh fix: add actionable guidance to agent installation failures across 126 scripts (#966) 2026-02-13 10:14:03 -08:00
gemini.sh feat: implement ramnode gaps for gemini, amazonq, plandex, kilocode (#855) 2026-02-13 02:09:35 -08:00
goose.sh fix: add actionable guidance to agent installation failures across 126 scripts (#966) 2026-02-13 10:14:03 -08:00
gptme.sh fix: add actionable guidance to agent installation failures across 126 scripts (#966) 2026-02-13 10:14:03 -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 feat: implement ramnode gaps for gemini, amazonq, plandex, kilocode (#855) 2026-02-13 02:09:35 -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 for progress messages in recent scripts (#524) 2026-02-11 14:04:14 -08:00
opencode.sh feat: implement ramnode/opencode.sh (#812) 2026-02-13 01:21:57 -08:00
plandex.sh fix: add actionable guidance to agent installation failures across 126 scripts (#966) 2026-02-13 10:14:03 -08:00
README.md fix: improve CloudSigma error messages and update RamNode README (#947) 2026-02-13 07:54:31 -08:00

RamNode Cloud

Budget VPS cloud provider with OpenStack API compatibility and hourly billing.

Overview

  • Provider: RamNode
  • Pricing: Hourly billing starting at $0.006/hr (~$4.38/month for 1GB instance)
  • API: Full OpenStack API compatibility
  • Billing: Pay-as-you-go with $3 minimum cloud credit
  • Regions: Multiple US and international locations

Authentication

RamNode uses OpenStack authentication with username, password, and project ID.

Getting Credentials

  1. Go to RamNode Cloud Control Panel
  2. Navigate to: Cloud → API Users
  3. Create or select an API user
  4. Note your credentials:
    • Username: Your API username
    • Password: Your API password
    • Project ID: Your cloud project ID

Setting Credentials

Option 1: Environment Variables

export RAMNODE_USERNAME="your-username"
export RAMNODE_PASSWORD="your-password"
export RAMNODE_PROJECT_ID="your-project-id"

Option 2: Interactive Prompt

If credentials are not set, the script will prompt for them and save to ~/.config/spawn/ramnode.json.

Usage

Run Claude Code

bash <(curl -fsSL https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/ramnode/claude.sh)

Run Aider

bash <(curl -fsSL https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/ramnode/aider.sh)

Run Goose

bash <(curl -fsSL https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/ramnode/goose.sh)

Run NanoClaw

bash <(curl -fsSL https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/ramnode/nanoclaw.sh)

Configuration

Environment Variables

  • RAMNODE_USERNAME - Your RamNode API username
  • RAMNODE_PASSWORD - Your RamNode API password
  • RAMNODE_PROJECT_ID - Your cloud project ID
  • RAMNODE_SERVER_NAME - Server name (optional, will prompt if not set)
  • RAMNODE_FLAVOR - Instance flavor (optional, defaults to interactive picker)
  • OPENROUTER_API_KEY - OpenRouter API key (optional, will use OAuth if not set)

Instance Flavors

RamNode offers various instance sizes. Common options:

  • 1GB - 1 vCPU, 1GB RAM (~$0.006/hr)
  • 2GB - 1 vCPU, 2GB RAM (~$0.012/hr)
  • 4GB - 2 vCPU, 4GB RAM (~$0.024/hr)

The script will show available flavors interactively if RAMNODE_FLAVOR is not set.

Features

  • Full OpenStack API compatibility
  • Hourly billing (billed by the second)
  • SSH key management via API
  • Cloud-init support for automated setup
  • Multiple instance sizes
  • Low minimum cost ($3 cloud credit)

Pricing

RamNode uses hourly billing with per-second granularity:

  • 1GB instance: ~$0.006/hr = ~$4.38/month
  • 2GB instance: ~$0.012/hr = ~$8.76/month
  • 4GB instance: ~$0.024/hr = ~$17.52/month

Billing is deducted from your cloud credit balance. Minimum deposit: $3.

Technical Details

API Endpoints

  • Identity: https://openstack.ramnode.com:5000/v3
  • Compute: https://openstack.ramnode.com:8774/v2.1
  • Network: https://openstack.ramnode.com:9696/v2.0

Authentication

RamNode uses OpenStack Keystone v3 authentication with password grant:

  1. POST to /v3/auth/tokens with username/password/project
  2. Receive X-Subject-Token header
  3. Use token in subsequent API calls

Server Creation

Uses OpenStack Compute API:

  • Creates server with Ubuntu 24.04 image
  • Injects cloud-init via user_data (base64 encoded)
  • Attaches SSH key for root access
  • Waits for IPv4 address assignment

Troubleshooting

Insufficient Cloud Credit

Error: "Insufficient cloud credit"

Fix: Add at least $3 in cloud credit through the RamNode Client Area.

Authentication Failed

Error: "Authentication failed"

Fix: Verify credentials at Cloud Control Panel → API Users. Ensure username, password, and project ID are correct.

SSH Connection Timeout

Error: "SSH connectivity check failed"

Fix: Wait a few minutes for the server to fully boot and configure cloud-init. If the issue persists, check that your SSH key was properly registered.

Implemented Agents

  • Claude Code
  • Aider
  • Amazon Q
  • Cline
  • Codex
  • Continue
  • Gemini CLI
  • Goose
  • gptme
  • Kilocode
  • NanoClaw
  • Open Interpreter
  • OpenClaw
  • OpenCode
  • Plandex

Documentation