binpm

binpm is a Rust-based, Node-free binary package manager for installing and running command-line tools from release assets.

Use binpm when a tool already publishes native executables and you want project-local or user-level installation without npm, pnpm, yarn, Bun, Cargo install, Homebrew, or system package managers acting as the install backend.

Start Here

Implementation Status

The binpm runtime has concrete Rust CLI behavior for command parsing, release source parsing, provider release lookup, target-aware asset selection, asset download, archive extraction for documented formats, global and project-local records, cache metadata, URL sanitization, SHA-256 validation, and atomic file writes.

Checksum sidecar and manifest discovery, signature verification, and global update behavior remain future implementation work. Documentation for this app must preserve those boundaries until the runtime contract changes.

Source Specs

Stable source identifiers are:

github:owner/repo[@version]
github:<host>/owner/repo[@version]
gitlab:<host>/<namespace...>/<project>[@version]

Direct URLs, registries, and package-manager backends are outside the current contract.

Explicit source versions must be exact release tags. Omit @version to select the latest stable release. @latest, SemVer range-like selectors, channel selectors such as @beta, and numeric major-version pins such as @1 are rejected before manifest or lockfile writes.

Validation Commands

Use these commands from the repository root when changing binpm docs:

pnpm --filter binpm-docs test
pnpm --filter binpm-docs build