spawn/local
Ahmed Abushagur b5d174a472
fix: pin Codex to 0.94.0 + wire_api=chat for multi-turn stability (#1518)
* fix: switch Codex wire_api from "responses" to "chat" for multi-turn stability

The Responses API format causes "Invalid Responses API request" errors on
the second turn and beyond — conversation history items round-trip through
OpenRouter with null content fields and missing IDs that fail validation.
Chat Completions format is fully supported and avoids this issue.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: pin Codex to 0.94.0 + wire_api=chat for multi-turn stability

OpenRouter's Responses API proxy drops required fields (id, content) from
conversation-history items on multi-turn requests, causing "Invalid
Responses API request" at input[6]+. Codex >=0.97.0 removed wire_api=chat
support (openai/codex#10157), so we pin to 0.94.0 — the last release where
Chat Completions format still works.

Tracking: https://github.com/openai/codex/issues/12114
TODO: unpin once OpenRouter /responses handles round-trip correctly.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 04:49:35 -05:00
..
lib feat: add server lifecycle management (reconnect + delete) (#1363) 2026-02-16 17:06:49 -08: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: pin Codex to 0.94.0 + wire_api=chat for multi-turn stability (#1518) 2026-02-20 04:49:35 -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 feat: implement local/opencode script (#1481) 2026-02-19 16:49:50 -05: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

Local Machine

Run agents directly on your local machine without any cloud provisioning.

No server creation or destruction. Installs agents and injects OpenRouter credentials locally. Useful for local development and testing.

Quick Start

If you have the spawn CLI installed:

spawn claude local
spawn openclaw local
spawn zeroclaw local
spawn codex local
spawn kilocode local

Or run directly without the CLI:

bash <(curl -fsSL https://openrouter.ai/labs/spawn/local/claude.sh)
bash <(curl -fsSL https://openrouter.ai/labs/spawn/local/openclaw.sh)
bash <(curl -fsSL https://openrouter.ai/labs/spawn/local/zeroclaw.sh)
bash <(curl -fsSL https://openrouter.ai/labs/spawn/local/codex.sh)
bash <(curl -fsSL https://openrouter.ai/labs/spawn/local/kilocode.sh)

Non-Interactive Mode

OPENROUTER_API_KEY=sk-or-v1-xxxxx \
  bash <(curl -fsSL https://openrouter.ai/labs/spawn/local/claude.sh)

What It Does

Local scripts will:

  • Install the agent if not already present
  • Obtain an OpenRouter API key (via OAuth or environment variable)
  • Append environment variables to ~/.zshrc for the agent to use
  • Launch the agent

No cloud servers are created or destroyed.

Environment Variables

Variable Description
OPENROUTER_API_KEY OpenRouter API key (prompted via OAuth if not set)
SPAWN_PROMPT If set, runs the agent non-interactively with this prompt