dsh-firecrawl
In a curated listMaintenance: Activefirecrawl/dsh-firecrawl
Firecrawl-backed web_search and web_fetch providers for the DeepSeek Harness web capability seam (ctx.web)
$ dsh plugin add dsh-firecrawlInstall
dsh has no central install command — add this plugin’s entry (documented in its README) to your profile or patch config, then restart.
How installs work15
stars
5
forks
TypeScript
Language
MIT
License
2026-08-17
Created
2026-10-21
Last push
README
Firecrawl for DeepSeek Harness
This plugin points DeepSeek Harness's built-in web_search and web_fetch
tools at Firecrawl. It adds no new tools — the model
keeps asking for a query or a URL exactly as before, and Firecrawl answers.
It supports @deepseek-ai/dsh@0.1.0-rc.6 on Node.js ^22.19.0 || >=24.0.0.
DeepSeek Harness is still a developer preview, so later versions may need a
plugin update.
Why fetch, and not just search
The base Harness bundle ships web_fetch disabled and mounts no fetch
provider. The reason is in its own config comments: the only fetch backend is a
local HTTP client that "defers SSRF protection and the model would choose the
request target." Turning it on points a model-chosen URL at whatever your
machine can reach, including your private network.
Firecrawl retrieves from its own infrastructure. The harness process never
opens the model-chosen connection — it POSTs a URL to an API and gets markdown
back. That is a different risk decision from enabling the local provider, which
is why this plugin enables web_fetch where the base bundle does not. You also
get JS rendering, anti-bot handling, and PDF parsing, none of which the local
provider does.
Still worth knowing: Firecrawl can reach any public URL the model asks for.
It cannot reach your private network, but it can fetch pages you did not
choose. Leave web_fetch off if that is not acceptable for your deployment
(see Optional settings).
Before you start
You will need:
- pnpm 10 or newer;
- a Firecrawl API key; and
- a model provider already configured in DeepSeek Harness.
You do not need to install dsh globally — the commands below run the
supported version through npx.
Install
First, make your Firecrawl API key available in the terminal where you will run Harness:
export FIRECRAWL_API_KEY="fc-your-key"
Then install the plugin into the web profile:
npx --yes @deepseek-ai/dsh@0.1.0-rc.6 \
plugin --profile web add @firecrawl/dsh-firecrawl
Stop any running Harness process, then start it again:
npx --yes @deepseek-ai/dsh@0.1.0-rc.6 web
Installing from Git instead
The published package ships lib/ prebuilt, so it installs with no extra
flags. A Git install does not — it has to run this package's prepare script
to build, and pnpm 11 blocks build scripts for Git dependencies until you name
the dependency exactly.
--allow-build=@firecrawl/dsh-firecrawl is not sufficient: pnpm wants the fully
resolved Git key, including the commit SHA. Run the install once to have pnpm
print that key:
npx --yes @deepseek-ai/dsh@0.1.0-rc.6 \
plugin --profile web add "github:firecrawl/dsh-firecrawl#main"
It fails with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED and prints the exact line
to add under allowBuilds in ~/.dsh/profiles/web/pnpm-workspace.yaml:
allowBuilds:
"@firecrawl/dsh-firecrawl@git+https://github.com/firecrawl/dsh-firecrawl.git#<sha>": true
Add it, re-run the same command, and it succeeds. Note the key is SHA-pinned, so it changes every time you update — which is why the npm install above is the recommended path.
Check that it worked
Inspect the composed profile:
npx --yes @deepseek-ai/dsh@0.1.0-rc.6 \
--profile web --dump-config | \
grep -E 'searchProvider: firecrawl|fetchProvider: firecrawl|@firecrawl/dsh-firecrawl'
You should see both provider pins and the two plugin rows:
searchProvider: firecrawl
fetchProvider: firecrawl
- id: web-search-firecrawl
name: "@firecrawl/dsh-firecrawl"
- id: web-fetch-firecrawl
name: "@firecrawl/dsh-firecrawl/fetch"
Seeing the built-in web-search-deepseek plugin as well is normal — the
searchProvider pin decides which provider handles searches.
Then ask the agent something that needs the live web ("what changed in the
Firecrawl changelog this week?"). A web_search or web_fetch card in the
transcript means the tool ran.
Optional settings
The defaults work without extra configuration. To tune, edit
~/.dsh/profiles/web/cordis.patch.yml — it is applied after this bundle's
layer, so anything you put there wins.
Search
- id: web-search-firecrawl
config:
sources: [web, news]
scrapeContent: true
maxCharsPerResult: 4000
| Setting | Default | What it controls |
|---|---|---|
apiKey |
$FIRECRAWL_API_KEY |
Firecrawl key. Empty → provider unavailable. |
baseURL |
https://api.firecrawl.dev |
Endpoint base; /v2/search is appended. |
sources |
[web] |
Add news to also search news, which is the only source carrying a publication date. |
limit |
(unset) | Default result count when a call carries no bound. |
scrapeContent |
false |
Scrape each result and use its markdown as the snippet instead of the search-engine description. Much richer, at a credit and latency cost. |
maxCharsPerResult |
(unset) | Cap on snippet characters per result. Pair with scrapeContent. |
includeDomains / excludeDomains |
(unset) | Hostname allow/deny lists. |
tbs |
(unset) | Time filter: qdr:d, qdr:w, qdr:m, qdr:y. |
country / location |
(unset) | Geo-targeting. |
timeoutMs |
60000 |
Firecrawl-side search timeout. |
Fetch
- id: web-fetch-firecrawl
config:
proxy: stealth
maxAgeMs: 0
More in MCP & Protocols
rea
by morluto
Reverse engineer anything with agents, from app behavior down to native binaries.
ruflo
by ruvnet
🌊 The original agent harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, federation, vector RAG integration, and native Claude Code / Codex / Hermes and many more Integrated
reactive-resume
by reactive-resume
A one-of-a-kind resume builder that keeps your privacy in mind. Completely secure, customizable, portable, open-source and free forever. Try it out today!
next-ai-draw-io
by dayuanjiang
Draw and edit draw.io diagrams by chatting with an AI. Web app, desktop app, and an MCP server for Claude Code, Cursor, Codex and VS Code.
