Skip to content

Welcome to Ferret

Ferret is an open-source web data extraction system built around its own declarative language, runtime, and tooling.

Instead of stitching together browser scripts, selectors, waits, and parsing logic by hand, Ferret lets you describe the data you want and the interactions needed to get it. This makes scraping, browser automation, UI testing, and structured data collection easier to write, easier to maintain, and easier to scale.

Ferret can be used as:

  • a query language for extracting and transforming web data
  • an embeddable runtime for integrating automation into applications
  • a set of tools for local development, testing, and distributed execution

Whether you are prototyping a one-off script or building a production workflow, Ferret is designed to give you a higher-level way to work with the web.

Get started

If you're new to Ferret, start here:

Ecosystem

Ferret includes a growing ecosystem of tools and components:

  • Ferret runtime - the core language, compiler, and execution engine. It is designed to be portable, embeddable, and suitable for both standalone use and integration into larger systems.
  • Contrib - a collection of official extensions, integrations, and optional components built around the Ferret runtime. This is where ecosystem modules such as browser drivers and other add-ons can live without making the core heavier.
  • CLI - a command-line interface for formatting, running, and working with Ferret scripts locally.
  • Worker - an HTTP service for executing Ferret workloads remotely, useful for scalable and distributed deployments.
  • Lab - a test runner for building UI and workflow tests with Ferret scripts, including CI-friendly automation scenarios.
  • Chromium - a Dockerized headless Chromium image tailored for Ferret-based browser execution.
  • VS Code Syntax Highlighting - syntax highlighting support for the Ferret Query Language in Visual Studio Code.
  • Ferret Playground - an interactive environment for experimenting with Ferret scripts in the browser.

Learn more

Visit the documentation to learn more about the language, runtime, and tools.

Contributors

Thanks to everyone who contributed.

Financial support

Support this project by becoming a sponsor. Your logo will show up here with a link to your website.

Pinned Loading

  1. cli cli Public

    Ferret CLI

    Go 22 5

  2. ferret ferret Public

    Declarative web scraping

    Go 5.9k 320

  3. worker worker Public

    Containerized Ferret worker

    Go 14 7

  4. lab lab Public

    Test runner for Ferret

    Go 13 3

  5. contrib contrib Public

    A community-driven collection of optional modules for Ferret. Extra functions, types, and integrations.

    Go

  6. chromium chromium Public

    Dockerized headless Chromium

    Shell 17 8

Repositories

Showing 10 of 22 repositories
  • contrib Public

    A community-driven collection of optional modules for Ferret. Extra functions, types, and integrations.

    MontFerret/contrib’s past year of commit activity
    Go 0 Apache-2.0 0 2 0 Updated Mar 29, 2026
  • .github Public
    MontFerret/.github’s past year of commit activity
    0 0 0 0 Updated Mar 29, 2026
  • ferret Public

    Declarative web scraping

    MontFerret/ferret’s past year of commit activity
    Go 5,946 Apache-2.0 320 32 (12 issues need help) 0 Updated Mar 28, 2026
  • cli Public

    Ferret CLI

    MontFerret/cli’s past year of commit activity
    Go 22 Apache-2.0 5 4 0 Updated Mar 27, 2026
  • montferret.github.io Public

    Website for Ferret project

    MontFerret/montferret.github.io’s past year of commit activity
    HTML 2 MIT 7 2 0 Updated Mar 26, 2026
  • worker Public

    Containerized Ferret worker

    MontFerret/worker’s past year of commit activity
    Go 14 Apache-2.0 7 12 (2 issues need help) 0 Updated Mar 9, 2026
  • cssx Public

    CSS expressions

    MontFerret/cssx’s past year of commit activity
    Go 0 Apache-2.0 0 0 0 Updated Mar 3, 2026
  • studio Public

    Ferret Studio - an application for running, organizing, and debugging Ferret web scraping scripts locally.

    MontFerret/studio’s past year of commit activity
    0 Apache-2.0 0 0 0 Updated Feb 6, 2026
  • lab Public

    Test runner for Ferret

    MontFerret/lab’s past year of commit activity
    Go 13 Apache-2.0 3 2 (1 issue needs help) 1 Updated Nov 20, 2025
  • chromium Public

    Dockerized headless Chromium

    MontFerret/chromium’s past year of commit activity
    Shell 17 MIT 8 0 0 Updated Mar 28, 2023

Top languages

Loading…

Most used topics

Loading…