gitwtfhub

wtf is laurel.dev?

laureldev/laurel.dev — explained in plain English

Analysis updated 2026-05-18

11PythonAudience · developerComplexity · 2/5LicenseSetup · moderate

TL;DR

A minimal, self hostable API giving AI agents two tools, search and fetch, to find web sources and read clean page content.

Mindmap

mindmap
  root((laurel.dev core))
    What it does
      Search endpoint
      Fetch endpoint
      Markdown page extraction
    Tech stack
      Python
      FastAPI
      Google Custom Search API
    Use cases
      Give an agent web search tools
      Fetch clean article text for a model
      Learn how a search plus fetch API works
    Audience
      AI agent developers
      Backend developers
    Setup
      Docker Compose
      Google API key
      Programmable Search Engine id

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Give an AI agent search and fetch tools through a self hosted API.

REASON 2

Convert any web page into clean Markdown text for an agent to read.

REASON 3

Prototype an agent's web research loop before adopting a hosted service.

REASON 4

Study a minimal, single file example of a search plus fetch API.

What's in the stack?

PythonFastAPIDockerGoogle Custom Search API

How it stacks up

laureldev/laurel.dev2arons/llm-cliabe238/claude-video-plus
Stars111111
LanguagePythonPythonPython
Setup difficultymoderateeasyeasy
Complexity2/52/53/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · moderate Time to first run · 30min

Requires creating a Google Custom Search Engine and API key before the endpoints work.

Wtf does this do

laurel.dev Core is a small, self hostable API that gives AI agents web search and page reading abilities through just two endpoints. A search endpoint takes a query and returns a list of relevant links with titles and short snippets. A fetch endpoint takes a single URL, downloads that page, and returns its main content converted into clean Markdown text, with ads, navigation, and clutter stripped out. The idea is that an agent first searches for sources, reads the short snippets to judge which ones matter, then only fetches the full page content for the links actually worth reading. Under the hood, the search endpoint calls Google's Custom Search JSON API, which requires a Google API key and a Programmable Search Engine set up by the person running the service. The fetch endpoint downloads a page and uses the readability library to pull out the readable article text before converting it to Markdown. The README describes the whole implementation as basically one file, api/main.py, and encourages readers to look at it directly rather than trust a black box. Running it locally requires Docker and Docker Compose, plus a Google API key and search engine id placed into an environment file. Once running, the API listens on port 8000 and can be called directly with curl or wired into an agent framework as two tools, one for searching and one for fetching, alongside instructions telling the model to search first and fetch only what it needs. The README is upfront that this repository is a deliberately minimal core: it does not include caching, rate limiting, quota management, billing, or the kind of source ranking tuned for heavy real world traffic. Google's own free tier caps searches at 100 per day, which the README says is fine for experimenting but not enough for production use. For anyone who wants those production features without building them, the project's authors point to a paid hosted version at laurel.dev that offers the same two endpoints, plus caching, unlimited flat-price search, and a hosted MCP endpoint. The code in this repository is released under the MIT license.

Yoink these prompts

Prompt 1
Help me set up laurel.dev Core locally with Docker Compose and a Google API key.
Prompt 2
Explain how api/main.py turns a fetched URL into clean Markdown content.
Prompt 3
Show me how to wire the /search and /fetch endpoints into my agent as function calling tools.
Prompt 4
Walk me through getting a Google Programmable Search Engine id for this project.

Frequently asked questions

wtf is laurel.dev?

A minimal, self hostable API giving AI agents two tools, search and fetch, to find web sources and read clean page content.

What language is laurel.dev written in?

Mainly Python. The stack also includes Python, FastAPI, Docker.

How hard is laurel.dev to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is laurel.dev for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.