binst
A curated collection of portable installation scripts for binary tools, powered by binstaller.
Overview
This repository provides POSIX-compliant shell scripts that simplify the installation of popular binary tools from GitHub releases. Each script is:
- Portable: Works across Linux, macOS, and Windows (Git Bash/WSL)
- Secure: Includes checksum verification for downloaded binaries
- Simple: Single command installation with no dependencies
- Self-contained: No package manager or runtime required
Table of Contents
Quick Start
Install any binary directly using its installation script:
# Install trufflehog
./scripts/trufflehog-install.sh
# Install task
./scripts/task-install.sh
# Install checkov
./scripts/checkov-install.sh
Binaries are installed to ~/.local/bin by default (customizable via environment variables).
Available Tools
Installation scripts are located in the scripts/ directory. Run ls scripts/ to see all available tools, or browse the directory on GitHub.
Usage
Installing Binaries
Run any installation script directly:
./scripts/<tool-name>-install.sh
The script will:
- Detect your OS and architecture
- Download the latest release from GitHub
- Verify checksums
- Install the binary to your PATH
Using Task Commands
This repository includes Taskfile automation for common workflows:
# List all available tasks
task --list
# Install a specific binary via Task
task install-trufflehog
task install-aichat
task install-checkov
Available tasks:
task- Create a new installation script (requiresREPOvariable)task install-*- Install a binary using its scripttask init- Initialize binstaller configuration for a GitHub projecttask embed-checksums- Embed checksums into a configuration filetask gen- Generate installation script from configurationtask latest-release- Check the latest release version
Creating New Scripts
Prerequisites
First, install binstaller:
./scripts/binstaller-install.sh
Automatic Generation
The easiest way to add a new installation script is using the default Task workflow:
# Create script for a GitHub repository
task REPO=owner/repo-name
# Example: Add installation script for trufflehog
task REPO=trufflesecurity/trufflehog
This command will:
- Initialize a binstaller configuration file
- Fetch and embed checksums from the latest release
- Generate the installation script
For more details on the default task:
task --summary
Manual Configuration
For advanced use cases, you can manually create or edit configuration files:
-
Initialize configuration:
task init REPO=owner/repo-name -
Edit the configuration in
config/repo-name.binstaller.ymlas needed -
Embed checksums:
task embed-checksums BINARY=repo-name -
Generate the script:
task gen BINARY=repo-name
Configuration
Binary Names
In some cases, the binary executable name differs from the GitHub repository name. When this occurs, specify the actual binary name in the asset.binaries section of the configuration file.
Example: The stacklok/toolhive repository releases a binary named thv. The configuration file handles this:
repo: stacklok/toolhive
asset:
binaries:
- name: thv
path: thv
After generation, you may wish to rename the installation script from thv-install.sh to toolhive-install.sh for consistency.
Contributing
Contributions are welcome! To add a new binary installation script:
- Fork this repository
- Create a new script using
task REPO=owner/repo-name - Test the installation script
- Submit a pull request
Please ensure:
- The binary is a popular, well-maintained tool
- The installation script works across all supported platforms
- Checksums are embedded for security
License
MIT. See LICENSE for details.