@blockrun/clawrouter 0.12.243 → 0.12.244
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
CHANGED
|
@@ -34,7 +34,7 @@ Agents can only sign transactions.<br><br>
|
|
|
34
34
|
|
|
35
35
|
</div>
|
|
36
36
|
|
|
37
|
-
> **ClawRouter** is an open-source smart LLM router that reduces AI API costs by up to <!-- br:savings.autoVsBaselinePct -->
|
|
37
|
+
> **ClawRouter** is an open-source smart LLM router that reduces AI API costs by up to <!-- br:savings.autoVsBaselinePct -->88<!-- /br:savings.autoVsBaselinePct -->%. It analyzes each request across <!-- br:clawrouter.dimensions -->15<!-- /br:clawrouter.dimensions --> dimensions and routes to the cheapest capable model in under 1ms, entirely locally. ClawRouter is the only LLM router built for autonomous AI agents — it uses wallet signatures for authentication (no API keys) and USDC micropayments via the x402 protocol (no credit cards). <!-- br:models.chatVisible -->71<!-- /br:models.chatVisible --> models from OpenAI, Anthropic, Google, xAI, DeepSeek, and more. MIT licensed.
|
|
38
38
|
|
|
39
39
|
---
|
|
40
40
|
|
|
@@ -193,7 +193,7 @@ Choose your routing strategy with `/model <profile>`:
|
|
|
193
193
|
| `/model free` | Free NVIDIA models | **100%** | $0 balance, learning |
|
|
194
194
|
| `/model auto` | Balanced (default) | † Withheld from `/v1/models` — the router still calls it by direct ID, but you will not find it on the public pricing page. See [savings-mix.json](https://github.com/BlockRunAI/blockrun/blob/main/src/brand/savings-mix.json), which prices the published savings claim on visible models only. |
|
|
195
195
|
|
|
196
|
-
**<!-- br:savings.autoVsBaselinePct -->
|
|
196
|
+
**<!-- br:savings.autoVsBaselinePct -->88<!-- /br:savings.autoVsBaselinePct -->%** | General use |
|
|
197
197
|
| `/model eco` | Cheapest possible | **<!-- br:savings.ecoVsBaselinePct -->98<!-- /br:savings.ecoVsBaselinePct -->%** | Maximum savings |
|
|
198
198
|
| `/model premium` | Best quality | 0% | Mission-critical |
|
|
199
199
|
|
|
@@ -205,8 +205,10 @@ Choose your routing strategy with `/model <profile>`:
|
|
|
205
205
|
|
|
206
206
|
**100% local routing. <1ms latency. Zero external API calls.**
|
|
207
207
|
|
|
208
|
+
The scorer weighs <!-- br:clawrouter.dimensions -->15<!-- /br:clawrouter.dimensions --> dimensions of the request:
|
|
209
|
+
|
|
208
210
|
```
|
|
209
|
-
Request → Weighted Scorer
|
|
211
|
+
Request → Weighted Scorer → Tier → Best Model → Response
|
|
210
212
|
```
|
|
211
213
|
|
|
212
214
|
| Tier | ECO Model | AUTO Model | PREMIUM Model |
|
|
@@ -216,7 +218,7 @@ Request → Weighted Scorer (<!-- br:clawrouter.dimensions -->14<!-- /br:clawrou
|
|
|
216
218
|
| COMPLEX | gemini-3.1-flash-lite ($0.25/$1.50) | gemini-3.1-pro ($2/$12) | claude-fable-5 ($10/$50) |
|
|
217
219
|
| REASONING | grok-4-1-fast-reasoning † ($0.20/$0.50) | grok-4-1-fast-reasoning † ($0.20/$0.50) | claude-sonnet-4.6 ($3/$15) |
|
|
218
220
|
|
|
219
|
-
**<!-- br:savings.autoVsBaselinePct -->
|
|
221
|
+
**<!-- br:savings.autoVsBaselinePct -->88<!-- /br:savings.autoVsBaselinePct -->% cheaper than pinning Claude Opus 5** for the same traffic, on `auto`; **<!-- br:savings.ecoVsBaselinePct -->98<!-- /br:savings.ecoVsBaselinePct -->%** on `eco`.
|
|
220
222
|
|
|
221
223
|
Not an "up to" figure. The baseline, the workload mix and the token ratio are
|
|
222
224
|
published in [`savings-mix.json`](https://github.com/BlockRunAI/blockrun/blob/main/src/brand/savings-mix.json),
|
|
@@ -716,7 +718,7 @@ ClawRouter is an open-source (MIT licensed) smart LLM router built for autonomou
|
|
|
716
718
|
|
|
717
719
|
### How much can ClawRouter save on LLM costs?
|
|
718
720
|
|
|
719
|
-
On the `auto` profile ClawRouter costs <!-- br:savings.autoVsBaselinePct -->
|
|
721
|
+
On the `auto` profile ClawRouter costs <!-- br:savings.autoVsBaselinePct -->88<!-- /br:savings.autoVsBaselinePct -->% less than pinning Claude Opus 5 for every request, and <!-- br:savings.ecoVsBaselinePct -->98<!-- /br:savings.ecoVsBaselinePct -->% less on `eco`. That is computed from a published workload mix rather than estimated — see [savings-mix.json](https://github.com/BlockRunAI/blockrun/blob/main/src/brand/savings-mix.json) for the baseline and assumptions. Actual savings depend on your workload — simple queries are routed to free models ($0/request), while complex tasks get premium models.
|
|
720
722
|
|
|
721
723
|
### How does ClawRouter compare to OpenRouter?
|
|
722
724
|
|
package/dist/cli.js
CHANGED
|
@@ -37005,10 +37005,17 @@ var init_models = __esm({
|
|
|
37005
37005
|
cogview: "zai/cogview-4",
|
|
37006
37006
|
// Video generation
|
|
37007
37007
|
"grok-video": "xai/grok-imagine-video",
|
|
37008
|
+
// Bare `seedance` deliberately stays on 1.5-pro. It is the cheapest of the
|
|
37009
|
+
// family ($0.070/s vs 2.5's $0.315/s) and `/videogen` documents it as
|
|
37010
|
+
// "default — cheapest"; repointing it at the newest tier would 4.5x the
|
|
37011
|
+
// quote for every caller who typed the short name expecting the default.
|
|
37012
|
+
// Same reasoning that keeps `kimi` on K2.7. Pin 2.5 explicitly to opt in.
|
|
37008
37013
|
seedance: "bytedance/seedance-1.5-pro",
|
|
37009
37014
|
"seedance-1.5": "bytedance/seedance-1.5-pro",
|
|
37010
37015
|
"seedance-2-fast": "bytedance/seedance-2.0-fast",
|
|
37011
|
-
"seedance-2": "bytedance/seedance-2.0"
|
|
37016
|
+
"seedance-2": "bytedance/seedance-2.0",
|
|
37017
|
+
"seedance-2.5": "bytedance/seedance-2.5",
|
|
37018
|
+
"seedance-2-5": "bytedance/seedance-2.5"
|
|
37012
37019
|
};
|
|
37013
37020
|
BLOCKRUN_MODELS = [
|
|
37014
37021
|
// Smart routing meta-models — proxy replaces with actual model
|
|
@@ -92698,13 +92705,25 @@ var init_proxy = __esm({
|
|
|
92698
92705
|
};
|
|
92699
92706
|
VIDEO_PRICING = {
|
|
92700
92707
|
"xai/grok-imagine-video": { pricePerSecond: 0.05, defaultDurationSeconds: 8 },
|
|
92701
|
-
|
|
92708
|
+
// Seedance rates re-synced 2026-08-08 from blockrun's models.ts after the
|
|
92709
|
+
// family reprice (blockrun #351/#354). All three were carrying pre-reprice
|
|
92710
|
+
// numbers, which only ever skewed the usage log — the charge comes from the
|
|
92711
|
+
// x402 header, and estimateVideoCost is the fallback for when it is absent.
|
|
92712
|
+
"bytedance/seedance-1.5-pro": { pricePerSecond: 0.07, defaultDurationSeconds: 5 },
|
|
92702
92713
|
"bytedance/seedance-2.0-fast": {
|
|
92703
|
-
pricePerSecond: 0.
|
|
92714
|
+
pricePerSecond: 0.165,
|
|
92704
92715
|
defaultDurationSeconds: 5
|
|
92705
92716
|
},
|
|
92706
92717
|
"bytedance/seedance-2.0": {
|
|
92707
|
-
pricePerSecond: 0.
|
|
92718
|
+
pricePerSecond: 0.227,
|
|
92719
|
+
defaultDurationSeconds: 5
|
|
92720
|
+
},
|
|
92721
|
+
// Seedance 2.5: 720p with synced audio, up to 30s. Not a replacement for 2.0
|
|
92722
|
+
// Pro — that is still the one for 1080p/4K. No OpenRouter failover exists for
|
|
92723
|
+
// 2.5, so a token360 outage surfaces as an error instead of quietly rendering
|
|
92724
|
+
// on another model.
|
|
92725
|
+
"bytedance/seedance-2.5": {
|
|
92726
|
+
pricePerSecond: 0.315,
|
|
92708
92727
|
defaultDurationSeconds: 5
|
|
92709
92728
|
},
|
|
92710
92729
|
// Sora 2 via Azure AI Foundry — flat $0.10/s for both t2v and i2v.
|
|
@@ -226046,7 +226065,8 @@ function buildVideoGenerationProvider() {
|
|
|
226046
226065
|
"xai/grok-imagine-video",
|
|
226047
226066
|
"bytedance/seedance-1.5-pro",
|
|
226048
226067
|
"bytedance/seedance-2.0-fast",
|
|
226049
|
-
"bytedance/seedance-2.0"
|
|
226068
|
+
"bytedance/seedance-2.0",
|
|
226069
|
+
"bytedance/seedance-2.5"
|
|
226050
226070
|
],
|
|
226051
226071
|
capabilities: {
|
|
226052
226072
|
maxVideos: 1,
|
|
@@ -226599,7 +226619,7 @@ ${errText}`
|
|
|
226599
226619
|
const parsed = parseGenArgs(ctx.args ?? "");
|
|
226600
226620
|
if (!parsed.prompt) {
|
|
226601
226621
|
return {
|
|
226602
|
-
text: "Usage: `/videogen <prompt> [--model=<alias>] [--duration=5|8|10]`\n\nAliases: `seedance` (1.5-pro, default \u2014 cheapest), `seedance-2-fast`, `seedance-2`, `grok-video`.\n\n\u23F1\uFE0F Generation takes 60\u2013180 seconds. Payment settles only on success."
|
|
226622
|
+
text: "Usage: `/videogen <prompt> [--model=<alias>] [--duration=5|8|10]`\n\nAliases: `seedance` (1.5-pro, default \u2014 cheapest), `seedance-2-fast`, `seedance-2`, `seedance-2.5` (720p + synced audio, long-form), `grok-video`.\n\n\u23F1\uFE0F Generation takes 60\u2013180 seconds. Payment settles only on success."
|
|
226603
226623
|
};
|
|
226604
226624
|
}
|
|
226605
226625
|
const model = resolveModelAlias(parsed.model ?? "seedance");
|
package/dist/index.js
CHANGED
|
@@ -533,10 +533,17 @@ var init_models = __esm({
|
|
|
533
533
|
cogview: "zai/cogview-4",
|
|
534
534
|
// Video generation
|
|
535
535
|
"grok-video": "xai/grok-imagine-video",
|
|
536
|
+
// Bare `seedance` deliberately stays on 1.5-pro. It is the cheapest of the
|
|
537
|
+
// family ($0.070/s vs 2.5's $0.315/s) and `/videogen` documents it as
|
|
538
|
+
// "default — cheapest"; repointing it at the newest tier would 4.5x the
|
|
539
|
+
// quote for every caller who typed the short name expecting the default.
|
|
540
|
+
// Same reasoning that keeps `kimi` on K2.7. Pin 2.5 explicitly to opt in.
|
|
536
541
|
seedance: "bytedance/seedance-1.5-pro",
|
|
537
542
|
"seedance-1.5": "bytedance/seedance-1.5-pro",
|
|
538
543
|
"seedance-2-fast": "bytedance/seedance-2.0-fast",
|
|
539
|
-
"seedance-2": "bytedance/seedance-2.0"
|
|
544
|
+
"seedance-2": "bytedance/seedance-2.0",
|
|
545
|
+
"seedance-2.5": "bytedance/seedance-2.5",
|
|
546
|
+
"seedance-2-5": "bytedance/seedance-2.5"
|
|
540
547
|
};
|
|
541
548
|
BLOCKRUN_MODELS = [
|
|
542
549
|
// Smart routing meta-models — proxy replaces with actual model
|
|
@@ -92518,13 +92525,25 @@ var init_proxy = __esm({
|
|
|
92518
92525
|
};
|
|
92519
92526
|
VIDEO_PRICING = {
|
|
92520
92527
|
"xai/grok-imagine-video": { pricePerSecond: 0.05, defaultDurationSeconds: 8 },
|
|
92521
|
-
|
|
92528
|
+
// Seedance rates re-synced 2026-08-08 from blockrun's models.ts after the
|
|
92529
|
+
// family reprice (blockrun #351/#354). All three were carrying pre-reprice
|
|
92530
|
+
// numbers, which only ever skewed the usage log — the charge comes from the
|
|
92531
|
+
// x402 header, and estimateVideoCost is the fallback for when it is absent.
|
|
92532
|
+
"bytedance/seedance-1.5-pro": { pricePerSecond: 0.07, defaultDurationSeconds: 5 },
|
|
92522
92533
|
"bytedance/seedance-2.0-fast": {
|
|
92523
|
-
pricePerSecond: 0.
|
|
92534
|
+
pricePerSecond: 0.165,
|
|
92524
92535
|
defaultDurationSeconds: 5
|
|
92525
92536
|
},
|
|
92526
92537
|
"bytedance/seedance-2.0": {
|
|
92527
|
-
pricePerSecond: 0.
|
|
92538
|
+
pricePerSecond: 0.227,
|
|
92539
|
+
defaultDurationSeconds: 5
|
|
92540
|
+
},
|
|
92541
|
+
// Seedance 2.5: 720p with synced audio, up to 30s. Not a replacement for 2.0
|
|
92542
|
+
// Pro — that is still the one for 1080p/4K. No OpenRouter failover exists for
|
|
92543
|
+
// 2.5, so a token360 outage surfaces as an error instead of quietly rendering
|
|
92544
|
+
// on another model.
|
|
92545
|
+
"bytedance/seedance-2.5": {
|
|
92546
|
+
pricePerSecond: 0.315,
|
|
92528
92547
|
defaultDurationSeconds: 5
|
|
92529
92548
|
},
|
|
92530
92549
|
// Sora 2 via Azure AI Foundry — flat $0.10/s for both t2v and i2v.
|
|
@@ -225799,7 +225818,8 @@ function buildVideoGenerationProvider() {
|
|
|
225799
225818
|
"xai/grok-imagine-video",
|
|
225800
225819
|
"bytedance/seedance-1.5-pro",
|
|
225801
225820
|
"bytedance/seedance-2.0-fast",
|
|
225802
|
-
"bytedance/seedance-2.0"
|
|
225821
|
+
"bytedance/seedance-2.0",
|
|
225822
|
+
"bytedance/seedance-2.5"
|
|
225803
225823
|
],
|
|
225804
225824
|
capabilities: {
|
|
225805
225825
|
maxVideos: 1,
|
|
@@ -226351,7 +226371,7 @@ ${errText}`
|
|
|
226351
226371
|
const parsed = parseGenArgs(ctx.args ?? "");
|
|
226352
226372
|
if (!parsed.prompt) {
|
|
226353
226373
|
return {
|
|
226354
|
-
text: "Usage: `/videogen <prompt> [--model=<alias>] [--duration=5|8|10]`\n\nAliases: `seedance` (1.5-pro, default \u2014 cheapest), `seedance-2-fast`, `seedance-2`, `grok-video`.\n\n\u23F1\uFE0F Generation takes 60\u2013180 seconds. Payment settles only on success."
|
|
226374
|
+
text: "Usage: `/videogen <prompt> [--model=<alias>] [--duration=5|8|10]`\n\nAliases: `seedance` (1.5-pro, default \u2014 cheapest), `seedance-2-fast`, `seedance-2`, `seedance-2.5` (720p + synced audio, long-form), `grok-video`.\n\n\u23F1\uFE0F Generation takes 60\u2013180 seconds. Payment settles only on success."
|
|
226355
226375
|
};
|
|
226356
226376
|
}
|
|
226357
226377
|
const model = resolveModelAlias(parsed.model ?? "seedance");
|
|
@@ -56,7 +56,7 @@ From 20,000+ production requests:
|
|
|
56
56
|
| Free models (trivial tasks) | 12.8% | $0.00 |
|
|
57
57
|
| Others | 13.8% | varies |
|
|
58
58
|
|
|
59
|
-
**Result: <!-- br:savings.autoVsBaselinePct -->
|
|
59
|
+
**Result: <!-- br:savings.autoVsBaselinePct -->88<!-- /br:savings.autoVsBaselinePct -->% cheaper than pinning Claude Opus 5 for every request** — the published figure, priced on a stated workload mix rather than estimated.
|
|
60
60
|
|
|
61
61
|
A typical user running 10K mixed requests/month:
|
|
62
62
|
|
|
@@ -271,7 +271,7 @@ No silent drops. No stale catalog. Models are benchmarked for speed, quality, an
|
|
|
271
271
|
| **Model catalog** | Laggy, silent drops | Curated <!-- br:models.chatVisible -->71<!-- /br:models.chatVisible --> models, redirect aliases |
|
|
272
272
|
| **Budget control** | Monthly invoice | Per-session cap (`maxCostPerRun`) |
|
|
273
273
|
| **Setup** | Create account, paste key | Agent generates wallet, auto-configured |
|
|
274
|
-
| **Average cost** | $25/M tokens (Opus direct) | auto-routed = **<!-- br:savings.autoVsBaselinePct -->
|
|
274
|
+
| **Average cost** | $25/M tokens (Opus direct) | auto-routed = **<!-- br:savings.autoVsBaselinePct -->88<!-- /br:savings.autoVsBaselinePct -->% savings** |
|
|
275
275
|
|
|
276
276
|

|
|
277
277
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blockrun/clawrouter",
|
|
3
|
-
"version": "0.12.
|
|
4
|
-
"description": "Smart LLM router — save
|
|
3
|
+
"version": "0.12.244",
|
|
4
|
+
"description": "Smart LLM router — save 88% on inference costs. 71 models (6 free), one wallet, x402 micropayments.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: clawrouter
|
|
3
|
-
description: Hosted-gateway LLM router — save
|
|
3
|
+
description: Hosted-gateway LLM router — save 88% on inference costs. A local proxy that forwards each request to the blockrun.ai gateway, which routes to the cheapest capable model across 71 models from OpenAI, Anthropic, Google, DeepSeek, xAI, NVIDIA, and more. 6 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 <!-- br:savings.autoVsBaselinePct -->
|
|
56
|
+
Hosted-gateway LLM router that saves <!-- br:savings.autoVsBaselinePct -->88<!-- /br:savings.autoVsBaselinePct -->% on inference costs by forwarding each request to the blockrun.ai gateway, which picks the cheapest model capable of handling it across <!-- br:models.chatVisible -->71<!-- /br:models.chatVisible --> models from 9 providers (<!-- br:models.free -->6<!-- /br:models.free --> 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
|
|