Skip to content

mmasters/hobbes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hobbes

Hobbes

A package manager for GitHub release binaries.

Hobbes downloads binaries from GitHub releases, extracts them, and manages versions locally.

Installation

One-liner (recommended)

curl -fsSL https://raw.githubusercontent.com/mmasters/hobbes/main/scripts/install.sh | bash

Using pip

pip install git+https://github.com/mmasters/hobbes.git

Using pipx

pipx install git+https://github.com/mmasters/hobbes.git

Setup

Add the hobbes bin directory to your PATH:

export PATH="$HOME/.hobbes/bin:$PATH"

Add this line to your shell profile (~/.bashrc, ~/.zshrc, etc.).

Usage

Install a package

# Using owner/repo format
hobbes install junegunn/fzf

# Using full GitHub URL
hobbes install https://github.com/BurntSushi/ripgrep

# Install specific version
hobbes install sharkdp/bat --version v0.24.0

# Install from source (for repos without binaries, like neofetch)
hobbes install dylanaraps/neofetch --source

For repositories that only provide source releases (no pre-built binaries), hobbes will automatically detect executable scripts and offer to install them.

List installed packages

hobbes list

Update packages

# Update single package
hobbes update fzf

# Update all packages
hobbes upgrade-all

Check for updates

hobbes outdated

Show package info

hobbes info fzf

Search for packages

hobbes search "fuzzy finder"

Pin/unpin versions

# Pin to current version (skip during upgrade-all)
hobbes pin fzf

# Unpin
hobbes unpin fzf

Uninstall a package

hobbes uninstall fzf

Uninstall hobbes

To completely remove hobbes from your system:

# Remove hobbes and all installed packages
rm -rf ~/.hobbes

# If installed with pip
pip uninstall hobbes

# If installed with pipx
pipx uninstall hobbes

Don't forget to remove the PATH export from your shell profile (~/.bashrc, ~/.zshrc, etc.).

Configuration

Hobbes stores everything in ~/.hobbes/ by default:

  • ~/.hobbes/bin/ - Installed binaries
  • ~/.hobbes/cache/ - Downloaded archives (temporary)
  • ~/.hobbes/manifest.yaml - Package database

Set HOBBES_HOME environment variable to change the base directory.

How it works

  1. Fetches release information from GitHub API
  2. Auto-detects your platform (OS and architecture)
  3. Selects the best matching binary asset
  4. Verifies checksum if available
  5. Extracts archive and installs executables
  6. Tracks installed packages in manifest

Supported formats

  • .tar.gz, .tgz
  • .tar.xz
  • .zip
  • .gz (single file)
  • Raw binaries (no extension)

License

MIT

About

A package manager for GitHub release binaries

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •