@blockrun/clawrouter 0.12.81 → 0.12.83
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 +29 -8
- package/dist/cli.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 +17 -0
- package/scripts/update.sh +17 -0
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
|
@@ -49967,7 +49967,8 @@ async function collectWalletInfo() {
|
|
|
49967
49967
|
balance: null,
|
|
49968
49968
|
isLow: false,
|
|
49969
49969
|
isEmpty: true,
|
|
49970
|
-
source: null
|
|
49970
|
+
source: null,
|
|
49971
|
+
paymentChain: "base"
|
|
49971
49972
|
};
|
|
49972
49973
|
}
|
|
49973
49974
|
let solanaAddress = null;
|
|
@@ -49977,9 +49978,17 @@ async function collectWalletInfo() {
|
|
|
49977
49978
|
} catch {
|
|
49978
49979
|
}
|
|
49979
49980
|
}
|
|
49980
|
-
const
|
|
49981
|
+
const paymentChain = await resolvePaymentChain();
|
|
49981
49982
|
try {
|
|
49982
|
-
|
|
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
|
+
}
|
|
49983
49992
|
return {
|
|
49984
49993
|
exists: true,
|
|
49985
49994
|
valid: true,
|
|
@@ -49988,7 +49997,8 @@ async function collectWalletInfo() {
|
|
|
49988
49997
|
balance: balanceInfo.balanceUSD,
|
|
49989
49998
|
isLow: balanceInfo.isLow,
|
|
49990
49999
|
isEmpty: balanceInfo.isEmpty,
|
|
49991
|
-
source
|
|
50000
|
+
source,
|
|
50001
|
+
paymentChain
|
|
49992
50002
|
};
|
|
49993
50003
|
} catch {
|
|
49994
50004
|
return {
|
|
@@ -49999,7 +50009,8 @@ async function collectWalletInfo() {
|
|
|
49999
50009
|
balance: null,
|
|
50000
50010
|
isLow: false,
|
|
50001
50011
|
isEmpty: false,
|
|
50002
|
-
source
|
|
50012
|
+
source,
|
|
50013
|
+
paymentChain
|
|
50003
50014
|
};
|
|
50004
50015
|
}
|
|
50005
50016
|
} catch {
|
|
@@ -50011,7 +50022,8 @@ async function collectWalletInfo() {
|
|
|
50011
50022
|
balance: null,
|
|
50012
50023
|
isLow: false,
|
|
50013
50024
|
isEmpty: true,
|
|
50014
|
-
source: null
|
|
50025
|
+
source: null,
|
|
50026
|
+
paymentChain: "base"
|
|
50015
50027
|
};
|
|
50016
50028
|
}
|
|
50017
50029
|
}
|
|
@@ -50066,7 +50078,11 @@ function identifyIssues(result) {
|
|
|
50066
50078
|
issues.push("No wallet found");
|
|
50067
50079
|
}
|
|
50068
50080
|
if (result.wallet.isEmpty) {
|
|
50069
|
-
|
|
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
|
+
}
|
|
50070
50086
|
} else if (result.wallet.isLow) {
|
|
50071
50087
|
issues.push("Wallet balance is low (< $1.00)");
|
|
50072
50088
|
}
|
|
@@ -50093,8 +50109,13 @@ function printDiagnostics(result) {
|
|
|
50093
50109
|
if (result.wallet.solanaAddress) {
|
|
50094
50110
|
console.log(` ${green(`Solana Address: ${result.wallet.solanaAddress}`)}`);
|
|
50095
50111
|
}
|
|
50112
|
+
const chainLabel = result.wallet.paymentChain === "solana" ? "Solana" : "Base";
|
|
50113
|
+
console.log(` ${green(`Chain: ${chainLabel}`)}`);
|
|
50096
50114
|
if (result.wallet.isEmpty) {
|
|
50097
|
-
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
|
+
}
|
|
50098
50119
|
} else if (result.wallet.isLow) {
|
|
50099
50120
|
console.log(` ${yellow(`Balance: ${result.wallet.balance} (low)`)}`);
|
|
50100
50121
|
} else if (result.wallet.balance) {
|