Skip to main content

Rookery

Package manager for third-party dev tools on Linux. Installs, updates, and wires up symlinks, man pages, and desktop entries so you don't have to.

Features

  • Async downloads with Rich progress bars
  • Parallel batch installs
  • Symlinks, man pages, and desktop entries set up automatically
  • Only asks for sudo when the install paths actually need it
  • GitHub API token support to avoid rate limits
  • Version tracking with update and downgrade support
  • List and install specific versions (rookery install nvim@0.10.4)
  • Pin a version to hold it across updates (rookery pin)

Supported Programs

Program Type Description
bat GitHub binary cat clone with syntax highlighting
blender Standalone 3D creation suite
cuda-run Shell script Run a command in a throwaway uv environment with a PyPI CUDA toolkit
drawio GitHub AppImage Diagram editor
dust GitHub binary Intuitive du alternative
dysk GitHub binary Filesystem information tool
eza GitHub binary Modern ls replacement
fasttarutils Python script Multi-format tar compression/extraction (ftar/funtar) with parallel backends
fastziputils Shell script Zip compression/extraction with pv progress bars
gdu GitHub binary Disk usage analyzer
gping GitHub binary Ping with a graph
hyperfine GitHub binary Command-line benchmarking tool
imcat GitHub source 24-bit terminal image viewer, compiled from source
just GitHub binary Command runner
kpod Shell script kubectl wrappers that resolve a pod by name prefix
mc GitHub binary MinIO Client for S3-compatible object storage
netron GitHub .deb Neural network model viewer
nvim GitHub binary Hyperextensible Vim-based editor
storageexplorer GitHub binary Azure Storage Explorer
tarssh Shell script Stream a directory/file over SSH via tar pipe
yazi GitHub binary Terminal file manager

Installation

Requires Python 3.12+ and uv.

uv tool install rookery

To install the development version from source:

uv tool install git+https://github.com/belfner/rookery.git

Usage

rookery install nvim          # Install the latest version
rookery install nvim@0.10.4   # Install a specific version
rookery install --all         # Install all programs
rookery update                # Update all installed programs
rookery update nvim --force   # Force reinstall
rookery list                  # List installed programs (with pin status)
rookery uninstall nvim        # Uninstall a program
rookery link --all            # Create system links
rookery unlink --all          # Remove system links
rookery info                  # Show configuration and stats

Versions and pinning

rookery versions nvim              # List available versions (--all, --include-prerelease, --json)
rookery install nvim@0.10.4 --pin  # Install a specific version and pin it
rookery pin nvim                   # Pin the currently installed version
rookery pin nvim 0.10.4 --install  # Install a version, then pin it
rookery unpin nvim                 # Remove the pin
rookery pins                       # List pinned programs (--json)

A pin holds a program at its pinned version: rookery update skips pinned programs and reports them. Use rookery unpin, or rookery install <prog>@<version> --pin, to move a pinned program. rookery versions and rookery install <prog>@<version> work for GitHub-release programs; programs with a single bundled version (shell scripts) and a few composite sources install the latest only.

Environment Variables

Variable Description
ROOKERY_INSTALL_DIR Installation directory (default: /opt/rookery-programs)
ROOKERY_BIN_DIR Binary symlink directory
ROOKERY_DESKTOP_DIR Desktop entry directory
ROOKERY_MAN_DIR Man page directory
ROOKERY_TEMP_DIR Download staging directory (default: /tmp/rookery)
ROOKERY_MAX_PARALLEL Concurrency limit for batch installs and updates (default: 10)
GITHUB_TOKEN / GH_TOKEN GitHub API token for higher rate limits

Adding a Program

Create a Program subclass in src/rookery/programs/. Programs are discovered automatically at runtime. See agent_docs/new_program.md for the template and conventions.

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rookery-0.7.0.tar.gz (88.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rookery-0.7.0-py3-none-any.whl (115.0 kB view details)

Uploaded Python 3

File details

Details for the file rookery-0.7.0.tar.gz.

File metadata

  • Download URL: rookery-0.7.0.tar.gz
  • Upload date:
  • Size: 88.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.4

File hashes

Hashes for rookery-0.7.0.tar.gz
Algorithm Hash digest
SHA256 78b8b8de72a410a7ff81f4181dd3958278ef57f7c8c6bd87aff5f1d62f811c36
MD5 af4a647345018b29c4757d71aba16388
BLAKE2b-256 15eb15cb293073ad62150e31da63c879cadb74b3561f3ec8143b869a6ad4c9df

See more details on using hashes here.

File details

Details for the file rookery-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: rookery-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 115.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.4

File hashes

Hashes for rookery-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 34b2735d02bf416935ac64283ddf42fdaba0519a3af18c028c308a4fbb57acef
MD5 6ca6cd837d006dd0c341662f3a85826c
BLAKE2b-256 dcca452e3f648e12101cecf9cede52bd08c9bfc29ee84636cb9f4cee6cc1935d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page