{"_id":"@ariedotme/pi-firecrawl-web","_rev":"3-ae318ee4e76733bb1eb7247f3f173aeb","name":"@ariedotme/pi-firecrawl-web","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@ariedotme/pi-firecrawl-web","version":"0.1.0","keywords":["pi-package","pi-extension","firecrawl","web-search","web-fetch","ai"],"license":"MIT","_id":"@ariedotme/pi-firecrawl-web@0.1.0","maintainers":[{"name":"ariedotme","email":"ariedotmenpm@icloud.com"}],"homepage":"https://github.com/ariedotme/pi-firecrawl-web#readme","bugs":{"url":"https://github.com/ariedotme/pi-firecrawl-web/issues"},"pi":{"skills":["./skills"],"extensions":["./index.ts"]},"dist":{"shasum":"0509f46f659d1db8ed10d77af15432542b52216b","tarball":"https://registry.npmjs.org/@ariedotme/pi-firecrawl-web/-/pi-firecrawl-web-0.1.0.tgz","fileCount":5,"integrity":"sha512-KUKUhhhUuVogY8NrvZiMUAVSbwLJjC1yXSamhtoXxUepZi0KQqjMiFu82VMUpqID/9DVR8bna0bACRiJ/NgYSw==","signatures":[{"sig":"MEUCIQDb5VRboPGkiGMm+ZxNk6o/5shJb0J1Nry+F+N31spL1gIgCjKA7MRNMH+Km7V1JZlONskLLUnNatMqeC/Sh29vABs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22881},"main":"./index.ts","type":"module","scripts":{"test":"node --test test/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"ariedotme","email":"ariedotmenpm@icloud.com"},"repository":{"url":"git+https://github.com/ariedotme/pi-firecrawl-web.git","type":"git"},"_npmVersion":"11.5.1","description":"Pi extension for Firecrawl-powered web search, content fetch, and structured extraction.","directories":{},"_nodeVersion":"24.5.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-firecrawl-web_0.1.0_1782256997807_0.3613715800283661","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@ariedotme/pi-firecrawl-web","version":"0.1.1","keywords":["pi-package","pi-extension","firecrawl","web-search","web-fetch","ai"],"license":"MIT","_id":"@ariedotme/pi-firecrawl-web@0.1.1","maintainers":[{"name":"ariedotme","email":"ariedotmenpm@icloud.com"}],"homepage":"https://github.com/ariedotme/pi-firecrawl-web#readme","bugs":{"url":"https://github.com/ariedotme/pi-firecrawl-web/issues"},"pi":{"skills":["./skills"],"extensions":["./index.ts"]},"dist":{"shasum":"a8a337b243e7dc7123d6869c3eeaf8328bb57c9f","tarball":"https://registry.npmjs.org/@ariedotme/pi-firecrawl-web/-/pi-firecrawl-web-0.1.1.tgz","fileCount":5,"integrity":"sha512-n6E/SgqUOK7IxkMukpR31OEgc7hnTfijcGfn3RswGB0Uf+3UQZ45yI/UOkmOdjIgsas7dNzIc863gkmz76GX8A==","signatures":[{"sig":"MEUCIQCWvSrhdboi3imEhYTloQXXadktOvTfrBi+Mp/9+Q+1TAIgaE3QkaXhzJ1YYcTNq/y7lZbXqJoK+H+bGvTwLYtabKc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23039},"main":"./index.ts","type":"module","gitHead":"f1f9fdfbb20aa5db845eed23377269cd76eb29ee","scripts":{"test":"node --test test/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"ariedotme","email":"ariedotmenpm@icloud.com"},"repository":{"url":"git+https://github.com/ariedotme/pi-firecrawl-web.git","type":"git"},"_npmVersion":"11.5.1","description":"Pi extension for Firecrawl-powered web search, content fetch, and structured extraction.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"firecrawl":"^4.28.2"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-firecrawl-web_0.1.1_1782259125379_0.9220697420691419","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@ariedotme/pi-firecrawl-web","version":"0.1.2","description":"Pi extension for Firecrawl-powered web search, content fetch, and structured extraction.","type":"module","main":"./index.ts","keywords":["pi-package","pi-extension","firecrawl","web-search","web-fetch","ai"],"license":"MIT","homepage":"https://github.com/ariedotme/pi-firecrawl-web#readme","bugs":{"url":"https://github.com/ariedotme/pi-firecrawl-web/issues"},"repository":{"type":"git","url":"git+https://github.com/ariedotme/pi-firecrawl-web.git"},"pi":{"extensions":["./index.ts"],"skills":["./skills"]},"scripts":{"typecheck":"tsc --noEmit","test":"node --test test/*.test.ts"},"dependencies":{"firecrawl":"^4.28.2","zod":"^4.4.3"},"peerDependencies":{"@earendil-works/pi-agent-core":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*","typebox":"*"},"_id":"@ariedotme/pi-firecrawl-web@0.1.2","gitHead":"eb4acf243f57f0705841666334aaaabea3005fe9","_nodeVersion":"24.5.0","_npmVersion":"11.5.1","dist":{"integrity":"sha512-lDHNqK8/RFMC40bE8Bky45IgYHfBhA7nLMgmzLbOWwKc+AtI53HLgU6BZDGBzUhfvxjhmcGrpwySlwzjElFHYw==","shasum":"60786cbc5ac6f631273c84f744bc92464465fbe9","tarball":"https://registry.npmjs.org/@ariedotme/pi-firecrawl-web/-/pi-firecrawl-web-0.1.2.tgz","fileCount":5,"unpackedSize":23060,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDX+C6Ze04UPqEnOEGTcJBxdRAqHRwmILRnZl3ygcRLOAiEA73k3BoN6cm4UuDS7c/jidhuRSvRH1l+T9i3yahSRsXA="}]},"_npmUser":{"name":"ariedotme","email":"ariedotmenpm@icloud.com"},"directories":{},"maintainers":[{"name":"ariedotme","email":"ariedotmenpm@icloud.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-firecrawl-web_0.1.2_1782259349407_0.2723512836641566"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-23T23:23:17.699Z","modified":"2026-06-24T00:02:29.637Z","0.1.0":"2026-06-23T23:23:17.960Z","0.1.1":"2026-06-23T23:58:45.509Z","0.1.2":"2026-06-24T00:02:29.541Z"},"bugs":{"url":"https://github.com/ariedotme/pi-firecrawl-web/issues"},"license":"MIT","homepage":"https://github.com/ariedotme/pi-firecrawl-web#readme","keywords":["pi-package","pi-extension","firecrawl","web-search","web-fetch","ai"],"repository":{"type":"git","url":"git+https://github.com/ariedotme/pi-firecrawl-web.git"},"description":"Pi extension for Firecrawl-powered web search, content fetch, and structured extraction.","maintainers":[{"name":"ariedotme","email":"ariedotmenpm@icloud.com"}],"readme":"# pi-firecrawl-web\n\nA small Pi TypeScript extension that registers LLM-callable web tools powered only by [Firecrawl](https://firecrawl.dev):\n\n- `web_search` — search the web with Firecrawl Search.\n- `fetch_content` — scrape and clean one URL with Firecrawl Scrape.\n- `extract_structured` — extract structured JSON from one or more URLs with Firecrawl Extract.\n\nIt validates URL protocols, avoids logging secrets, caps search defaults for agent-friendly credit usage, and returns human-readable text plus structured `details`.\n\n## Install locally\n\n```bash\nnpm install\npi -e ./index.ts\n```\n\n## Install as a Pi package\n\nIf published to npm:\n\n```bash\npi install npm:pi-firecrawl-web\n```\n\n## Configure Firecrawl\n\n### Firecrawl Cloud\n\nFor Firecrawl Cloud, leave `FIRECRAWL_BASE_URL` unset and provide an API key:\n\n```bash\nexport FIRECRAWL_API_KEY=***\n```\n\n### Firecrawl self-hosted without authentication\n\nPoint the extension at your server and omit the key:\n\n```bash\nexport FIRECRAWL_BASE_URL=http://localhost:3002\nunset FIRECRAWL_API_KEY\n```\n\nNo `Authorization` header is sent when `FIRECRAWL_API_KEY` is absent.\n\n### Firecrawl self-hosted with authentication\n\nSet both variables:\n\n```bash\nexport FIRECRAWL_BASE_URL=https://firecrawl.example.com\nexport FIRECRAWL_API_KEY=***\n```\n\nWhen the key is present, the SDK sends `Authorization: Bearer <key>`.\n\nYou may also configure the extension directly:\n\n```json\n{\n  \"firecrawlBaseUrl\": \"https://firecrawl.example.com\",\n  \"firecrawlApiKey\": \"fc-...\"\n}\n```\n\nThe extension never hardcodes or prints the API key. API keys are optional for self-hosted Firecrawl deployments that do not require authentication.\n\n## Slash command\n\n```text\n/firecrawl-status\n```\n\nShows the base URL, whether authentication is configured, and which tools were registered, without revealing the key.\n\n## Usage examples\n\n```js\nweb_search({ query: \"latest React compiler docs\", limit: 5 })\n\nweb_search({ query: \"OpenAI reasoning models\", includeContent: true })\n\nfetch_content({ url: \"https://docs.firecrawl.dev\", formats: [\"markdown\"] })\n\nextract_structured({\n  urls: [\"https://example.com\"],\n  prompt: \"Extract pricing plans\",\n  schema: {\n    type: \"object\",\n    properties: {\n      plans: {\n        type: \"array\",\n        items: {\n          type: \"object\",\n          properties: {\n            name: { type: \"string\" },\n            price: { type: \"string\" },\n            features: { type: \"array\", items: { type: \"string\" } }\n          }\n        }\n      }\n    }\n  }\n})\n```\n\n## Tool notes\n\n### `web_search`\n\nParameters include `query`, `limit` (default 5, max 20), `sources`, `categories`, domain filters, country/location, and optional scraped content (`markdown` or `summary`). Results are normalized as `query`, `web`, `news`, and `images` in `details.normalized`.\n\n### `fetch_content`\n\nSupports `markdown`, `summary`, `html`, `rawHtml`, `links`, `images`, `screenshot`, `json`, `question`, and `highlights`. Visible output is truncated when large, but `json` output is returned compactly without cutting through the JSON text.\n\n### `extract_structured`\n\nRequires either `prompt` or `schema`. Supports multiple HTTP/HTTPS URLs, optional web search, sources, safe scrape options, and wildcard warnings because `/*` can consume many credits.\n\n## Development\n\n```bash\nnpm install\nnpm run typecheck\nnpm test\n```\n\nManual local load:\n\n```bash\npi -e ./index.ts\n```\n\nIf `FIRECRAWL_API_KEY` is unavailable, run the mock tests; they validate URL/domain guards, response formatting, and friendly missing-key behavior without calling Firecrawl.\n","readmeFilename":"README.md"}