2026-01-25 12:05:25 -05:00
2026-01-23 16:19:17 -05:00
2026-01-23 16:19:17 -05:00
2026-01-21 18:41:05 -05:00
2026-01-25 12:05:25 -05:00
2026-01-23 15:12:48 +00:00

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:

  1. Detect your OS and architecture
  2. Download the latest release from GitHub
  3. Verify checksums
  4. 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 (requires REPO variable)
  • task install-* - Install a binary using its script
  • task init - Initialize binstaller configuration for a GitHub project
  • task embed-checksums - Embed checksums into a configuration file
  • task gen - Generate installation script from configuration
  • task 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:

  1. Initialize a binstaller configuration file
  2. Fetch and embed checksums from the latest release
  3. 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:

  1. Initialize configuration:

    task init REPO=owner/repo-name
    
  2. Edit the configuration in config/repo-name.binstaller.yml as needed

  3. Embed checksums:

    task embed-checksums BINARY=repo-name
    
  4. 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:

  1. Fork this repository
  2. Create a new script using task REPO=owner/repo-name
  3. Test the installation script
  4. 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.

Description
Installation scripts.
Readme MIT 192 KiB
Languages
Shell 100%