DSH Hub

firecrawl/dsh-firecrawl

dsh-firecrawl

BundleWorkflow9 GitHub stars· updated 2026-08-17

Firecrawl-backed web_search and web_fetch providers for the DeepSeek Harness web capability seam (ctx.web)

Install

npx -y @deepseek-ai/dsh plugin --profile web add @firecrawl/dsh-firecrawl

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-firecrawl DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-firecrawl.svg)](https://dshhub.dev/plugins/dsh-firecrawl)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from firecrawl/dsh-firecrawl, cleaned of badges and images.

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/[email protected] 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/[email protected] \
  plugin --profile web add @firecrawl/dsh-firecrawl

Stop any running Harness process, then start it again:

npx --yes @deepseek-ai/[email protected] 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/[email protected] \
  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/[email protected] \
  --profile web --dump-config | \
  grep -E 'searchProvider: firecrawl|fetchProvider: firecrawl|@firecrawl/dsh-firecrawl'

Related plugins