Commit graph

86 commits

Author SHA1 Message Date
A
c4eccbd72f
feat: prioritize clouds with CLI installed + hcloud CLI integration (#1375)
* fix: auto-run gcloud auth login on expired GCP tokens

Instead of telling users to run `gcloud auth login` manually, just
run it automatically when auth check fails or instance creation hits
a reauthentication error, then retry.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat: prioritize clouds with CLI installed + hcloud CLI integration

When selecting a cloud provider, clouds are now sorted in 3 tiers:
1. Credentials detected (env vars set) — top priority
2. CLI installed (e.g., gcloud, hcloud, aws) — middle priority
3. Neither — default order

Also adds hcloud CLI-first support for Hetzner operations (server
create/delete/list, SSH key management, auth) with automatic fallback
to the existing REST API when hcloud is not available.

Closes #1370

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* refactor: rename aws-lightsail to aws across the project

Simplifies the cloud key from "aws-lightsail" to "aws" — AWS should
have a single entry regardless of the underlying service used.

Renames the directory, updates manifest.json matrix keys, CLI map,
test fixtures, README, and all agent scripts.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: lab <6723574+louisgv@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-16 20:12:35 -08:00
A
7388c1eaec
ux: clarify that 149/150 combinations are working (local/opencode missing) (#1343)
The tagline claimed "149 combinations" without context. Users might think
this is a limitation or wonder why 15×10=150. The matrix table shows the
blank cell for local/opencode, but the tagline should clarify this upfront.

Agent: ux-engineer

Co-authored-by: spawn-bot <bot@openrouter.ai>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-16 21:01:08 -05:00
A
b8ae1d6a68
ux: complete commands table in README (#1336)
Add missing commands to README commands table for consistency with CLI help:
- spawn <cloud> (show available agents)
- spawn list <filter> (filter by agent/cloud name)
- spawn list -a/-c (explicit filters)
- spawn list --clear (clear history)
- spawn last (rerun most recent)
- spawn help (show help)
- spawn version (show version)

Updated descriptions to match CLI help output exactly.

Agent: ux-engineer

Co-authored-by: spawn-bot <bot@openrouter.ai>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-16 20:32:22 -05:00
A
9c0420f865
fix: update help examples to reference existing clouds and document --debug flag (#1350)
UX improvements:
- Replace outdated cloud references (vultr/linode) with existing clouds (ovh/gcp) in help examples
- Add missing --debug flag to README commands table
- Ensure all documented examples reference clouds that exist in the matrix

These changes prevent user confusion when following examples in help text
and documentation.

Agent: ux-engineer

Co-authored-by: spawn-bot <bot@openrouter.ai>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-16 20:28:44 -05:00
A
925b5fa350
docs: fix misleading Sprite authentication example in README (#1328)
The README incorrectly showed SPRITE_API_KEY as an environment variable,
but Sprite uses 'sprite login' for authentication (no API key needed).

Changes:
- Remove SPRITE_API_KEY example from non-interactive mode section
- Add clarifying note that Sprite uses 'sprite login'
- Change example command from 'spawn claude sprite' to 'spawn claude hetzner'
  since Hetzner actually uses an API token (HCLOUD_TOKEN)

This prevents user confusion when trying to authenticate with Sprite.

Agent: ux-engineer

Co-authored-by: spawn-bot <bot@openrouter.ai>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-16 20:22:52 -05:00
A
4fd76a78a0
ux: add comprehensive troubleshooting section to README (#1359)
Add a new Troubleshooting section to the README with three subsections:
- Installation issues: bun version checks, manual installation, PATH setup
- Agent launch failures: credential checks, cloud alternatives, dry-run usage
- Getting help: command history, version checks, bug reporting

This helps users quickly resolve common issues without searching through
issues or documentation. Positioned right after usage examples where users
are most likely to encounter problems.

Agent: ux-engineer

Co-authored-by: test-engineer <agent@spawn.local>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-16 20:21:31 -05:00
A
0461222955
fix: correct README matrix to show actual 10 clouds instead of misleading 38 (#1314)
The README showed 38 cloud providers with 531 combinations, but manifest.json
only defines 10 clouds with 149 implemented combinations. This was extremely
misleading to users who would see checkmarks for providers that don't exist.

Updated:
- README tagline: 38 clouds → 10 clouds, 531 → 149 combinations
- Matrix table: removed 28 non-existent cloud columns
- Matrix now accurately reflects manifest.json (local, oracle, hetzner, ovh,
  fly, aws-lightsail, daytona, digitalocean, gcp, sprite)

Only missing entry is local/opencode (all other 149 combinations implemented).

Agent: ux-engineer

Co-authored-by: spawn-bot <bot@openrouter.ai>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-16 14:06:28 -08:00
A
2d2e318a7c
fix(ux): update README matrix to include Webdock and Alibaba Cloud (#1043)
The README hero line and matrix table were stale -- showing 36 clouds
and 514 combinations when the actual manifest has 38 clouds and 531
combinations. Adds missing Webdock and Alibaba Cloud columns and
updates all agent rows to reflect current implementation status.

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 21:43:20 -05:00
A
df27dfec17
docs: Sync README matrix with manifest.json (#956)
Agent: team-lead

Co-authored-by: A <6723574+louisgv@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-13 08:49:21 -08:00
A
0fa2b630df
docs: Sync README matrix with manifest.json (#884)
Agent: team-lead

Co-authored-by: B (Discovery Team) <6723574+louisgv@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-13 06:23:55 -08:00
A
150f500085
docs: Sync README matrix with manifest.json (#917)
Agent: team-lead

Co-authored-by: B (Discovery Team) <6723574+louisgv@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-13 04:25:42 -08:00
L
6633873ccc
refactor: replace Python with jq in Hetzner lib, fix /lab → /labs URLs (#827)
Hetzner lib: replace all Python JSON parsing with jq. Uses the
/datacenters API as the authoritative source for server type
availability (server_types.available), cross-referenced with
/server_types for specs and pricing. jq is auto-installed if missing.

URLs: update openrouter.ai/lab/spawn → openrouter.ai/labs/spawn
across all READMEs and CLI source.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-12 23:14:11 -08:00
L
8bcdb59c09
docs: add Contributing section to README (#788)
* docs: add Contributing section to README

Adds guidance for testing cloud providers, reporting issues,
requesting new clouds/agents, and reporting auth problems.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: use correct issue template URLs for cloud, agent, and CLI requests

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-12 18:05:47 -08:00
A
2b73cf6ce0
docs: Sync README matrix with manifest.json (#746)
Agent: team-lead

Co-authored-by: Sprite <noreply@sprites.dev>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-12 15:30:55 -08:00
B
ecca13bf7d docs: Sync README matrix with manifest.json
Agent: team-lead
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-12 01:41:42 +00:00
B
7c03d215f2 docs: Sync README matrix with manifest.json
Agent: team-lead
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-11 23:46:01 +00:00
B
46349ab8c0 docs: Sync README matrix with manifest.json
Agent: team-lead
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-11 23:39:18 +00:00
A
948197aa05
fix: correct README describing spawn list as matrix view (#508)
The README incorrectly described `spawn list` as "Full agent x cloud
matrix" in two places. `spawn list` actually shows spawn history
(previously launched spawns). The matrix is shown by `spawn matrix`.

This fixes the Usage section and Commands table to accurately reflect
the CLI behavior, preventing confusion for first-time users.

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-11 12:29:58 -08:00
B
e07a78bed7 docs: Sync README matrix with manifest.json
Agent: team-lead
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-11 18:55:19 +00:00
A
5851a9ce7b
fix: show error when --dry-run used without agent and cloud args (#480)
`spawn --dry-run` silently entered interactive mode, ignoring the flag.
Now it shows an actionable error like `--prompt` does. Also adds
`--dry-run` to the README commands table.

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-11 09:09:57 -08:00
B
94efc6c461 docs: Sync README matrix with manifest.json
Agent: team-lead
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-11 16:42:08 +00:00
B
481daf9815 docs: Sync README matrix with manifest.json
Agent: team-lead
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-11 16:31:29 +00:00
B
a2a304d1a0 docs: Sync README matrix with manifest.json
Update combination count from 450 to 453 to match current manifest state.

Agent: team-lead
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-11 16:24:47 +00:00
B
e25bf29008 docs: Sync README matrix with manifest.json
Agent: team-lead
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-11 12:51:17 +00:00
A
fa11fed516
fix: improve UX with version hints, clearer non-TTY message, and retry bug fix (#417)
- Add "spawn update" hint to version output so users know how to update
- Simplify non-interactive TTY message (less alarming, more actionable)
- Fix _api_handle_transient_http_error passing wrong first arg to
  _api_should_retry_on_error (was "http_429" instead of attempt number)
- Sync README matrix count (444 -> 445)

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-11 02:33:38 -08:00
B
7f5db36c01 docs: Sync README matrix with manifest.json
Agent: team-lead
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-11 09:50:57 +00:00
B
b9c704a0ff docs: Sync README matrix with manifest.json (post-cycle)
Updated stats from "15 agents. 30 clouds. 420 combinations" to "15 agents. 32 clouds. 444 combinations".
Added Netcup and RamNode columns to matrix table.

Discovery cycle completed 19 PRs:
- 18 gap-filling PRs (Contabo + Hostinger)
- 2 new cloud providers (Netcup, RamNode)

Agent: team-lead
2026-02-11 09:39:36 +00:00
B
a5f40391a7 docs: Sync README matrix with manifest.json
Agent: team-lead
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-11 09:25:56 +00:00
B
3cba5223b0 docs: Sync README matrix with manifest.json
Agent: team-lead
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-11 08:49:16 +00:00
B
8945e8162b docs: Sync README matrix with manifest.json
Agent: team-lead
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-11 07:54:08 +00:00
B
f5da7ae43e docs: Sync README matrix with manifest.json
- Update stats from 27→29 clouds, 393→411 combinations
- Add Contabo and Hostinger columns to matrix
- Fix Civo and Scaleway showing as missing (they're implemented)
- Reflect current 411/435 matrix coverage (94.5%)

Agent: team-lead
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-11 07:30:24 +00:00
Sprite
dbd9980ebc test: Update README matrix after QA cycle
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 06:34:06 +00:00
B
c780bb4816 docs: Sync README matrix with manifest.json
Agent: team-lead
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-11 04:32:24 +00:00
B
83b60439d1 docs: Sync README matrix with manifest.json 2026-02-11 03:14:40 +00:00
B
db0d535805 docs: Sync README matrix with manifest.json
Agent: team-lead
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-11 01:47:09 +00:00
B
bbe0d75074 docs: Sync README matrix after GPU cloud removal
14 agents x 25 clouds = 350 combinations.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-11 00:37:18 +00:00
B
686d1bdd88 docs: Sync README matrix with manifest.json
Agent: team-lead
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-11 00:10:39 +00:00
B
2061c3d22d docs: Sync README matrix with manifest.json
Agent: team-lead
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-10 23:19:58 +00:00
B
d94cbfb7de docs: Sync README matrix with manifest.json
Agent: team-lead
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-10 20:49:34 +00:00
B
8ebb70b1b3 docs: Sync README matrix with manifest.json
Agent: team-lead
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-10 20:20:06 +00:00
B
75416a8fd9 docs: Sync README matrix with manifest.json
Agent: team-lead
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-10 18:30:37 +00:00
B
dd66e62666 docs: Sync README matrix with manifest.json and fix discovery team instructions
README was 4 clouds behind (missing oracle, vastai, hyperstack, koyeb).
Updated from 21→25 clouds, 294→333 combinations.

Changed discovery.sh team lead instructions: README matrix sync is now
the explicit FIRST step (before spawning teammates) and FINAL step
(after all PRs merged) — assigned to team lead, not vague "one teammate".

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-10 16:18:01 +00:00
A
88bc5e458f
docs: Update README matrix to reflect 294/294 complete matrix (#129)
All 14 agents are now implemented on all 21 clouds.
Previously the OVH column showed gaps and Kilo Code
showed only Sprite — now every cell is checked.

Agent: team-lead

Co-authored-by: B <6723574+louisgv@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-09 20:24:38 -08:00
A
3167915118
docs: Update README matrix for OVHcloud, Kamatera, and Kilo Code (#98)
Matrix now shows 14 agents x 21 clouds (264 implemented, 30 missing).
Added OVHcloud and Kamatera cloud columns, Kilo Code agent row.

Agent: team-lead

Co-authored-by: B <6723574+louisgv@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-09 09:49:28 -08:00
A
2915d7bca6
fix: Improve CLI error handling, fix bash compat, and update cloud READMEs (#90)
- Show clear error when --prompt/-p or --prompt-file is used without a
  value (previously silently ignored)
- Fix --prompt-file splice index bug when used after --prompt
- Replace echo -e with printf in fly/lib/common.sh for macOS bash 3.x
  compatibility
- Fix incorrect env var name in README (DIGITALOCEAN_TOKEN -> DO_API_TOKEN)
- Add missing agent entries (gptme, OpenCode, Plandex) to 11 cloud READMEs
- Add all 13 agents to Civo README (previously only had 3)

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-09 09:33:57 -08:00
B
3c0c9530ca docs: Update README tagline to cover all AI agents, not just coding
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-09 17:28:10 +00:00
A
89ed02fe55
feat: Add Latitude.sh cloud provider with all 13 agents (#85)
Add Latitude.sh as the 19th cloud provider in the spawn matrix.
Latitude.sh offers bare metal servers and VMs via REST API with
hourly billing, global locations, and plans starting at $0.07/hr.

New files:
- latitude/lib/common.sh: Provider functions (API wrapper, server
  creation/deletion, SSH key management, wait-for-ready)
- latitude/{agent}.sh: All 13 agent deployment scripts
- latitude/README.md: Usage docs with env vars and pricing

Updated:
- manifest.json: Added latitude cloud + 13 matrix entries
- README.md: Updated matrix table (19 clouds, 247 combinations)

Agent: cloud-scout

Co-authored-by: B <6723574+louisgv@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-09 08:33:47 -08:00
LAB
298065f4ad
UX: Improve error messages, help text, and progress indicators (#55)
Enhance the spawn CLI user experience with actionable error messages,
comprehensive help documentation, and visual progress feedback.

Changes:
- Help text: Add AUTHENTICATION, TROUBLESHOOTING, and MORE INFO sections
- Error messages: Show examples of valid options when validation fails
- Progress indicators: Add spinners for script downloads
- Install flow: Provide clear alternatives when npm install requires sudo
- README: Add environment variable documentation and alternative install URL
- Security errors: Suggest workarounds for false positives

All error messages now follow the pattern:
1. What went wrong
2. Why it matters
3. What to do next

Documentation: .docs/UX_IMPROVEMENTS_20260208.md

Co-authored-by: Sprite <noreply@sprite.dev>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-08 12:00:59 -08:00
L
2ad38d6321
Update README with ALPHA software disclaimer
Added a disclaimer about the software being in ALPHA stage.
2026-02-08 11:26:00 -08:00
L
b25626850a Improve README with better intro, how-it-works, and dev guide (#51)
- Add compelling tagline with stats (13 agents, 18 clouds, 234 combinations)
- Add "How it works" section explaining the script architecture
- Add project structure overview and contribution quick-start
- Remove internal `spawn improve` from public command table
- Clean up formatting and tighten copy
- Add Apache 2.0 LICENSE file

Co-authored-by: Sprite <noreply@sprite.dev>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-08 18:16:46 +00:00