pkg.bot is a fast search engine for Linux packages across distributions and package repositories. It uses the package data dump from Repology.
In early September 2026, I had just switched to NixOS. In the process of setting it up, I was frequently searching for packages on the official package site, but was quite annoyed by its clunky UX. No way to sort by date or versions, no "permalink" to share a package's page even.
I remembered that pretty much most distros have clunky, annoying package sites. So I built this.
The search engine is a statically compiled Rust program which uses a single SQLite DB as its data source. It has a built-in Repology Postgres dump importer.
- Super-fast search, filtering, and querying
- Good UX (subjective) and accessibility
- Sort and filter across various parameters
- Filter on recency, eg:
version > 2.0andupdated > 2026-01-01 - RSS feeds for search, filtering, and individual packages
- Download the latest compiled binary from the releases page or clone this repo and run
make build. ./pkgbot new-configto generate a new config file (config.tomlby default)- Edit
config.toml ./pkgbot installto generate a new SQLite DB (data.dbby default)./pkgbot --site=./siteto run the web search engine../siteis the theme directory cloned from this repo.
See API docs.
Download the latest .sql.zst dump from https://dumps.repology.org, then restore it into a fresh Postgres database:
set -o pipefail
wget https://dumps.repology.org/repology-database-dump-latest.sql.zst
docker compose up --build -d --wait db
# Instead of loading the entire .sql dump directly into the DB
# use the built-in loader that streams only the tables required by pkgbot.
zstd -dc repology-database-dump-latest.sql.zst | ./pkgbot restore-repology
# Create a new data.db and import data from PG into it.
./pkgbot install
./pkgbot importLicense: AGPL