@blockrun/clawrouter 0.12.225 → 0.12.227
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -28
- package/dist/cli.js +71 -36
- package/dist/index.js +38 -27
- package/package.json +1 -1
- package/skills/clawrouter/SKILL.md +4 -4
- package/skills/imagegen/SKILL.md +9 -10
- package/src/top-models.json +5 -8
package/README.md
CHANGED
|
@@ -46,7 +46,7 @@ Every other LLM router was built for **human developers** — create an account,
|
|
|
46
46
|
|
|
47
47
|
ClawRouter is built for the agent-first world:
|
|
48
48
|
|
|
49
|
-
- **Starts at $0** — 8 NVIDIA models are free forever (incl. 675B Mistral Large 3, Qwen3
|
|
49
|
+
- **Starts at $0** — 8 NVIDIA models are free forever (incl. 675B Mistral Large 3, 262K-context Qwen3-Next 80B + a vision-capable Nemotron Omni)
|
|
50
50
|
- **No accounts** — a wallet is generated locally, no signup
|
|
51
51
|
- **No API keys** — your wallet signature IS authentication
|
|
52
52
|
- **No model selection** — 15-dimension scoring picks the right model automatically
|
|
@@ -78,7 +78,7 @@ This is the stack that lets agents operate autonomously: **x402 + USDC + local r
|
|
|
78
78
|
|
|
79
79
|
## Quick Start
|
|
80
80
|
|
|
81
|
-
> **No wallet? 8 models work free out of the box.** Install, run, and pin `
|
|
81
|
+
> **No wallet? 8 models work free out of the box.** Install, run, and pin `free/mistral-large-3-675b` (or any of the 8) — no crypto, no signup, no balance required. Add USDC later when you want paid models.
|
|
82
82
|
|
|
83
83
|
### Option A — OpenClaw Agent
|
|
84
84
|
|
|
@@ -101,7 +101,7 @@ clawrouter setup # finishes OpenClaw integration — REQUIRED
|
|
|
101
101
|
openclaw gateway restart
|
|
102
102
|
```
|
|
103
103
|
|
|
104
|
-
> ⚠️ **Skipping `clawrouter setup` will leave you broken.** Bare `npm install -g` only puts the package on disk; it does NOT register the plugin with OpenClaw, sync the models allowlist, or write the auth profile. Symptom: `/models` in your bot shows only ~7 entries (OpenClaw's hardcoded defaults) instead of the full ~
|
|
104
|
+
> ⚠️ **Skipping `clawrouter setup` will leave you broken.** Bare `npm install -g` only puts the package on disk; it does NOT register the plugin with OpenClaw, sync the models allowlist, or write the auth profile. Symptom: `/models` in your bot shows only ~7 entries (OpenClaw's hardcoded defaults) instead of the full ~44 BlockRun models. Run `clawrouter setup` to repair, or use path A1 to begin with.
|
|
105
105
|
|
|
106
106
|
### Option B — Standalone (continue.dev, Cursor, VS Code, any OpenAI-compatible client)
|
|
107
107
|
|
|
@@ -118,7 +118,7 @@ npx @blockrun/clawrouter
|
|
|
118
118
|
```
|
|
119
119
|
|
|
120
120
|
**2. Fund your wallet** — optional, skip for free tier
|
|
121
|
-
Your wallet address is printed on first run. For paid models, send a few USDC on Base or Solana — $5 covers thousands of requests. To stay at $0, pin any of the 8 free models (e.g. `
|
|
121
|
+
Your wallet address is printed on first run. For paid models, send a few USDC on Base or Solana — $5 covers thousands of requests. To stay at $0, pin any of the 8 free models (e.g. `free/mistral-large-3-675b`) or use `/model free` inside OpenClaw.
|
|
122
122
|
|
|
123
123
|
**3. Point your client at `http://localhost:8402`**
|
|
124
124
|
|
|
@@ -140,7 +140,7 @@ models:
|
|
|
140
140
|
- apply
|
|
141
141
|
```
|
|
142
142
|
|
|
143
|
-
To pin a specific model, replace `blockrun/auto` with any model from [blockrun.ai/models](https://blockrun.ai/models), e.g. `anthropic/claude-opus-4.8`, `xai/grok-4
|
|
143
|
+
To pin a specific model, replace `blockrun/auto` with any model from [blockrun.ai/models](https://blockrun.ai/models), e.g. `anthropic/claude-opus-4.8`, `xai/grok-4.5`.
|
|
144
144
|
|
|
145
145
|
Both `provider: openai` and `provider: clawrouter` work — just make sure `apiBase` ends with `/v1/`.
|
|
146
146
|
|
|
@@ -209,10 +209,10 @@ Request → Weighted Scorer (15 dimensions) → Tier → Best Model → Response
|
|
|
209
209
|
|
|
210
210
|
| Tier | ECO Model | AUTO Model | PREMIUM Model |
|
|
211
211
|
| --------- | ------------------------------------- | ------------------------------------- | ---------------------------- |
|
|
212
|
-
| SIMPLE |
|
|
213
|
-
| MEDIUM | gemini-3.1-flash-lite ($0.25/$1.50) | kimi-k2.
|
|
212
|
+
| SIMPLE | free/mistral-large-3-675b (**FREE**) | gemini-2.5-flash ($0.30/$2.50) | kimi-k2.7 ($0.95/$4.00) |
|
|
213
|
+
| MEDIUM | gemini-3.1-flash-lite ($0.25/$1.50) | kimi-k2.7 ($0.95/$4.00) | gpt-5.3-codex ($1.75/$14.00) |
|
|
214
214
|
| COMPLEX | gemini-3.1-flash-lite ($0.25/$1.50) | gemini-3.1-pro ($2/$12) | claude-opus-4.8 ($5/$25) |
|
|
215
|
-
| REASONING |
|
|
215
|
+
| REASONING | deepseek-reasoner ($0.20/$0.40) | deepseek-reasoner ($0.20/$0.40) | claude-sonnet-4.6 ($3/$15) |
|
|
216
216
|
|
|
217
217
|
**Blended average: $2.05/M** vs $25/M for Claude Opus = **92% savings**
|
|
218
218
|
|
|
@@ -224,7 +224,7 @@ Generate images directly from chat with `/cr-imagegen`:
|
|
|
224
224
|
|
|
225
225
|
```
|
|
226
226
|
/cr-imagegen a dog dancing on the beach
|
|
227
|
-
/cr-imagegen --model
|
|
227
|
+
/cr-imagegen --model gpt-image-2 a futuristic city at sunset
|
|
228
228
|
/cr-imagegen --model banana-pro --size 2048x2048 mountain landscape
|
|
229
229
|
```
|
|
230
230
|
|
|
@@ -234,9 +234,9 @@ Generate images directly from chat with `/cr-imagegen`:
|
|
|
234
234
|
| ---------------------------- | --------------------- | ------------ | --------- |
|
|
235
235
|
| `nano-banana` | Google Gemini Flash | $0.05/image | 1024x1024 |
|
|
236
236
|
| `banana-pro` | Google Gemini Pro | $0.10/image | 4096x4096 |
|
|
237
|
-
| `dall-e-3` | OpenAI DALL-E 3 | $0.04/image | 1792x1024 |
|
|
238
237
|
| `gpt-image` | OpenAI GPT Image 1 | $0.02/image | 1536x1024 |
|
|
239
|
-
| `
|
|
238
|
+
| `gpt-image-2` | OpenAI GPT Image 2 | $0.06/image | 1536x1024 |
|
|
239
|
+
| `seedream` | ByteDance Seedream 5 | $0.045/image | 2848x1600 |
|
|
240
240
|
| `xai/grok-imagine-image` | xAI Grok Imagine | $0.02/image | 1024x1024 |
|
|
241
241
|
| `xai/grok-imagine-image-pro` | xAI Grok Imagine Pro | $0.07/image | 1024x1024 |
|
|
242
242
|
| `zai/cogview-4` | Zhipu CogView-4 | $0.015/image | 1440x1440 |
|
|
@@ -390,14 +390,14 @@ No Surf account, no API key — settles directly to Surf's Base treasury in USDC
|
|
|
390
390
|
|
|
391
391
|
| Model | Input $/M | Output $/M | ~$/request | Context | Features |
|
|
392
392
|
| --------------------------------------------- | --------: | ---------: | ---------: | ------- | -------------------------------------------- |
|
|
393
|
-
|
|
|
394
|
-
|
|
|
395
|
-
|
|
|
396
|
-
|
|
|
397
|
-
|
|
|
398
|
-
|
|
|
399
|
-
|
|
|
400
|
-
|
|
|
393
|
+
| free/mistral-large-3-675b | **FREE** | **FREE** | **$0** | 131K | 675B general flagship, default free model |
|
|
394
|
+
| free/qwen3-next-80b-a3b-instruct | **FREE** | **FREE** | **$0** | 262K | reasoning + coding |
|
|
395
|
+
| free/seed-oss-36b | **FREE** | **FREE** | **$0** | 131K | coding |
|
|
396
|
+
| free/nemotron-3-nano-omni-30b-a3b-reasoning | **FREE** | **FREE** | **$0** | 256K | reasoning, **vision** (text+img+video+audio) |
|
|
397
|
+
| free/mistral-nemotron | **FREE** | **FREE** | **$0** | 131K | instruction following |
|
|
398
|
+
| free/step-3.7-flash | **FREE** | **FREE** | **$0** | 131K | reasoning |
|
|
399
|
+
| free/nemotron-nano-9b-v2 | **FREE** | **FREE** | **$0** | 131K | fast lightweight generalist |
|
|
400
|
+
| free/nemotron-nano-12b-v2-vl | **FREE** | **FREE** | **$0** | 131K | vision (text + image) |
|
|
401
401
|
| openai/gpt-5-nano | $0.05 | $0.40 | $0.0002 | 128K | tools |
|
|
402
402
|
| openai/gpt-4.1-nano | $0.10 | $0.40 | $0.0003 | 128K | tools |
|
|
403
403
|
| google/gemini-2.5-flash-lite | $0.10 | $0.40 | $0.0003 | 1M | tools |
|
|
@@ -405,15 +405,12 @@ No Surf account, no API key — settles directly to Surf's Base treasury in USDC
|
|
|
405
405
|
| xai/grok-4-fast | $0.20 | $0.50 | $0.0004 | 131K | tools |
|
|
406
406
|
| xai/grok-4-fast-reasoning | $0.20 | $0.50 | $0.0004 | 131K | reasoning, tools |
|
|
407
407
|
| xai/grok-4-1-fast | $0.20 | $0.50 | $0.0004 | 131K | tools |
|
|
408
|
-
| xai/grok-4-1-fast-reasoning | $0.20 | $0.50 | $0.0004 | 131K | reasoning, tools |
|
|
409
|
-
| xai/grok-4-0709 | $0.20 | $1.50 | $0.0009 | 131K | reasoning, tools |
|
|
410
408
|
| openai/gpt-5-mini | $0.25 | $2.00 | $0.0011 | 200K | tools |
|
|
411
409
|
| deepseek/deepseek-chat | $0.20 | $0.40 | $0.0003 | 1M | tools (V4 Flash chat) |
|
|
412
410
|
| deepseek/deepseek-reasoner | $0.20 | $0.40 | $0.0003 | 1M | reasoning, tools (V4 Flash thinking) |
|
|
413
411
|
| deepseek/deepseek-v4-pro | $0.435 | $0.87 | $0.0007 | 1M | reasoning, agentic, tools (V4 flagship) |
|
|
414
412
|
| zai/glm-5 | $0.60 | $1.92 | $0.0013 | 200K | tools |
|
|
415
413
|
| zai/glm-5-turbo | $1.20 | $4.00 | $0.0026 | 200K | tools |
|
|
416
|
-
| xai/grok-3-mini | $0.30 | $0.50 | $0.0004 | 131K | tools |
|
|
417
414
|
| minimax/minimax-m3 | $0.30 | $1.20 | $0.0008 | 1M | reasoning, agentic, tools |
|
|
418
415
|
| minimax/minimax-m2.7 | $0.30 | $1.20 | $0.0008 | 205K | reasoning, agentic, tools |
|
|
419
416
|
| minimax/minimax-m2.5 | $0.30 | $1.20 | $0.0008 | 205K | reasoning, agentic, tools |
|
|
@@ -422,7 +419,7 @@ No Surf account, no API key — settles directly to Surf's Base treasury in USDC
|
|
|
422
419
|
| google/gemini-3.5-flash | $0.50 | $3.00 | $0.0018 | 1M | reasoning, vision, tools (thinking built-in) |
|
|
423
420
|
| google/gemini-3-flash-preview | $0.50 | $3.00 | $0.0018 | 1M | vision |
|
|
424
421
|
| moonshot/kimi-k2.5 | $0.60 | $3.00 | $0.0018 | 262K | reasoning, vision, agentic, tools |
|
|
425
|
-
| moonshot/kimi-k2.
|
|
422
|
+
| moonshot/kimi-k2.7 | $0.95 | $4.00 | $0.0025 | 262K | reasoning, vision, agentic, tools |
|
|
426
423
|
|
|
427
424
|
### Mid-Range Models ($0.001–$0.01/request)
|
|
428
425
|
|
|
@@ -437,6 +434,7 @@ No Surf account, no API key — settles directly to Surf's Base treasury in USDC
|
|
|
437
434
|
| zai/glm-5.2 | $1.40 | $4.40 | $0.0029 | 1M | reasoning, coding, tools (flagship) |
|
|
438
435
|
| zai/glm-5.1 | $1.40 | $4.40 | $0.0029 | 200K | reasoning, tools (promo ended 2026-06-05) |
|
|
439
436
|
| xai/grok-4.3 | $1.50 | $4.00 | $0.0028 | 1M | reasoning, vision, agentic, tools |
|
|
437
|
+
| xai/grok-4.5 | $2.50 | $9.00 | $0.0058 | 500K | reasoning, vision, agentic, tools |
|
|
440
438
|
| xai/grok-build-0.1 | $1.50 | $3.00 | $0.0023 | 256K | agentic coding, tools |
|
|
441
439
|
| openai/gpt-5.2 | $1.75 | $14.00 | $0.0079 | 400K | reasoning, vision, agentic, tools |
|
|
442
440
|
| openai/gpt-5.3 | $1.75 | $14.00 | $0.0079 | 128K | reasoning, vision, agentic, tools |
|
|
@@ -456,7 +454,6 @@ No Surf account, no API key — settles directly to Surf's Base treasury in USDC
|
|
|
456
454
|
| --------------------------- | --------: | ---------: | ---------: | ------- | --------------------------------- |
|
|
457
455
|
| anthropic/claude-sonnet-5 | $3.00 | $15.00 | $0.0090 | 1M | reasoning, vision, agentic, tools |
|
|
458
456
|
| anthropic/claude-sonnet-4.6 | $3.00 | $15.00 | $0.0090 | 200K | reasoning, vision, agentic, tools |
|
|
459
|
-
| xai/grok-3 | $3.00 | $15.00 | $0.0090 | 131K | reasoning, tools |
|
|
460
457
|
| anthropic/claude-opus-4.8 | $5.00 | $25.00 | $0.0150 | 1M | reasoning, vision, agentic, tools |
|
|
461
458
|
| openai/gpt-5.6-sol | $5.00 | $30.00 | $0.0175 | 1M | reasoning, vision, agentic, tools |
|
|
462
459
|
| openai/gpt-5.5 | $5.00 | $30.00 | $0.0175 | 1M | reasoning, vision, agentic, tools |
|
|
@@ -464,7 +461,7 @@ No Surf account, no API key — settles directly to Surf's Base treasury in USDC
|
|
|
464
461
|
| openai/gpt-5.2-pro | $21.00 | $168.00 | $0.0945 | 400K | reasoning, tools |
|
|
465
462
|
| openai/gpt-5.4-pro | $30.00 | $180.00 | $0.1050 | 400K | reasoning, tools |
|
|
466
463
|
|
|
467
|
-
> **Free tier:** several NVIDIA-hosted models cost nothing — `/model free` smart-routes across them, or pick one directly (e.g., `/model nemotron-omni` for vision, `/model qwen3-next` for 262K reasoning, `/model
|
|
464
|
+
> **Free tier:** several NVIDIA-hosted models cost nothing — `/model free` smart-routes across them, or pick one directly (e.g., `/model nemotron-omni` for vision, `/model qwen3-next` for 262K reasoning, `/model seed-oss` for coding, `/model mistral-large` for the 675B flagship).
|
|
468
465
|
> **Best value:** `gpt-5-nano` and `gemini-2.5-flash-lite` deliver strong results at ~$0.0003/request.
|
|
469
466
|
|
|
470
467
|
---
|
|
@@ -541,7 +538,7 @@ For basic usage, no configuration needed. For advanced options:
|
|
|
541
538
|
Block specific models from being routed to. Useful if a model doesn't follow your agent instructions or you want to control costs.
|
|
542
539
|
|
|
543
540
|
```bash
|
|
544
|
-
/exclude add
|
|
541
|
+
/exclude add free/mistral-large-3-675b # Block the default free model
|
|
545
542
|
/exclude add grok-4 # Aliases work — blocks all grok-4 variants
|
|
546
543
|
/exclude add gpt-5.4 # Skip expensive models
|
|
547
544
|
/exclude # Show current exclusions
|
|
@@ -680,7 +677,7 @@ Python plugin that wraps the ClawRouter proxy for `hermes-agent`. Same 55+ model
|
|
|
680
677
|
| ------------------------------------------------------ | ------------------------ |
|
|
681
678
|
| [Documentation](https://blockrun.ai/docs) | Full docs |
|
|
682
679
|
| [Model Pricing](https://blockrun.ai/models) | All models & prices |
|
|
683
|
-
| [Image Generation & Editing](docs/image-generation.md) | API examples,
|
|
680
|
+
| [Image Generation & Editing](docs/image-generation.md) | API examples, 8 models |
|
|
684
681
|
| [Routing Profiles](docs/routing-profiles.md) | ECO/AUTO/PREMIUM details |
|
|
685
682
|
| [Architecture](docs/architecture.md) | Technical deep dive |
|
|
686
683
|
| [Configuration](docs/configuration.md) | Environment variables |
|
|
@@ -723,7 +720,7 @@ ClawRouter works with any tool that makes OpenAI-compatible API calls — point
|
|
|
723
720
|
|
|
724
721
|
### Is ClawRouter free?
|
|
725
722
|
|
|
726
|
-
ClawRouter itself is free and MIT licensed. You pay only for the LLM API calls routed through it — and several NVIDIA-hosted models (`
|
|
723
|
+
ClawRouter itself is free and MIT licensed. You pay only for the LLM API calls routed through it — and several NVIDIA-hosted models (`mistral-large-3-675b`, `qwen3-next-80b-a3b-instruct`, `seed-oss-36b`, `nemotron-3-nano-omni-30b-a3b-reasoning`, `mistral-nemotron`, `step-3.7-flash`, `nemotron-nano-9b-v2`, `nemotron-nano-12b-v2-vl`) are completely free. Use `/model free` to smart-route across them, or pick any by name.
|
|
727
724
|
|
|
728
725
|
---
|
|
729
726
|
|
package/dist/cli.js
CHANGED
|
@@ -34288,9 +34288,6 @@ var init_top_models = __esm({
|
|
|
34288
34288
|
"google/gemini-3-flash-preview",
|
|
34289
34289
|
"xai/grok-4.5",
|
|
34290
34290
|
"xai/grok-4.3",
|
|
34291
|
-
"xai/grok-4-0709",
|
|
34292
|
-
"xai/grok-4-1-fast-reasoning",
|
|
34293
|
-
"xai/grok-3",
|
|
34294
34291
|
"xai/grok-build-0.1",
|
|
34295
34292
|
"zai/glm-5.2",
|
|
34296
34293
|
"zai/glm-5.1",
|
|
@@ -34302,14 +34299,14 @@ var init_top_models = __esm({
|
|
|
34302
34299
|
"deepseek/deepseek-v4-pro",
|
|
34303
34300
|
"deepseek/deepseek-chat",
|
|
34304
34301
|
"deepseek/deepseek-reasoner",
|
|
34305
|
-
"free/gpt-oss-120b",
|
|
34306
|
-
"free/gpt-oss-20b",
|
|
34307
34302
|
"free/mistral-large-3-675b",
|
|
34308
|
-
"free/qwen3.5-122b-a10b",
|
|
34309
34303
|
"free/qwen3-next-80b-a3b-instruct",
|
|
34310
|
-
"free/llama-4-maverick",
|
|
34311
34304
|
"free/seed-oss-36b",
|
|
34312
|
-
"free/nemotron-3-nano-omni-30b-a3b-reasoning"
|
|
34305
|
+
"free/nemotron-3-nano-omni-30b-a3b-reasoning",
|
|
34306
|
+
"free/mistral-nemotron",
|
|
34307
|
+
"free/step-3.7-flash",
|
|
34308
|
+
"free/nemotron-nano-9b-v2",
|
|
34309
|
+
"free/nemotron-nano-12b-v2-vl"
|
|
34313
34310
|
];
|
|
34314
34311
|
}
|
|
34315
34312
|
});
|
|
@@ -34527,6 +34524,12 @@ var init_models = __esm({
|
|
|
34527
34524
|
// redirect to its successor so pinned callers land on 3.1-pro, not an error.
|
|
34528
34525
|
"google/gemini-3-pro-preview": "google/gemini-3.1-pro",
|
|
34529
34526
|
"gemini-3-pro-preview": "google/gemini-3.1-pro",
|
|
34527
|
+
// Bare Pro shorthands — `gemini-3-pro` was never a real id (the 3-series Pro
|
|
34528
|
+
// shipped as the -preview above, then 3.1), but callers reach for it anyway.
|
|
34529
|
+
// Point them at the current Pro instead of a 400. (Thanks @0xCheetah1, #206.)
|
|
34530
|
+
"gemini-pro": "google/gemini-3.1-pro",
|
|
34531
|
+
"gemini-3-pro": "google/gemini-3.1-pro",
|
|
34532
|
+
"gemini-3.1-pro": "google/gemini-3.1-pro",
|
|
34530
34533
|
gemini: "google/gemini-2.5-pro",
|
|
34531
34534
|
flash: "google/gemini-2.5-flash",
|
|
34532
34535
|
"gemini-3.1-pro-preview": "google/gemini-3.1-pro",
|
|
@@ -34679,15 +34682,17 @@ var init_models = __esm({
|
|
|
34679
34682
|
// Note: auto, eco, premium are virtual routing profiles registered in BLOCKRUN_MODELS
|
|
34680
34683
|
// They don't need aliases since they're already top-level model IDs
|
|
34681
34684
|
// Image generation
|
|
34682
|
-
|
|
34683
|
-
|
|
34685
|
+
// dall-e-3 was delisted upstream 2026-05-25; legacy aliases point at its
|
|
34686
|
+
// OpenAI successor. flux (black-forest) has no gateway entry anymore.
|
|
34687
|
+
dalle: "openai/gpt-image-2",
|
|
34688
|
+
"dall-e": "openai/gpt-image-2",
|
|
34684
34689
|
"gpt-image": "openai/gpt-image-1",
|
|
34690
|
+
"gpt-image-2": "openai/gpt-image-2",
|
|
34685
34691
|
"nano-banana": "google/nano-banana",
|
|
34686
34692
|
banana: "google/nano-banana",
|
|
34687
34693
|
"banana-pro": "google/nano-banana-pro",
|
|
34688
34694
|
"nano-banana-pro": "google/nano-banana-pro",
|
|
34689
|
-
|
|
34690
|
-
"flux-pro": "black-forest/flux-1.1-pro",
|
|
34695
|
+
seedream: "bytedance/seedream-5-pro",
|
|
34691
34696
|
"grok-imagine": "xai/grok-imagine-image",
|
|
34692
34697
|
"grok-imagine-pro": "xai/grok-imagine-image-pro",
|
|
34693
34698
|
cogview: "zai/cogview-4",
|
|
@@ -85117,7 +85122,7 @@ async function startProxy(options) {
|
|
|
85117
85122
|
let imgCost = 0;
|
|
85118
85123
|
try {
|
|
85119
85124
|
const parsed = JSON.parse(reqBody.toString());
|
|
85120
|
-
imgModel = parsed.model || "
|
|
85125
|
+
imgModel = parsed.model || "google/nano-banana";
|
|
85121
85126
|
const n = parsed.n || 1;
|
|
85122
85127
|
imgCost = estimateImageCost(imgModel, parsed.size, n);
|
|
85123
85128
|
} catch {
|
|
@@ -86120,17 +86125,22 @@ async function proxyRequest(req, res, apiBase, payFetch, options, routerOpts, de
|
|
|
86120
86125
|
if (modelMatch) {
|
|
86121
86126
|
const raw = modelMatch[1];
|
|
86122
86127
|
const IMAGE_MODEL_ALIASES = {
|
|
86123
|
-
|
|
86124
|
-
|
|
86125
|
-
|
|
86128
|
+
// dall-e-3 delisted upstream 2026-05-25 — legacy aliases route to
|
|
86129
|
+
// the OpenAI successor instead of a guaranteed 400.
|
|
86130
|
+
"dall-e-3": "openai/gpt-image-2",
|
|
86131
|
+
dalle3: "openai/gpt-image-2",
|
|
86132
|
+
dalle: "openai/gpt-image-2",
|
|
86126
86133
|
"gpt-image": "openai/gpt-image-1",
|
|
86127
86134
|
"gpt-image-1": "openai/gpt-image-1",
|
|
86128
|
-
|
|
86129
|
-
|
|
86135
|
+
"gpt-image-2": "openai/gpt-image-2",
|
|
86136
|
+
seedream: "bytedance/seedream-5-pro",
|
|
86130
86137
|
banana: "google/nano-banana",
|
|
86131
86138
|
"nano-banana": "google/nano-banana",
|
|
86132
86139
|
"banana-pro": "google/nano-banana-pro",
|
|
86133
|
-
"nano-banana-pro": "google/nano-banana-pro"
|
|
86140
|
+
"nano-banana-pro": "google/nano-banana-pro",
|
|
86141
|
+
"grok-imagine": "xai/grok-imagine-image",
|
|
86142
|
+
"grok-imagine-pro": "xai/grok-imagine-image-pro",
|
|
86143
|
+
cogview: "zai/cogview-4"
|
|
86134
86144
|
};
|
|
86135
86145
|
imageModel = IMAGE_MODEL_ALIASES[raw] ?? raw;
|
|
86136
86146
|
imagePrompt = imagePrompt.replace(/--model\s+\S+/, "").trim();
|
|
@@ -86151,13 +86161,15 @@ async function proxyRequest(req, res, apiBase, payFetch, options, routerOpts, de
|
|
|
86151
86161
|
"Models:",
|
|
86152
86162
|
" nano-banana Google Gemini Flash \u2014 $0.05/image",
|
|
86153
86163
|
" banana-pro Google Gemini Pro \u2014 $0.10/image (up to 4K)",
|
|
86154
|
-
" dall-e-3 OpenAI DALL-E 3 \u2014 $0.04/image",
|
|
86155
86164
|
" gpt-image OpenAI GPT Image 1 \u2014 $0.02/image",
|
|
86156
|
-
"
|
|
86165
|
+
" gpt-image-2 OpenAI GPT Image 2 \u2014 $0.06/image",
|
|
86166
|
+
" seedream ByteDance Seedream 5 Pro \u2014 $0.045/image",
|
|
86167
|
+
" grok-imagine xAI Grok Imagine \u2014 $0.02/image",
|
|
86168
|
+
" cogview Zhipu CogView-4 \u2014 $0.015/image",
|
|
86157
86169
|
"",
|
|
86158
86170
|
"Examples:",
|
|
86159
86171
|
" /cr-imagegen a cat wearing sunglasses",
|
|
86160
|
-
" /cr-imagegen --model
|
|
86172
|
+
" /cr-imagegen --model gpt-image-2 a futuristic city at sunset",
|
|
86161
86173
|
" /cr-imagegen --model banana-pro --size 2048x2048 mountain landscape",
|
|
86162
86174
|
"",
|
|
86163
86175
|
"Note: `/imagegen` is still accepted in chat for backward compatibility."
|
|
@@ -88087,10 +88099,6 @@ var init_proxy = __esm({
|
|
|
88087
88099
|
THINKING_BLOCK_RE = /<\s*(?:think(?:ing)?|thought|antthinking|antml:thinking)\b[^>]*>[\s\S]*?<\s*\/\s*(?:think(?:ing)?|thought|antthinking|antml:thinking)\s*>/gi;
|
|
88088
88100
|
BLOCKRUN_MODEL_BY_ID = new Map(BLOCKRUN_MODELS.map((m) => [m.id, m]));
|
|
88089
88101
|
IMAGE_PRICING = {
|
|
88090
|
-
"openai/dall-e-3": {
|
|
88091
|
-
default: 0.04,
|
|
88092
|
-
sizes: { "1024x1024": 0.04, "1792x1024": 0.08, "1024x1792": 0.08 }
|
|
88093
|
-
},
|
|
88094
88102
|
"openai/gpt-image-1": {
|
|
88095
88103
|
default: 0.02,
|
|
88096
88104
|
sizes: { "1024x1024": 0.02, "1536x1024": 0.04, "1024x1536": 0.04 }
|
|
@@ -88099,7 +88107,10 @@ var init_proxy = __esm({
|
|
|
88099
88107
|
default: 0.06,
|
|
88100
88108
|
sizes: { "1024x1024": 0.06, "1536x1024": 0.12, "1024x1536": 0.12 }
|
|
88101
88109
|
},
|
|
88102
|
-
"
|
|
88110
|
+
"bytedance/seedream-5-pro": {
|
|
88111
|
+
default: 0.045,
|
|
88112
|
+
sizes: { "1024x1024": 0.045, "2048x1024": 0.045, "2048x2048": 0.09 }
|
|
88113
|
+
},
|
|
88103
88114
|
"google/nano-banana": { default: 0.05 },
|
|
88104
88115
|
"google/nano-banana-pro": {
|
|
88105
88116
|
default: 0.1,
|
|
@@ -220209,22 +220220,46 @@ Cache Stats
|
|
|
220209
220220
|
}
|
|
220210
220221
|
async function cmdSetup() {
|
|
220211
220222
|
const { execFileSync, execSync } = await import("child_process");
|
|
220223
|
+
const { existsSync: existsSync5 } = await import("fs");
|
|
220224
|
+
const { dirname: dirname5, join: join17 } = await import("path");
|
|
220225
|
+
const { homedir: homedir14 } = await import("os");
|
|
220212
220226
|
const { injectModelsConfig: injectModelsConfig2, injectAuthProfile: injectAuthProfile2, syncAgentModelCache: syncAgentModelCache2, VISIBLE_OPENCLAW_MODELS: VISIBLE_OPENCLAW_MODELS2 } = await Promise.resolve().then(() => (init_index(), index_exports));
|
|
220213
220227
|
console.log("\u{1F99E} ClawRouter setup\n");
|
|
220214
|
-
|
|
220215
|
-
|
|
220216
|
-
|
|
220217
|
-
|
|
220218
|
-
|
|
220219
|
-
|
|
220220
|
-
|
|
220221
|
-
|
|
220222
|
-
|
|
220228
|
+
const openclawPath = (() => {
|
|
220229
|
+
const candidates = [];
|
|
220230
|
+
try {
|
|
220231
|
+
const onPath = execSync("command -v openclaw", {
|
|
220232
|
+
encoding: "utf8",
|
|
220233
|
+
stdio: ["ignore", "pipe", "ignore"]
|
|
220234
|
+
}).trim();
|
|
220235
|
+
if (onPath) candidates.push(onPath);
|
|
220236
|
+
} catch {
|
|
220237
|
+
}
|
|
220238
|
+
if (process.env.npm_config_prefix) {
|
|
220239
|
+
candidates.push(join17(process.env.npm_config_prefix, "bin", "openclaw"));
|
|
220240
|
+
}
|
|
220241
|
+
try {
|
|
220242
|
+
const npmRoot = execSync("npm root -g", {
|
|
220243
|
+
encoding: "utf8",
|
|
220244
|
+
stdio: ["ignore", "pipe", "ignore"]
|
|
220245
|
+
}).trim();
|
|
220246
|
+
if (npmRoot) candidates.push(join17(dirname5(dirname5(npmRoot)), "bin", "openclaw"));
|
|
220247
|
+
} catch {
|
|
220248
|
+
}
|
|
220249
|
+
candidates.push(
|
|
220250
|
+
join17(homedir14(), ".npm-global", "bin", "openclaw"),
|
|
220251
|
+
join17(homedir14(), ".local", "bin", "openclaw"),
|
|
220252
|
+
"/usr/local/bin/openclaw"
|
|
220253
|
+
);
|
|
220254
|
+
return candidates.find((candidate) => existsSync5(candidate)) ?? "";
|
|
220255
|
+
})();
|
|
220256
|
+
if (!openclawPath) {
|
|
220223
220257
|
console.error(" \u2717 openclaw not found on PATH");
|
|
220224
220258
|
console.error(" Install OpenClaw first: npm install -g openclaw");
|
|
220225
220259
|
console.error(" Then re-run: clawrouter setup");
|
|
220226
220260
|
process.exit(1);
|
|
220227
220261
|
}
|
|
220262
|
+
console.log(` \u2713 Found openclaw at ${openclawPath}`);
|
|
220228
220263
|
console.log("\n\u2192 Registering ClawRouter with OpenClaw...");
|
|
220229
220264
|
let installOk = false;
|
|
220230
220265
|
try {
|
package/dist/index.js
CHANGED
|
@@ -78,9 +78,6 @@ var init_top_models = __esm({
|
|
|
78
78
|
"google/gemini-3-flash-preview",
|
|
79
79
|
"xai/grok-4.5",
|
|
80
80
|
"xai/grok-4.3",
|
|
81
|
-
"xai/grok-4-0709",
|
|
82
|
-
"xai/grok-4-1-fast-reasoning",
|
|
83
|
-
"xai/grok-3",
|
|
84
81
|
"xai/grok-build-0.1",
|
|
85
82
|
"zai/glm-5.2",
|
|
86
83
|
"zai/glm-5.1",
|
|
@@ -92,14 +89,14 @@ var init_top_models = __esm({
|
|
|
92
89
|
"deepseek/deepseek-v4-pro",
|
|
93
90
|
"deepseek/deepseek-chat",
|
|
94
91
|
"deepseek/deepseek-reasoner",
|
|
95
|
-
"free/gpt-oss-120b",
|
|
96
|
-
"free/gpt-oss-20b",
|
|
97
92
|
"free/mistral-large-3-675b",
|
|
98
|
-
"free/qwen3.5-122b-a10b",
|
|
99
93
|
"free/qwen3-next-80b-a3b-instruct",
|
|
100
|
-
"free/llama-4-maverick",
|
|
101
94
|
"free/seed-oss-36b",
|
|
102
|
-
"free/nemotron-3-nano-omni-30b-a3b-reasoning"
|
|
95
|
+
"free/nemotron-3-nano-omni-30b-a3b-reasoning",
|
|
96
|
+
"free/mistral-nemotron",
|
|
97
|
+
"free/step-3.7-flash",
|
|
98
|
+
"free/nemotron-nano-9b-v2",
|
|
99
|
+
"free/nemotron-nano-12b-v2-vl"
|
|
103
100
|
];
|
|
104
101
|
}
|
|
105
102
|
});
|
|
@@ -317,6 +314,12 @@ var init_models = __esm({
|
|
|
317
314
|
// redirect to its successor so pinned callers land on 3.1-pro, not an error.
|
|
318
315
|
"google/gemini-3-pro-preview": "google/gemini-3.1-pro",
|
|
319
316
|
"gemini-3-pro-preview": "google/gemini-3.1-pro",
|
|
317
|
+
// Bare Pro shorthands — `gemini-3-pro` was never a real id (the 3-series Pro
|
|
318
|
+
// shipped as the -preview above, then 3.1), but callers reach for it anyway.
|
|
319
|
+
// Point them at the current Pro instead of a 400. (Thanks @0xCheetah1, #206.)
|
|
320
|
+
"gemini-pro": "google/gemini-3.1-pro",
|
|
321
|
+
"gemini-3-pro": "google/gemini-3.1-pro",
|
|
322
|
+
"gemini-3.1-pro": "google/gemini-3.1-pro",
|
|
320
323
|
gemini: "google/gemini-2.5-pro",
|
|
321
324
|
flash: "google/gemini-2.5-flash",
|
|
322
325
|
"gemini-3.1-pro-preview": "google/gemini-3.1-pro",
|
|
@@ -469,15 +472,17 @@ var init_models = __esm({
|
|
|
469
472
|
// Note: auto, eco, premium are virtual routing profiles registered in BLOCKRUN_MODELS
|
|
470
473
|
// They don't need aliases since they're already top-level model IDs
|
|
471
474
|
// Image generation
|
|
472
|
-
|
|
473
|
-
|
|
475
|
+
// dall-e-3 was delisted upstream 2026-05-25; legacy aliases point at its
|
|
476
|
+
// OpenAI successor. flux (black-forest) has no gateway entry anymore.
|
|
477
|
+
dalle: "openai/gpt-image-2",
|
|
478
|
+
"dall-e": "openai/gpt-image-2",
|
|
474
479
|
"gpt-image": "openai/gpt-image-1",
|
|
480
|
+
"gpt-image-2": "openai/gpt-image-2",
|
|
475
481
|
"nano-banana": "google/nano-banana",
|
|
476
482
|
banana: "google/nano-banana",
|
|
477
483
|
"banana-pro": "google/nano-banana-pro",
|
|
478
484
|
"nano-banana-pro": "google/nano-banana-pro",
|
|
479
|
-
|
|
480
|
-
"flux-pro": "black-forest/flux-1.1-pro",
|
|
485
|
+
seedream: "bytedance/seedream-5-pro",
|
|
481
486
|
"grok-imagine": "xai/grok-imagine-image",
|
|
482
487
|
"grok-imagine-pro": "xai/grok-imagine-image-pro",
|
|
483
488
|
cogview: "zai/cogview-4",
|
|
@@ -84937,7 +84942,7 @@ async function startProxy(options) {
|
|
|
84937
84942
|
let imgCost = 0;
|
|
84938
84943
|
try {
|
|
84939
84944
|
const parsed = JSON.parse(reqBody.toString());
|
|
84940
|
-
imgModel = parsed.model || "
|
|
84945
|
+
imgModel = parsed.model || "google/nano-banana";
|
|
84941
84946
|
const n = parsed.n || 1;
|
|
84942
84947
|
imgCost = estimateImageCost(imgModel, parsed.size, n);
|
|
84943
84948
|
} catch {
|
|
@@ -85940,17 +85945,22 @@ async function proxyRequest(req, res, apiBase, payFetch, options, routerOpts, de
|
|
|
85940
85945
|
if (modelMatch) {
|
|
85941
85946
|
const raw = modelMatch[1];
|
|
85942
85947
|
const IMAGE_MODEL_ALIASES = {
|
|
85943
|
-
|
|
85944
|
-
|
|
85945
|
-
|
|
85948
|
+
// dall-e-3 delisted upstream 2026-05-25 — legacy aliases route to
|
|
85949
|
+
// the OpenAI successor instead of a guaranteed 400.
|
|
85950
|
+
"dall-e-3": "openai/gpt-image-2",
|
|
85951
|
+
dalle3: "openai/gpt-image-2",
|
|
85952
|
+
dalle: "openai/gpt-image-2",
|
|
85946
85953
|
"gpt-image": "openai/gpt-image-1",
|
|
85947
85954
|
"gpt-image-1": "openai/gpt-image-1",
|
|
85948
|
-
|
|
85949
|
-
|
|
85955
|
+
"gpt-image-2": "openai/gpt-image-2",
|
|
85956
|
+
seedream: "bytedance/seedream-5-pro",
|
|
85950
85957
|
banana: "google/nano-banana",
|
|
85951
85958
|
"nano-banana": "google/nano-banana",
|
|
85952
85959
|
"banana-pro": "google/nano-banana-pro",
|
|
85953
|
-
"nano-banana-pro": "google/nano-banana-pro"
|
|
85960
|
+
"nano-banana-pro": "google/nano-banana-pro",
|
|
85961
|
+
"grok-imagine": "xai/grok-imagine-image",
|
|
85962
|
+
"grok-imagine-pro": "xai/grok-imagine-image-pro",
|
|
85963
|
+
cogview: "zai/cogview-4"
|
|
85954
85964
|
};
|
|
85955
85965
|
imageModel = IMAGE_MODEL_ALIASES[raw] ?? raw;
|
|
85956
85966
|
imagePrompt = imagePrompt.replace(/--model\s+\S+/, "").trim();
|
|
@@ -85971,13 +85981,15 @@ async function proxyRequest(req, res, apiBase, payFetch, options, routerOpts, de
|
|
|
85971
85981
|
"Models:",
|
|
85972
85982
|
" nano-banana Google Gemini Flash \u2014 $0.05/image",
|
|
85973
85983
|
" banana-pro Google Gemini Pro \u2014 $0.10/image (up to 4K)",
|
|
85974
|
-
" dall-e-3 OpenAI DALL-E 3 \u2014 $0.04/image",
|
|
85975
85984
|
" gpt-image OpenAI GPT Image 1 \u2014 $0.02/image",
|
|
85976
|
-
"
|
|
85985
|
+
" gpt-image-2 OpenAI GPT Image 2 \u2014 $0.06/image",
|
|
85986
|
+
" seedream ByteDance Seedream 5 Pro \u2014 $0.045/image",
|
|
85987
|
+
" grok-imagine xAI Grok Imagine \u2014 $0.02/image",
|
|
85988
|
+
" cogview Zhipu CogView-4 \u2014 $0.015/image",
|
|
85977
85989
|
"",
|
|
85978
85990
|
"Examples:",
|
|
85979
85991
|
" /cr-imagegen a cat wearing sunglasses",
|
|
85980
|
-
" /cr-imagegen --model
|
|
85992
|
+
" /cr-imagegen --model gpt-image-2 a futuristic city at sunset",
|
|
85981
85993
|
" /cr-imagegen --model banana-pro --size 2048x2048 mountain landscape",
|
|
85982
85994
|
"",
|
|
85983
85995
|
"Note: `/imagegen` is still accepted in chat for backward compatibility."
|
|
@@ -87907,10 +87919,6 @@ var init_proxy = __esm({
|
|
|
87907
87919
|
THINKING_BLOCK_RE = /<\s*(?:think(?:ing)?|thought|antthinking|antml:thinking)\b[^>]*>[\s\S]*?<\s*\/\s*(?:think(?:ing)?|thought|antthinking|antml:thinking)\s*>/gi;
|
|
87908
87920
|
BLOCKRUN_MODEL_BY_ID = new Map(BLOCKRUN_MODELS.map((m) => [m.id, m]));
|
|
87909
87921
|
IMAGE_PRICING = {
|
|
87910
|
-
"openai/dall-e-3": {
|
|
87911
|
-
default: 0.04,
|
|
87912
|
-
sizes: { "1024x1024": 0.04, "1792x1024": 0.08, "1024x1792": 0.08 }
|
|
87913
|
-
},
|
|
87914
87922
|
"openai/gpt-image-1": {
|
|
87915
87923
|
default: 0.02,
|
|
87916
87924
|
sizes: { "1024x1024": 0.02, "1536x1024": 0.04, "1024x1536": 0.04 }
|
|
@@ -87919,7 +87927,10 @@ var init_proxy = __esm({
|
|
|
87919
87927
|
default: 0.06,
|
|
87920
87928
|
sizes: { "1024x1024": 0.06, "1536x1024": 0.12, "1024x1536": 0.12 }
|
|
87921
87929
|
},
|
|
87922
|
-
"
|
|
87930
|
+
"bytedance/seedream-5-pro": {
|
|
87931
|
+
default: 0.045,
|
|
87932
|
+
sizes: { "1024x1024": 0.045, "2048x1024": 0.045, "2048x2048": 0.09 }
|
|
87933
|
+
},
|
|
87923
87934
|
"google/nano-banana": { default: 0.05 },
|
|
87924
87935
|
"google/nano-banana-pro": {
|
|
87925
87936
|
default: 0.1,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: clawrouter
|
|
3
|
-
description: Hosted-gateway LLM router — save 67% on inference costs. A local proxy that forwards each request to the blockrun.ai gateway, which routes to the cheapest capable model across 55+ models from OpenAI, Anthropic, Google, DeepSeek, xAI, NVIDIA, and more.
|
|
3
|
+
description: Hosted-gateway LLM router — save 67% on inference costs. A local proxy that forwards each request to the blockrun.ai gateway, which routes to the cheapest capable model across 55+ models from OpenAI, Anthropic, Google, DeepSeek, xAI, NVIDIA, and more. 8 free NVIDIA models included. Also exposes realtime market data (global stocks, crypto, FX, commodities), Twitter/X intelligence, prediction-market data across Polymarket, Kalshi, Limitless, Opinion, Predict.Fun, dFlow + UMA oracle resolution + wallet identity & clustering, phone-number intelligence (carrier + SIM-swap fraud detection) plus AI-powered outbound voice calls (Twilio + Bland.ai), AND the Surf unified crypto data API (84 endpoints — CEX/DEX, on-chain SQL over 80+ ClickHouse tables, 100M+ labeled wallets, prediction markets, social/CT mindshare, news, VC fund intel) as built-in agent tools. Not a local-inference tool — prompts are sent to the blockrun.ai gateway.
|
|
4
4
|
triggers:
|
|
5
5
|
- "clawrouter"
|
|
6
6
|
- "claw router"
|
|
@@ -53,7 +53,7 @@ metadata:
|
|
|
53
53
|
|
|
54
54
|
# ClawRouter
|
|
55
55
|
|
|
56
|
-
Hosted-gateway LLM router that saves 67% on inference costs by forwarding each request to the blockrun.ai gateway, which picks the cheapest model capable of handling it across 55+ models from 9 providers (
|
|
56
|
+
Hosted-gateway LLM router that saves 67% on inference costs by forwarding each request to the blockrun.ai gateway, which picks the cheapest model capable of handling it across 55+ models from 9 providers (8 free NVIDIA models). All billing flows through one USDC wallet; you do not hold provider API keys.
|
|
57
57
|
|
|
58
58
|
**This is not a local-inference tool.** ClawRouter is a thin local proxy. Your prompts are sent over HTTPS to the blockrun.ai gateway for model execution. If your workload requires inference that never leaves your machine, use a local runtime like Ollama — ClawRouter is not the right tool for that use case.
|
|
59
59
|
|
|
@@ -135,7 +135,7 @@ Rules handle ~~80% of requests in <1ms. Only ambiguous queries hit the LLM class
|
|
|
135
135
|
|
|
136
136
|
## Available Models
|
|
137
137
|
|
|
138
|
-
55+ models including: gpt-5.6-terra [balanced, stable default], gpt-5.6-sol [flagship], gpt-5.6-luna [cost-efficient], gpt-5.5, gpt-5.4, gpt-4o, o3, claude-
|
|
138
|
+
55+ models including: gpt-5.6-terra [balanced, stable default], gpt-5.6-sol [flagship], gpt-5.6-luna [cost-efficient], gpt-5.5, gpt-5.4, gpt-4o, o3, claude-fable-5, claude-opus-4.8, claude-opus-4.7, claude-opus-4.5, claude-sonnet-5, claude-sonnet-4.6, gemini-3.1-pro, gemini-2.5-flash, deepseek-v4-pro, deepseek-chat, grok-4.5, grok-4.3, grok-build-0.1, kimi-k2.7, and 8 free NVIDIA models (mistral-large-3-675b [default, 675B flagship], qwen3-next-80b-a3b-instruct, seed-oss-36b [coding], nemotron-3-nano-omni-30b-a3b-reasoning [vision], mistral-nemotron, step-3.7-flash, nemotron-nano-9b-v2, nemotron-nano-12b-v2-vl [vision]).
|
|
139
139
|
|
|
140
140
|
## Built-in Agent Tools
|
|
141
141
|
|
|
@@ -158,7 +158,7 @@ Realtime prices and historical OHLC across every asset class. The agent should c
|
|
|
158
158
|
|
|
159
159
|
| Tool | Purpose | Price |
|
|
160
160
|
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------- |
|
|
161
|
-
| `blockrun_image_generation` | 8 image models —
|
|
161
|
+
| `blockrun_image_generation` | 8 image models — GPT Image 1/2, Nano Banana / Pro, Seedream 5 Pro, Grok Imagine / Pro, CogView-4 | $0.015–$0.15 / image |
|
|
162
162
|
| `blockrun_image_edit` | Edit / inpaint existing image (openai/gpt-image-1) | $0.02–$0.04 / image |
|
|
163
163
|
| `blockrun_video_generation` | Grok Imagine + ByteDance Seedance (1.5-pro / 2.0-fast / 2.0) at 720p with synced audio (t2v default), 5–10s, + OpenAI Sora 2 via Azure (`azure/sora-2`, 4/8/12s, t2v + i2v, rejects human faces in reference images). Seedance is token-priced upstream (~20,256 tokens/sec at the 720p+audio default — 2× the prior 480p rate); `image_url` (image-to-video) costs the same as t2v since 2026-06-01. Seedance 2.0 variants accept optional `real_face_asset_id` (`ta_…`) for BytePlus RealFace character-consistency — mutually exclusive with `image_url`. | $0.05/s (Grok); $0.10/s (Sora 2); Seedance ~$0.46–$1.49 per 5s clip |
|
|
164
164
|
|
package/skills/imagegen/SKILL.md
CHANGED
|
@@ -7,8 +7,7 @@ triggers:
|
|
|
7
7
|
- "clawrouter image"
|
|
8
8
|
- "generate image via blockrun"
|
|
9
9
|
- "blockrun ai art"
|
|
10
|
-
- "blockrun
|
|
11
|
-
- "blockrun flux"
|
|
10
|
+
- "blockrun seedream"
|
|
12
11
|
- "blockrun nano banana"
|
|
13
12
|
- "blockrun cogview"
|
|
14
13
|
- "blockrun grok imagine"
|
|
@@ -60,10 +59,9 @@ Display inline: ``
|
|
|
60
59
|
| ------------------ | ---------------------------- | ------------ | ------------------------------- | ---------------------------------------------------------------- |
|
|
61
60
|
| `nano-banana` | `google/nano-banana` | $0.05 | 1024×1024, 1216×832, 1024×1792 | Default — fast, cheap, good quality |
|
|
62
61
|
| `banana-pro` | `google/nano-banana-pro` | $0.10–$0.15 | up to 4096×4096 | High-res, large format |
|
|
63
|
-
| `dalle` | `openai/dall-e-3` | $0.04–$0.08 | 1024×1024, 1792×1024, 1024×1792 | Photorealistic, complex scenes |
|
|
64
62
|
| `gpt-image` | `openai/gpt-image-1` | $0.02–$0.04 | 1024×1024, 1536×1024, 1024×1536 | Budget option; supports editing |
|
|
65
|
-
|
|
|
66
|
-
| `
|
|
63
|
+
| `gpt-image-2` | `openai/gpt-image-2` | $0.06–$0.12 | 1024×1024, 1536×1024, 1024×1536 | Photorealistic, reasoning-driven, text rendering (slow — proxy polls up to 5min); legacy `dalle` alias routes here |
|
|
64
|
+
| `seedream` | `bytedance/seedream-5-pro` | $0.045–$0.09 | up to 2848×1600 / 2304×1728 | Flagship quality, reference-image support |
|
|
67
65
|
| `grok-imagine` | `xai/grok-imagine-image` | $0.02 | 1024×1024 | xAI Grok image style |
|
|
68
66
|
| `grok-imagine-pro` | `xai/grok-imagine-image-pro` | $0.07 | 1024×1024 | Grok high-quality |
|
|
69
67
|
| `cogview` | `zai/cogview-4` | $0.015–$0.02 | 512×512 to 1440×1440 | Cheapest — Zhipu CogView |
|
|
@@ -72,17 +70,18 @@ Display inline: ``
|
|
|
72
70
|
|
|
73
71
|
- Default → `nano-banana`
|
|
74
72
|
- "high res" / "large" → `banana-pro`
|
|
75
|
-
- "photorealistic" /
|
|
73
|
+
- "photorealistic" / complex scenes → `gpt-image-2`
|
|
74
|
+
- "flagship quality" / reference image → `seedream`
|
|
76
75
|
- "budget" / "cheap" → `cogview`
|
|
77
76
|
- "editable" / "inpainting" → `gpt-image` (only edit-capable model)
|
|
78
|
-
- "artistic" / flexible content → `
|
|
77
|
+
- "artistic" / flexible content → `grok-imagine`
|
|
79
78
|
- "grok style" → `grok-imagine` or `grok-imagine-pro`
|
|
80
79
|
|
|
81
80
|
**Choosing a size:**
|
|
82
81
|
|
|
83
82
|
- Default: `1024x1024`
|
|
84
83
|
- Portrait: `1024x1792`
|
|
85
|
-
- Landscape: `
|
|
84
|
+
- Landscape: `1536x1024` (gpt-image / gpt-image-2) or `1216x832` (nano-banana)
|
|
86
85
|
- High-res: `2048x2048` or `4096x4096` with `banana-pro` only
|
|
87
86
|
|
|
88
87
|
---
|
|
@@ -139,5 +138,5 @@ Response is identical to generation:
|
|
|
139
138
|
- Payment is automatic via x402 — deducted from the user's BlockRun wallet
|
|
140
139
|
- If the call fails with a payment error, tell the user to fund their wallet at [blockrun.ai](https://blockrun.ai)
|
|
141
140
|
- Google models may return base64 internally — ClawRouter uploads automatically and returns a hosted URL
|
|
142
|
-
-
|
|
143
|
-
- Image editing is only available with `gpt-image-1`; generation supports all
|
|
141
|
+
- OpenAI image models enforce OpenAI content policy; use `nano-banana` or `grok-imagine` for more flexibility
|
|
142
|
+
- Image editing is only available with `gpt-image-1`; generation supports all listed models
|
package/src/top-models.json
CHANGED
|
@@ -24,9 +24,6 @@
|
|
|
24
24
|
"google/gemini-3-flash-preview",
|
|
25
25
|
"xai/grok-4.5",
|
|
26
26
|
"xai/grok-4.3",
|
|
27
|
-
"xai/grok-4-0709",
|
|
28
|
-
"xai/grok-4-1-fast-reasoning",
|
|
29
|
-
"xai/grok-3",
|
|
30
27
|
"xai/grok-build-0.1",
|
|
31
28
|
"zai/glm-5.2",
|
|
32
29
|
"zai/glm-5.1",
|
|
@@ -38,12 +35,12 @@
|
|
|
38
35
|
"deepseek/deepseek-v4-pro",
|
|
39
36
|
"deepseek/deepseek-chat",
|
|
40
37
|
"deepseek/deepseek-reasoner",
|
|
41
|
-
"free/gpt-oss-120b",
|
|
42
|
-
"free/gpt-oss-20b",
|
|
43
38
|
"free/mistral-large-3-675b",
|
|
44
|
-
"free/qwen3.5-122b-a10b",
|
|
45
39
|
"free/qwen3-next-80b-a3b-instruct",
|
|
46
|
-
"free/llama-4-maverick",
|
|
47
40
|
"free/seed-oss-36b",
|
|
48
|
-
"free/nemotron-3-nano-omni-30b-a3b-reasoning"
|
|
41
|
+
"free/nemotron-3-nano-omni-30b-a3b-reasoning",
|
|
42
|
+
"free/mistral-nemotron",
|
|
43
|
+
"free/step-3.7-flash",
|
|
44
|
+
"free/nemotron-nano-9b-v2",
|
|
45
|
+
"free/nemotron-nano-12b-v2-vl"
|
|
49
46
|
]
|