arale-soft/ben-dsh-crawl4ai ↗★ 0

ben-dsh-crawl4ai

Crawl4AI-backed web fetch provider for DeepSeek Harness — web_fetch renders JavaScript-heavy pages through your own Crawl4AI server and returns clean Markdown.

Package
ben-dsh-crawl4ai
Compatibility
Unverified
Harness peer range
*
Cordis peer range
*
Version
0.1.0
Last updated
Oct 13, 2026

Install

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:arale-soft/ben-dsh-crawl4ai

Configuration

Everything lives on Plugins → this package → the ben-crawl4ai row → Configure. The page stages what you type and writes only on Save, through the shell's own settings surface (ctx.configForms), so an edit reaches the next web_fetch without a restart.

FieldMeaning
Crawl4AI URLServer root, e.g. http://crawl4ai.internal:11235. Unset or not http(s) makes the provider report unavailable, and web_fetch says so instead of failing every call.
Auth header namee.g. Authorization or X-API-Key. Blank sends no authenticating header.
Auth header valueSent as that header's value. Rendered masked; blank sends no authenticating header — the name and the value take effect together.

Both header fields are independent, so a deployment can use any header name or none at all.

The values are stored in the active profile's patch ($DSH_HOME/profiles/ /cordis.patch.yml), in plain text. This is a fetch back end reading its own token, not a per-user credential, and the masked control keeps it off the screen rather than out of the file. Two further fields stay off the page because they are deployment concerns, edited in YAML instead:

KeyDefaultMeaning
timeoutMs60000Resource backstop for one crawl. Keep it below the model-facing tool budget (tool-web's timeoutMs) so a slow server surfaces as a provider failure.
maxContentChars200000Cap on the Markdown returned for one page; a longer page sets truncated.

A patch row replaces the targeted row's whole config, so restate every key you want to keep.