Skip to content

Commit c4471af

Browse files
louisgvclaude
andcommitted
fix(zeroclaw): remove broken zeroclaw agent (repo 404)
The zeroclaw-labs/zeroclaw GitHub repository returns 404 — all installs fail. Remove zeroclaw entirely from the matrix: agent definition, setup code, shell scripts, e2e tests, packer config, skill files, and documentation. Fixes #3102 Agent: code-health Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent ccbe52c commit c4471af

40 files changed

Lines changed: 18 additions & 597 deletions

README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,6 @@ If an agent fails to install or launch on a cloud:
324324
|---|---|---|---|---|---|---|
325325
| [**Claude Code**](https://claude.ai) |||||||
326326
| [**OpenClaw**](https://github.com/openclaw/openclaw) |||||||
327-
| [**ZeroClaw**](https://github.com/zeroclaw-labs/zeroclaw) |||||||
328327
| [**Codex CLI**](https://github.com/openai/codex) |||||||
329328
| [**OpenCode**](https://github.com/sst/opencode) |||||||
330329
| [**Kilo Code**](https://github.com/Kilo-Org/kilocode) |||||||

assets/agents/.sources.json

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@
77
"url": "https://openclaw.ai/apple-touch-icon.png",
88
"ext": "png"
99
},
10-
"zeroclaw": {
11-
"url": "https://avatars.githubusercontent.com/u/261820148?s=200&v=4",
12-
"ext": "png"
13-
},
1410
"codex": {
1511
"url": "https://avatars.githubusercontent.com/u/14957082?s=200&v=4",
1612
"ext": "png"

manifest.json

Lines changed: 0 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -89,52 +89,6 @@
8989
"gateway"
9090
]
9191
},
92-
"zeroclaw": {
93-
"name": "ZeroClaw",
94-
"description": "Fast, small, fully autonomous AI assistant infrastructure — deploy anywhere, swap anything",
95-
"url": "https://github.com/zeroclaw-labs/zeroclaw",
96-
"install": "curl -LsSf https://raw.githubusercontent.com/zeroclaw-labs/zeroclaw/a117be64fdaa31779204beadf2942c8aef57d0e5/scripts/bootstrap.sh | bash -s -- --install-rust --install-system-deps --prefer-prebuilt",
97-
"launch": "zeroclaw agent",
98-
"env": {
99-
"OPENROUTER_API_KEY": "${OPENROUTER_API_KEY}",
100-
"ZEROCLAW_PROVIDER": "openrouter"
101-
},
102-
"config_files": {
103-
"~/.zeroclaw/config.toml": {
104-
"security": {
105-
"autonomy": "full",
106-
"supervised": false,
107-
"allow_destructive": true
108-
},
109-
"shell": {
110-
"policy": "allow_all"
111-
}
112-
}
113-
},
114-
"notes": "Rust-based agent framework built by Harvard/MIT/Sundai.Club communities. Natively supports OpenRouter via OPENROUTER_API_KEY + ZEROCLAW_PROVIDER=openrouter. Requires compilation from source (~5-10 min).",
115-
"icon": "https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/assets/agents/zeroclaw.png",
116-
"featured_cloud": [
117-
"digitalocean",
118-
"sprite"
119-
],
120-
"creator": "Sundai.Club",
121-
"repo": "zeroclaw-labs/zeroclaw",
122-
"license": "Apache-2.0",
123-
"created": "2026-02",
124-
"added": "2025-12",
125-
"github_stars": 28521,
126-
"stars_updated": "2026-03-23",
127-
"language": "Rust",
128-
"runtime": "binary",
129-
"category": "cli",
130-
"tagline": "Fast, small, fully autonomous AI infrastructure — deploy anywhere, swap anything",
131-
"tags": [
132-
"coding",
133-
"terminal",
134-
"rust",
135-
"autonomous"
136-
]
137-
},
13892
"codex": {
13993
"name": "Codex CLI",
14094
"description": "OpenAI's open-source coding agent",
@@ -453,37 +407,31 @@
453407
"matrix": {
454408
"local/claude": "implemented",
455409
"local/openclaw": "implemented",
456-
"local/zeroclaw": "implemented",
457410
"local/codex": "implemented",
458411
"local/opencode": "implemented",
459412
"local/kilocode": "implemented",
460413
"hetzner/claude": "implemented",
461414
"hetzner/openclaw": "implemented",
462-
"hetzner/zeroclaw": "implemented",
463415
"hetzner/codex": "implemented",
464416
"hetzner/opencode": "implemented",
465417
"hetzner/kilocode": "implemented",
466418
"aws/claude": "implemented",
467419
"aws/openclaw": "implemented",
468-
"aws/zeroclaw": "implemented",
469420
"aws/codex": "implemented",
470421
"aws/opencode": "implemented",
471422
"aws/kilocode": "implemented",
472423
"digitalocean/claude": "implemented",
473424
"digitalocean/openclaw": "implemented",
474-
"digitalocean/zeroclaw": "implemented",
475425
"digitalocean/codex": "implemented",
476426
"digitalocean/opencode": "implemented",
477427
"digitalocean/kilocode": "implemented",
478428
"gcp/claude": "implemented",
479429
"gcp/openclaw": "implemented",
480-
"gcp/zeroclaw": "implemented",
481430
"gcp/codex": "implemented",
482431
"gcp/opencode": "implemented",
483432
"gcp/kilocode": "implemented",
484433
"sprite/claude": "implemented",
485434
"sprite/openclaw": "implemented",
486-
"sprite/zeroclaw": "implemented",
487435
"sprite/codex": "implemented",
488436
"sprite/opencode": "implemented",
489437
"sprite/kilocode": "implemented",

packages/cli/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@openrouter/spawn",
3-
"version": "0.29.1",
3+
"version": "0.29.2",
44
"type": "module",
55
"bin": {
66
"spawn": "cli.js"

packages/cli/src/__tests__/agent-setup-cov.test.ts

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -191,12 +191,6 @@ describe("createCloudAgents", () => {
191191
"ANTHROPIC_BASE_URL",
192192
],
193193
],
194-
[
195-
"zeroclaw",
196-
[
197-
"ZEROCLAW_PROVIDER=openrouter",
198-
],
199-
],
200194
[
201195
"hermes",
202196
[
@@ -228,11 +222,6 @@ describe("createCloudAgents", () => {
228222
}
229223
});
230224

231-
it("zeroclaw agent configure calls runServer", async () => {
232-
await result.agents.zeroclaw.configure?.("sk-or-v1-test", undefined, new Set());
233-
expect(runner.runServer).toHaveBeenCalled();
234-
});
235-
236225
it("all agents have launchCmd returning non-empty string", () => {
237226
for (const agent of Object.values(result.agents)) {
238227
const cmd = agent.launchCmd();

packages/cli/src/__tests__/security-connection-validation.test.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,6 @@ describe("validateLaunchCmd", () => {
189189
"source ~/.spawnrc 2>/dev/null; export PATH=$HOME/.npm-global/bin:$HOME/.bun/bin:$HOME/.local/bin:$PATH; openclaw tui",
190190
"source ~/.spawnrc 2>/dev/null; source ~/.zshrc 2>/dev/null; opencode",
191191
"source ~/.spawnrc 2>/dev/null; source ~/.zshrc 2>/dev/null; kilocode",
192-
"export PATH=$HOME/.cargo/bin:$PATH; source ~/.cargo/env 2>/dev/null; source ~/.spawnrc 2>/dev/null; zeroclaw agent",
193192
"source ~/.spawnrc 2>/dev/null; hermes",
194193
"claude",
195194
"aider",

packages/cli/src/__tests__/spawn-skill.test.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,6 @@ describe("getSpawnSkillPath", () => {
2222
"openclaw",
2323
"~/.openclaw/skills/spawn/SKILL.md",
2424
],
25-
[
26-
"zeroclaw",
27-
"~/.zeroclaw/workspace/AGENTS.md",
28-
],
2925
[
3026
"opencode",
3127
"~/.config/opencode/AGENTS.md",
@@ -67,7 +63,6 @@ describe("isAppendMode", () => {
6763
"claude",
6864
"codex",
6965
"openclaw",
70-
"zeroclaw",
7166
"opencode",
7267
"kilocode",
7368
"junie",
@@ -85,7 +80,6 @@ describe("getSkillContent", () => {
8580
"claude",
8681
"codex",
8782
"openclaw",
88-
"zeroclaw",
8983
"opencode",
9084
"kilocode",
9185
"hermes",
@@ -114,7 +108,6 @@ describe("getSkillContent", () => {
114108
}
115109

116110
for (const agent of [
117-
"zeroclaw",
118111
"opencode",
119112
"kilocode",
120113
"junie",
@@ -184,7 +177,6 @@ describe("injectSpawnSkill", () => {
184177
"claude",
185178
"codex",
186179
"openclaw",
187-
"zeroclaw",
188180
"opencode",
189181
"kilocode",
190182
"hermes",

packages/cli/src/commands/link.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ function defaultSshCommand(host: string, user: string, keyOpts: string[], cmd: s
6666
const KNOWN_AGENTS = [
6767
"claude",
6868
"openclaw",
69-
"zeroclaw",
7069
"codex",
7170
"opencode",
7271
"kilocode",
@@ -79,7 +78,7 @@ type KnownAgent = (typeof KNOWN_AGENTS)[number];
7978
function detectAgent(host: string, user: string, keyOpts: string[], runCmd: SshCommandFn): string | null {
8079
// First: check running processes
8180
const psCmd =
82-
"ps aux 2>/dev/null | grep -oE 'claude(-code)?|openclaw|zeroclaw|codex|opencode|kilocode|hermes|junie' | grep -v grep | head -1 || true";
81+
"ps aux 2>/dev/null | grep -oE 'claude(-code)?|openclaw|codex|opencode|kilocode|hermes|junie' | grep -v grep | head -1 || true";
8382
const psOut = runCmd(host, user, keyOpts, psCmd);
8483
if (psOut) {
8584
const match = KNOWN_AGENTS.find((b: KnownAgent) => psOut.includes(b));

packages/cli/src/digitalocean/main.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ const MARKETPLACE_IMAGES: Record<string, string> = {
3535
openclaw: "openrouter-spawnopenclaw",
3636
opencode: "openrouter-spawnopencode",
3737
kilocode: "openrouter-spawnkilocode",
38-
zeroclaw: "openrouter-spawnzeroclaw",
3938
hermes: "openrouter-spawnhermes",
4039
junie: "openrouter-spawnjunie",
4140
};

packages/cli/src/security.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -406,7 +406,7 @@ export function validateLaunchCmd(cmd: string): void {
406406
"Invalid launch command in history: invalid agent invocation\n\n" +
407407
`Command: "${cmd}"\n` +
408408
`Rejected segment: "${lastSegment}"\n\n` +
409-
"The final segment must be a simple binary name (e.g., 'claude', 'zeroclaw agent').\n\n" +
409+
"The final segment must be a simple binary name (e.g., 'claude', 'hermes').\n\n" +
410410
"Your spawn history file may be corrupted or tampered with.\n" +
411411
`To fix: run 'spawn list --clear' to reset history`,
412412
);

0 commit comments

Comments
 (0)