feat: --beta skills — pre-install MCP servers and skills on VMs (#3258)
Some checks are pending
CLI Release / Build and release CLI (push) Waiting to run
Lint / Biome Lint (push) Waiting to run
Lint / macOS Compatibility (push) Waiting to run
Lint / ShellCheck (push) Waiting to run

CLI plumbing for the skills feature. The skills catalog in manifest.json
is populated by the discovery scout (#3252), not manually curated.

Flow:
1. User runs `spawn claude hetzner --beta skills`
2. Skills picker shows available skills for that agent (from manifest.json)
3. User selects skills, enters required env vars (GITHUB_TOKEN, etc.)
4. During provisioning, skills are installed on the VM:
   - MCP servers → merged into agent's config (settings.json, mcp.json)
   - Instruction skills → SKILL.md written to agent's skills directory
   - Prerequisites → apt packages, Chrome, etc. installed first
5. Env vars appended to .spawnrc for MCP server runtime access

Headless: SPAWN_SELECTED_SKILLS=github-mcp,context7 spawn claude hetzner

Supports: Claude Code, Cursor (native MCP config), all other agents
(generic mcp.json fallback).

Signed-off-by: Ahmed Abushagur <ahmed@abushagur.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Ahmed Abushagur 2026-04-10 09:02:16 -07:00 committed by GitHub
parent b68c6a51f4
commit eaf49446f8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 392 additions and 2 deletions

View file

@ -1,6 +1,6 @@
{
"name": "@openrouter/spawn",
"version": "1.0.0",
"version": "1.0.1",
"type": "module",
"bin": {
"spawn": "cli.js"