Skip to content
github-actions[bot] edited this page Aug 1, 2026 · 2 revisions
binstaller

One YAML profile. Every binary. Same result on every machine.

🌐 Website Β· πŸ“¦ Releases Β· πŸ› Issues


πŸ‘‹ Start here

Page What you'll find
πŸš€ Getting Started Install the binary, write your first profile, run your first apply.
πŸŽ›οΈ CLI Reference Every command, every flag, every exit code.
🍳 Manifest Cookbook Copy-paste recipes for direct binaries, archives, symlinks and version resolvers.
🧊 Lock Files & Reproducibility Pin a toolchain and refuse to drift from it.
πŸ” Security Model Trust boundaries, checksum policy, SSRF guards, sudo rules.
🩺 Troubleshooting Error messages decoded, with the fix for each.
❓ FAQ Scope questions, comparisons, and "can it do X?".
πŸ› οΈ Development Build from source, run the tests, cut a release.

⚑ The 30-second version

# 1. install the native binary (checksum + Sigstore verified)
curl --proto '=https' --tlsv1.2 -sSfL \
  https://github.com/worxbend/binstaller/releases/latest/download/install.sh | sh

# 2. describe your tools once
cp config.example.yaml config.yaml

# 3. read what would happen β€” nothing is written
binstaller plan

# 4. do it
binstaller apply

🧭 What binstaller is

A command-line installer for binary tool distributions described by a single YAML profile. It resolves versions, previews what will be downloaded and unpacked, then installs selected tools under a user-controlled apps directory such as ${HOME}/.apps.

Supported scope:

  • βœ… Plan / apply workflows on the command line
  • βœ… Direct binary downloads
  • βœ… zip, tar.gz and tar.xz archives
  • βœ… Executable verification and mode application
  • βœ… Local symlinks, plus opt-in sudo symlinks
  • βœ… Apply state and resume
  • βœ… Lock files
  • βœ… Version reporting with upstream update detection

Deliberately out of scope:

  • ❌ Package management (dependency graphs, removal, repositories)
  • ❌ Dotfiles management
  • ❌ Running installer scripts β€” installer: blocks are rejected at load time
  • ❌ General shell-command execution
  • ❌ Multi-OS workstation provisioning

If you need those, binstaller is meant to sit next to the tool that does them, not replace it.


πŸ—ΊοΈ Where things live

Thing Location
Example profile config.example.yaml
Architecture notes docs/architecture.md
Manifest reference docs/manifest-reference.md
Security model docs/security.md
Release guide docs/release.md

πŸ“ Editing this wiki: pages are generated from the wiki/ directory in the main repository and synced by CI. Edit the files there and open a pull request β€” direct wiki edits will be overwritten on the next sync.

πŸ“₯ binstaller


Clone this wiki locally