explaingit

bjesus/pipet

Analysis updated 2026-07-03

4,662GoAudience · developerComplexity · 2/5Setup · easy

TLDR

A command-line tool that scrapes websites and APIs using simple text files, with built-in support for curl requests, a headless browser, and JSON path queries, plus change-detection alerts.

Mindmap

mindmap
  root((repo))
    What it does
      Web scraping
      Change detection
      Scheduled checks
    Fetch methods
      curl requests
      Playwright browser
      JSON path queries
    Config format
      Plain text file
      CSS selectors
      Unix pipe support
    Install options
      Binary download
      Homebrew
      Go install
Click or tap to explore — scroll the page freely

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

Set up a price alert that runs on a schedule and sends you a shell notification whenever a product's price changes on a website.

USE CASE 2

Scrape a login-protected page by copying its network request from your browser's dev tools and pasting it into a Pipet config file.

USE CASE 3

Extract nested fields from a JSON API response using path queries and pipe the results into other Unix command-line tools.

USE CASE 4

Monitor ticket availability or shipping status and trigger a custom command the moment the page content changes.

What is it built with?

GocurlPlaywright

How does it compare?

bjesus/pipetmagefile/magealiyuncontainerservice/pouch
Stars4,6624,6594,656
LanguageGoGoGo
Setup difficultyeasyeasyhard
Complexity2/52/54/5
Audiencedeveloperdeveloperops devops

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

How do you get it running?

Difficulty · easy Time to first run · 5min

Playwright method requires a headless browser runtime installed separately, curl and JSON modes work with no extra dependencies.

In plain English

Pipet is a command-line tool that pulls data from websites and online sources. You write a small text file describing which website to visit and which pieces of information to extract, then run Pipet against that file. The output lands in your terminal, formatted however you like. The tool supports three ways to fetch data. The first uses curl, a standard internet request tool, which means you can copy a request directly from your browser (right-click a network call and choose "Copy as cURL") and paste it into your Pipet file. This makes it easy to scrape pages that require a login or block automated access. The second uses a headless browser via Playwright, which loads a page fully in the background including JavaScript, useful for sites that build their content dynamically. The third parses raw JSON responses using path queries. A Pipet file is plain text. Each block starts with the URL and tool to use, followed by lines of selectors that point to the data you want. For HTML pages, selectors follow the same CSS pattern a web developer would use to style an element. For JSON responses, you write a path like "current_condition.0.FeelsLikeC" to walk down into nested data. You can also run standard Unix command-line tools on any result by appending a pipe symbol after a selector. Outputting the results as JSON is one flag away, as is rendering to a custom template file. You can set Pipet to re-run on an interval and trigger a shell command whenever the result changes, which makes it useful for price alerts, shipping tracking, ticket availability checks, or any case where you want a notification when something on a website updates. Installation is available via a pre-built binary download, a Go install command, or through package managers for Arch Linux, Homebrew, and Nix. The only required argument when running Pipet is the path to your .pipet file.

Copy-paste prompts

Prompt 1
Write a Pipet config file that checks an Amazon product page every 10 minutes and runs a desktop notification command when the price drops below $50.
Prompt 2
I want to scrape a page that requires a login. Show me how to copy the request from Chrome DevTools and use it in a pipet file with the curl method.
Prompt 3
Create a Pipet config that fetches a weather JSON API, extracts the 'feels like' temperature using a path query, and formats the output as plain text in my terminal.
Prompt 4
How do I use Pipet with the Playwright method to scrape a JavaScript-heavy page that doesn't show its content until scripts run?
Prompt 5
Show me how to output Pipet results as JSON and pipe them into jq to filter for only items where a price field is below a threshold.

Frequently asked questions

What is pipet?

A command-line tool that scrapes websites and APIs using simple text files, with built-in support for curl requests, a headless browser, and JSON path queries, plus change-detection alerts.

What language is pipet written in?

Mainly Go. The stack also includes Go, curl, Playwright.

How hard is pipet to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is pipet for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub bjesus on gitmyhub

Verify against the repo before relying on details.