explaingit

rhymeswithlimo/runo

Analysis updated 2026-05-18

4PythonAudience · developerComplexity · 3/5LicenseSetup · moderate

TLDR

Runo extracts structured JSON from any web page using an AI model and a simple schema you define, instead of writing custom scraping code.

Mindmap

mindmap
  root((Runo))
    What it does
      Schema based extraction
      Renders JS when needed
      Typed JSON output
    Tech stack
      Python
      Google Gemini
      Playwright
      HTTP server and CLI
    Use cases
      Scrape a product page
      Batch extract many URLs
      Crawl a site for data
    Audience
      Developers
      Data teams

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

What do people build with it?

USE CASE 1

Pull structured fields like title, price, and stock status from a product page without writing selectors.

USE CASE 2

Run one extraction schema across a batch of URLs at once.

USE CASE 3

Crawl a website following link patterns and extract the same fields from every matching page.

What is it built with?

PythonGoogle GeminiPlaywrightFastAPI-style HTTP server

How does it compare?

rhymeswithlimo/runo1038lab/agnes-ai3eyedtiger/video2vrcemote
Stars444
LanguagePythonPythonPython
Setup difficultymoderateeasyeasy
Complexity3/52/51/5
Audiencedevelopervibe codervibe coder

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

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires a Google Gemini API key and a one-time Playwright browser download for JavaScript-rendered pages.

Use freely for any purpose, including commercial use, as long as you keep the required copyright and license notices.

In plain English

Runo pulls structured data out of any web page and turns it into clean JSON, using a schema you describe rather than writing code to find each piece on the page. You tell it a field name, a data type, and an example value, and it fetches the page, renders JavaScript if the page needs it, and uses a large language model to read the page and fill in the fields you asked for. Because the AI reads for meaning instead of looking for a specific spot in the page's code, your setup keeps working even after a site gets redesigned. If a field cannot be found, it comes back as null instead of being silently left out. The project started as a closed-source paid service and was later made open source. It runs entirely on your own machine and needs a Google Gemini API key, which is its main requirement. Before calling the AI model, Runo first checks faster, cheaper sources of structured data already on the page, such as JSON-LD, OpenGraph, and Twitter Card tags, and only renders a full headless browser when the page truly needs JavaScript to display its content. It offers three ways to use it: as a command-line tool, as a Python library you can import into your own code, or as a small local HTTP server with a JSON-based API. It also supports three modes of operation: pulling data from a single URL, running the same schema across a list of many URLs at once, and crawling a site by following links from a starting page. Output values are strictly converted to the type you asked for, whether that is text, a whole number, a decimal, true or false, a standard date format, or a list of values. Setup requires Python 3.11 or newer, installing the package with pip, and a one-time download of a headless browser through Playwright. The project is licensed under Apache 2.0, a permissive license that allows free use, modification, and redistribution, including in commercial products, as long as you keep the required notices.

Copy-paste prompts

Prompt 1
Help me write a schema.json file to extract title, price, and rating from a product page.
Prompt 2
Explain the difference between Runo's extract, batch, and crawl modes.
Prompt 3
Show me how to run Runo as a local HTTP server and call its /v1/extract endpoint.
Prompt 4
Walk me through setting up a Gemini API key so Runo can run locally.

Frequently asked questions

What is runo?

Runo extracts structured JSON from any web page using an AI model and a simple schema you define, instead of writing custom scraping code.

What language is runo written in?

Mainly Python. The stack also includes Python, Google Gemini, Playwright.

What license does runo use?

Use freely for any purpose, including commercial use, as long as you keep the required copyright and license notices.

How hard is runo to set up?

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

Who is runo for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.