{"repo":"aldemaroc/forage","free":true,"listed":false,"github":"https://github.com/aldemaroc/forage","clone":"git clone https://github.com/aldemaroc/forage.git","description":"Lightweight self-hosted web search & extract service for Hermes Agent, a drop-in Firecrawl alternative","language":"Python","stars":31,"topics":[],"license":"GPL-3.0","category":"self-hosted-apps","readme_excerpt":"🐔 Forage Self-hosted web search & extract service: a lightweight, drop-in replacement for self-hosted Firecrawl. Built specifically for Hermes Agent, but fully usable standalone via its REST API. --- Why Forage? Self-hosted Firecrawl works, but it is a heavy stack: the community edition spins up six containers (API, Playwright service, Redis, RabbitMQ, Postgres…). Forage replaces it with a single container that does both jobs: - web search : via SearXNG (a separate lightweight container) - web extract : hybrid static + browser extraction with three switchable browser engines, two switchable extract engines and anti-bot coverage It was developed as the extract/search backend for Hermes Agent and ships with a ready-made Hermes plugin ( WebSearchProvider ), but the REST API is generic: any application that can speak HTTP can use it. Features - Single Docker container : FastAPI + Chromium (via Playwright, Patchright or Scrapling) + httpx/trafilatura - Hybrid extraction : static HTTP first (fast, cheap), automatic browser fallback when the page needs JS or is anti-bot protected - Three browser engines ( browser.engine ): playwright (default), patchright (anti-detection fork) and scrapling (fingerprint impersonation + Cloudflare Turnstile bypass) - Two extract engines ( extract.engine , per-domain or per request): trafilatura (default, main-content markdown) and readability (Mozilla Readability.js in the browser + markdownify, keeps buyboxes/comments that trafilatura drops as non-","default_branch":null,"files":null,"tree":[],"storefront":"/r/aldemaroc","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/aldemaroc/forage/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}