@blockrun/clawrouter 0.12.80 → 0.12.82
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 +17 -6
- package/dist/cli.js +38 -8
- package/dist/cli.js.map +1 -1
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/docs/11-free-ai-models-zero-cost-blockrun.md +276 -0
- package/package.json +1 -1
- package/scripts/reinstall.sh +20 -1
- package/scripts/update.sh +20 -1
package/README.md
CHANGED
|
@@ -410,15 +410,15 @@ You're here. 55+ models, local smart routing, x402 USDC payments — the only st
|
|
|
410
410
|
</td>
|
|
411
411
|
<td width="50%">
|
|
412
412
|
|
|
413
|
-
###
|
|
413
|
+
### 🤖 [BRCC](https://github.com/BlockRunAI/brcc)
|
|
414
414
|
|
|
415
|
-
**
|
|
415
|
+
**BlockRun for Claude Code**
|
|
416
416
|
|
|
417
|
-
|
|
417
|
+
Run Claude Code with 50+ models, no rate limits, no Anthropic account, no phone verification. Pay per request with USDC — your wallet is your identity.
|
|
418
418
|
|
|
419
|
-
`
|
|
419
|
+
`curl -fsSL https://blockrun.ai/brcc-install | bash`
|
|
420
420
|
|
|
421
|
-
[](https://github.com/BlockRunAI/brcc)
|
|
422
422
|
|
|
423
423
|
</td>
|
|
424
424
|
</tr>
|
|
@@ -438,6 +438,17 @@ The first X analytics an agent can call. One function call = one intelligence re
|
|
|
438
438
|
| [Configuration](docs/configuration.md) | Environment variables |
|
|
439
439
|
| [Troubleshooting](docs/troubleshooting.md) | Common issues |
|
|
440
440
|
|
|
441
|
+
### Blog
|
|
442
|
+
|
|
443
|
+
| Article | Topic |
|
|
444
|
+
| ------- | ----- |
|
|
445
|
+
| [11 Free AI Models, Zero Cost](docs/11-free-ai-models-zero-cost-blockrun.md) | How BlockRun gives developers top-tier LLMs for nothing |
|
|
446
|
+
| [ClawRouter Cuts LLM API Costs 500×](docs/clawrouter-cuts-llm-api-costs-500x.md) | Deep dive into cost savings |
|
|
447
|
+
| [ClawRouter vs OpenRouter](docs/clawrouter-vs-openrouter-llm-routing-comparison.md) | Head-to-head comparison |
|
|
448
|
+
| [Smart LLM Router: 14-Dimension Classifier](docs/smart-llm-router-14-dimension-classifier.md) | How the routing engine works |
|
|
449
|
+
| [LLM Router Benchmark: 46 Models, Sub-1ms](docs/llm-router-benchmark-46-models-sub-1ms-routing.md) | Performance benchmarks |
|
|
450
|
+
| [Anthropic Cost Savings](docs/anthropic-cost-savings.md) | Reducing Claude API spend |
|
|
451
|
+
|
|
441
452
|
---
|
|
442
453
|
|
|
443
454
|
## Frequently Asked Questions
|
|
@@ -464,7 +475,7 @@ ClawRouter integrates with OpenClaw (Claude Code), ElizaOS, and any agent that m
|
|
|
464
475
|
|
|
465
476
|
### Is ClawRouter free?
|
|
466
477
|
|
|
467
|
-
ClawRouter itself is free and MIT licensed. You pay only for the LLM API calls routed through it — and 11
|
|
478
|
+
ClawRouter itself is free and MIT licensed. You pay only for the LLM API calls routed through it — and 11 models (DeepSeek V3.2, Nemotron Ultra 253B, Mistral Large 675B, Llama 4 Maverick, and more) are completely free. Use `/model free` for Nemotron Ultra 253B, or pick any free model by name.
|
|
468
479
|
|
|
469
480
|
---
|
|
470
481
|
|
package/dist/cli.js
CHANGED
|
@@ -40587,6 +40587,15 @@ var BLOCKRUN_MODELS = [
|
|
|
40587
40587
|
contextWindow: 105e4,
|
|
40588
40588
|
maxOutput: 128e3
|
|
40589
40589
|
},
|
|
40590
|
+
{
|
|
40591
|
+
id: "free",
|
|
40592
|
+
name: "Free \u2192 Nemotron Ultra 253B",
|
|
40593
|
+
inputPrice: 0,
|
|
40594
|
+
outputPrice: 0,
|
|
40595
|
+
contextWindow: 131072,
|
|
40596
|
+
maxOutput: 16384,
|
|
40597
|
+
reasoning: true
|
|
40598
|
+
},
|
|
40590
40599
|
{
|
|
40591
40600
|
id: "eco",
|
|
40592
40601
|
name: "Eco (Smart Router - Cost Optimized)",
|
|
@@ -49958,7 +49967,8 @@ async function collectWalletInfo() {
|
|
|
49958
49967
|
balance: null,
|
|
49959
49968
|
isLow: false,
|
|
49960
49969
|
isEmpty: true,
|
|
49961
|
-
source: null
|
|
49970
|
+
source: null,
|
|
49971
|
+
paymentChain: "base"
|
|
49962
49972
|
};
|
|
49963
49973
|
}
|
|
49964
49974
|
let solanaAddress = null;
|
|
@@ -49968,9 +49978,17 @@ async function collectWalletInfo() {
|
|
|
49968
49978
|
} catch {
|
|
49969
49979
|
}
|
|
49970
49980
|
}
|
|
49971
|
-
const
|
|
49981
|
+
const paymentChain = await resolvePaymentChain();
|
|
49972
49982
|
try {
|
|
49973
|
-
|
|
49983
|
+
let balanceInfo;
|
|
49984
|
+
if (paymentChain === "solana" && solanaAddress) {
|
|
49985
|
+
const { SolanaBalanceMonitor: SolanaBalanceMonitor2 } = await Promise.resolve().then(() => (init_solana_balance(), solana_balance_exports));
|
|
49986
|
+
const monitor = new SolanaBalanceMonitor2(solanaAddress);
|
|
49987
|
+
balanceInfo = await monitor.checkBalance();
|
|
49988
|
+
} else {
|
|
49989
|
+
const monitor = new BalanceMonitor(address2);
|
|
49990
|
+
balanceInfo = await monitor.checkBalance();
|
|
49991
|
+
}
|
|
49974
49992
|
return {
|
|
49975
49993
|
exists: true,
|
|
49976
49994
|
valid: true,
|
|
@@ -49979,7 +49997,8 @@ async function collectWalletInfo() {
|
|
|
49979
49997
|
balance: balanceInfo.balanceUSD,
|
|
49980
49998
|
isLow: balanceInfo.isLow,
|
|
49981
49999
|
isEmpty: balanceInfo.isEmpty,
|
|
49982
|
-
source
|
|
50000
|
+
source,
|
|
50001
|
+
paymentChain
|
|
49983
50002
|
};
|
|
49984
50003
|
} catch {
|
|
49985
50004
|
return {
|
|
@@ -49990,7 +50009,8 @@ async function collectWalletInfo() {
|
|
|
49990
50009
|
balance: null,
|
|
49991
50010
|
isLow: false,
|
|
49992
50011
|
isEmpty: false,
|
|
49993
|
-
source
|
|
50012
|
+
source,
|
|
50013
|
+
paymentChain
|
|
49994
50014
|
};
|
|
49995
50015
|
}
|
|
49996
50016
|
} catch {
|
|
@@ -50002,7 +50022,8 @@ async function collectWalletInfo() {
|
|
|
50002
50022
|
balance: null,
|
|
50003
50023
|
isLow: false,
|
|
50004
50024
|
isEmpty: true,
|
|
50005
|
-
source: null
|
|
50025
|
+
source: null,
|
|
50026
|
+
paymentChain: "base"
|
|
50006
50027
|
};
|
|
50007
50028
|
}
|
|
50008
50029
|
}
|
|
@@ -50057,7 +50078,11 @@ function identifyIssues(result) {
|
|
|
50057
50078
|
issues.push("No wallet found");
|
|
50058
50079
|
}
|
|
50059
50080
|
if (result.wallet.isEmpty) {
|
|
50060
|
-
|
|
50081
|
+
const chain3 = result.wallet.paymentChain === "solana" ? "Solana" : "Base";
|
|
50082
|
+
issues.push(`Wallet is empty - need to fund with USDC on ${chain3}`);
|
|
50083
|
+
if (result.wallet.paymentChain === "base" && result.wallet.solanaAddress) {
|
|
50084
|
+
issues.push("Tip: if you funded Solana, run /wallet solana to switch chains");
|
|
50085
|
+
}
|
|
50061
50086
|
} else if (result.wallet.isLow) {
|
|
50062
50087
|
issues.push("Wallet balance is low (< $1.00)");
|
|
50063
50088
|
}
|
|
@@ -50084,8 +50109,13 @@ function printDiagnostics(result) {
|
|
|
50084
50109
|
if (result.wallet.solanaAddress) {
|
|
50085
50110
|
console.log(` ${green(`Solana Address: ${result.wallet.solanaAddress}`)}`);
|
|
50086
50111
|
}
|
|
50112
|
+
const chainLabel = result.wallet.paymentChain === "solana" ? "Solana" : "Base";
|
|
50113
|
+
console.log(` ${green(`Chain: ${chainLabel}`)}`);
|
|
50087
50114
|
if (result.wallet.isEmpty) {
|
|
50088
|
-
console.log(` ${red(`Balance: $0.00 - NEED TO FUND!`)}`);
|
|
50115
|
+
console.log(` ${red(`Balance: $0.00 - NEED TO FUND WITH USDC ON ${chainLabel.toUpperCase()}!`)}`);
|
|
50116
|
+
if (result.wallet.paymentChain === "base" && result.wallet.solanaAddress) {
|
|
50117
|
+
console.log(` ${yellow(`Tip: funded Solana instead? Run /wallet solana to switch`)}`);
|
|
50118
|
+
}
|
|
50089
50119
|
} else if (result.wallet.isLow) {
|
|
50090
50120
|
console.log(` ${yellow(`Balance: ${result.wallet.balance} (low)`)}`);
|
|
50091
50121
|
} else if (result.wallet.balance) {
|