How to use dsh-clawrouter
Adds a "second brain" to the DeepSeek Harness agent: a stronger model reviews dangerous commands before execution, and connects 60+ models to DSH via wallet signing (x402/USDC) without API keys.
This article is auto-derived from indexed fields (wiki / faq / compatibility_json), not freshly AI-generated.
This article is derived from the plugin's already-indexed fields (wiki / faq / compatibility_json / readme), not freshly generated by AI. Source field is noted at the end of each section.
Quick start
dsh-clawrouter
— source: plugin_wiki.wiki_content
Install & verify
dsh plugin --profile web add dsh-clawrouter
Run the command above in your DSH Web Profile. Then enable the plugin in the plugin list.
— source: plugins.install
Key points
- id: blockrun-review
-
- name: no-prod-deploy
- id: blockrun-llm
- No wallet yet?
npx -y @blockrun/clawroutergenerates one and prints its address. Stop it once you have the address, send it a few USDC on Base, then export the key. - id: blockrun-llm
— source: plugin_wiki.readme_en (fallback readme_raw)
FAQ
Is it a failure when it shows '✕ missing peer' after installation?
No, it's not a failure. The 6 host packages listed in peerDependencies of package.json (dsh-llm / dsh-tools / dsh-credentials, etc.) are injected at runtime by Harness itself; this is the common practice for all official Bundles. The verification method is that dsh --profile web --dump-config should show both blockrun-llm and blockrun-review lines synthesized.
Where does the wallet key come from? I don't have an API Key.
BlockRun uses wallet signing instead of API Key. If you have an existing wallet, export it from ~/.blockrun/.session or ~/.openclaw/blockrun/wallet.key; for brand new users, running npx -y @blockrun/clawrouter will generate and print an address. After topping it up with a small amount of Base chain USDC, then run export BASE_CHAIN_WALLET_KEY=.... The plugin only reads the environment variable you explicitly specify via walletKeyEnv and never scans the disk.
Did the model I use by default change after installation?
No change. Mounting this provider route doesn't change the default deepseek-official from dsh-base; the route is either explicitly selected by you or invoked by the review gate. The review model defaults to anthropic/claude-opus-5, settled per request in USDC.
What operations does the review gate intercept? Will normal git commits be questioned?
No. The rules are deliberately narrow and only intercept truly irreversible operations: recursive deletion, raw disk writes, curl | sh, force push, git reset --hard, chmod 777, sudo, accessing ~/.ssh / ~/.aws / /etc/passwd, and file writes that will be "executed later" (git hooks, CI workflows, shell startup files, .gitconfig, postinstall, etc.). Daily read/edit/build operations are all allowed; mentioning dangerous commands in command lines (grep -rn "rm -rf" docs/) won't trigger false positives.
What if the review model goes down? Will it be silently passed through?
No. Default onReviewerFailure: ask - when unable to contact, escalates to human approval; users who need unattended automation can change to deny, letting the gate directly reject. Deny makes the gate "fail closed", ask makes the gate "fail open", neither lets dangerous commands slip through during network flakiness.
What is /gate drill for? Can I run it even if I didn't enable the gate?
/gate drill sends absolutely lethal commands like rm -rf / --no-preserve-root through the risk matcher and real review model, but never hands them to any tool for execution. It's used to prove the gate is actually working - the /review command can register even when the gate is closed, so just seeing /review work can't prove the gate is working; when the gate isn't enabled, /gate drill will directly error out.
How do I add custom review rules?
In the profile's cordis.patch.yml, append {name, pattern, tools?} to blockrun-review's config.extraRules, where pattern is a JS regex source string to match the tool's rendering parameters; tools being empty means it applies to all tools. Rules are validated at compile time, wrong patterns immediately throw errors instead of being silently skipped.
Will this make my DeepSeek usage cheaper?
No, this plugin doesn't replace DeepSeek's official billing. BlockRun doesn't support DeepSeek's cache hit discount; a cached turn with official direct connection is about $0.000056, through this plugin with 22K input it's about $0.007. Recommendation: keep using DeepSeek official for the main loop, use this plugin for what DeepSeek can't do (stronger model review, Claude/GPT/Gemini/Grok calls, x402 micropayments).
— source: plugin_wiki.faq_json
Compatibility
- DSH: >=0.1.0-rc.6
- Node: >=22.19(也接受 >=24)
- Platforms: 跨平台
— source: plugin_wiki.compatibility_json
Pitfalls
Review the upstream repo before installing. This guide is auto-derived from indexed fields and may lag the latest release. If anything contradicts the official docs, treat the upstream source as authoritative.
— source: general rule