Adds live web search/scrape/crawl to any agent via the firecrawl-py SDK, wired to Firecrawl's clo...
279
Adds live web search/scrape/crawl to any agent via the firecrawl-py SDK, wired to Firecrawl's cloud API. Needs a key: sbx secret set -g firecrawl (the kit holds no key).
| Name | Service | Required | Description |
|---|---|---|---|
FIRECRAWL_API_KEY | firecrawl | Required | Firecrawl API key (fc-...) from https://www.firecrawl.dev/app/api-keys |
pypi.org
files.pythonhosted.org
api.firecrawl.dev
sbx run <agent> --kit sbx/firecrawl-kit:latestRun the following command to install sbx on your machine.
brew install docker/tap/sbxwinget install Docker.sbxA kind: mixin kit that gives any Docker Sandboxes agent live web access through
Firecrawl: search the web, scrape a page to clean markdown, crawl a site,
and reach structured third-party data through Alexandria. It installs the firecrawl-py SDK as the agent
user and wires the API key through the sbx proxy, so the key never enters the sandbox.
Firecrawl maintains this kit at firecrawl/firecrawl-docker-sandbox,
which also publishes it as docker.io/firecrawl/firecrawl-docker-sandbox. The copy here tracks that
repository so the kit is discoverable alongside the other community kits.
Store a Firecrawl API key once (get one at https://www.firecrawl.dev/app/api-keys):
sbx secret set -g firecrawl
Then layer the kit onto any agent. From the artifact published by this repo:
sbx run --kit "docker.io/sbx/firecrawl-kit:latest" claude
From this repo over git:
sbx run --kit "git+https://github.com/docker/sbx-kits-contrib.git#dir=firecrawl" claude
From a local clone:
sbx run --kit ./firecrawl/ claude
On the first run sbx asks you to approve sending the firecrawl credential to api.firecrawl.dev. Accept
the defaults; the value already lives in the secret store. The agent can then call the SDK directly:
from firecrawl import Firecrawl
fc = Firecrawl() # key handled by the proxy
fc.scrape("https://example.com", formats=["markdown"]) # one page -> clean markdown
fc.search("docker sandboxes mixin kit", limit=5) # search the web, get page content
fc.crawl("https://docs.example.com", limit=20) # crawl a site/section
fc.search("flight prices", sources=["alexandria"]) # Alexandria (beta): discover providers/tools
pip install --user firecrawl-py==<pinned> as user 1000, followed by an import check, so a
broken install fails sandbox creation instead of surfacing as a missing module mid-task. The pin lives in
spec.yaml (SDK_VERSION).apiKey credential, proxyManaged, injected as a bearer token on api.firecrawl.dev
only. In-container FIRECRAWL_API_KEY is the proxy-managed sentinel.pypi.org and files.pythonhosted.org at install time, api.firecrawl.dev at runtime.
Nothing else is reachable, which the agentInstructions explain to the agent (for example, URLs found in
a scrape result must be fetched through Firecrawl, not with curl).The kit writes nothing to the host. Remove the stored key with sbx secret rm firecrawl if you no longer
need it.