[PR #13] Add Firecrawl search source #13

Open
opened 2026-10-15 13:28:25 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/SillyTavern/Extension-WebSearch/pull/13
Author: @JuampiHernandez
Created: 9/24/2026
Status: 🔄 Open

Base: main ← Head: feat/websearch-firecrawl


📝 Commits (1)

  • 550d7a9 Add Firecrawl search source

📊 Changes

3 files changed (+75 additions, -1 deletions)

View changed files

📝 README.md (+14 -1)
📝 index.js (+49 -0)
📝 settings.html (+12 -0)

📄 Description

Hey, I'm Juampi from the Firecrawl team. Following up on SillyTavern/SillyTavern#6072.

This adds Firecrawl as a search source. It needs SillyTavern/SillyTavern#6073, which adds the /api/search/firecrawl endpoint and SECRET_KEYS.FIRECRAWL, so please merge this one after that lands in staging. On a build without it, Firecrawl still shows in the list, but the key isn't stored and searches just come back empty.

What changed, following the other keyed sources:

  • index.js adds FIRECRAWL to WEBSEARCH_SOURCES, the missing key check, the settings toggle, the key button and a doFirecrawlQuery that reads data.data.web and pushes title + description as text and url as links. On a failed request it returns empty arrays, so a bad key doesn't make /websearch throw.
  • settings.html adds the Firecrawl option and a key block with the same markup as the other key blocks, linking to the Firecrawl API keys page.
  • README.md adds Firecrawl to the sources list and to the "what can be included" list. I also changed the Z.AI heading from ## to ### so both sit under "Available sources".

How I tested it, on SillyTavern staging at bc81b9f7e with SillyTavern/SillyTavern#6073 applied:

  • Picked Firecrawl as the source. The key button turned green once the key was saved, and the other sources' settings blocks hid.
  • A chat message with a backticked query injected titles and snippets into the prompt (about 2.3k chars with the default 2000 budget).
  • /websearch snippets=on and /websearch links=on both work, and Visit Links scraped the returned URLs.
  • With no key the source reports as unavailable. With an invalid key /websearch returns empty instead of an error.
  • With Claude Sonnet 5 and "Use function tool" on, the model called WebSearch by itself, the server logged the Firecrawl query and the reply used the results.
  • ESLint (SillyTavern's config) is clean on index.js.

No other source is touched. Happy to change anything.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/SillyTavern/Extension-WebSearch/pull/13 **Author:** [@JuampiHernandez](https://github.com/JuampiHernandez) **Created:** 9/24/2026 **Status:** 🔄 Open **Base:** `main` ← **Head:** `feat/websearch-firecrawl` --- ### 📝 Commits (1) - [`550d7a9`](https://github.com/SillyTavern/Extension-WebSearch/commit/550d7a9f104e4307c0b72f2bd86c600d52c70f64) Add Firecrawl search source ### 📊 Changes **3 files changed** (+75 additions, -1 deletions) <details> <summary>View changed files</summary> 📝 `README.md` (+14 -1) 📝 `index.js` (+49 -0) 📝 `settings.html` (+12 -0) </details> ### 📄 Description Hey, I'm Juampi from the Firecrawl team. Following up on SillyTavern/SillyTavern#6072. This adds Firecrawl as a search source. It needs SillyTavern/SillyTavern#6073, which adds the `/api/search/firecrawl` endpoint and `SECRET_KEYS.FIRECRAWL`, so please merge this one after that lands in staging. On a build without it, Firecrawl still shows in the list, but the key isn't stored and searches just come back empty. What changed, following the other keyed sources: - `index.js` adds `FIRECRAWL` to `WEBSEARCH_SOURCES`, the missing key check, the settings toggle, the key button and a `doFirecrawlQuery` that reads `data.data.web` and pushes `title` + `description` as text and `url` as links. On a failed request it returns empty arrays, so a bad key doesn't make `/websearch` throw. - `settings.html` adds the Firecrawl option and a key block with the same markup as the other key blocks, linking to the Firecrawl API keys page. - `README.md` adds Firecrawl to the sources list and to the "what can be included" list. I also changed the Z.AI heading from `##` to `###` so both sit under "Available sources". How I tested it, on SillyTavern staging at bc81b9f7e with SillyTavern/SillyTavern#6073 applied: - Picked Firecrawl as the source. The key button turned green once the key was saved, and the other sources' settings blocks hid. - A chat message with a backticked query injected titles and snippets into the prompt (about 2.3k chars with the default 2000 budget). - `/websearch snippets=on` and `/websearch links=on` both work, and Visit Links scraped the returned URLs. - With no key the source reports as unavailable. With an invalid key `/websearch` returns empty instead of an error. - With Claude Sonnet 5 and "Use function tool" on, the model called WebSearch by itself, the server logged the Firecrawl query and the reply used the results. - ESLint (SillyTavern's config) is clean on `index.js`. No other source is touched. Happy to change anything. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
SillyTavern/Extension-WebSearch#13
No description provided.