Ohbin – uv wrapper for installing tools from GitHub

A tiny tool promised less setup pain, but the comments turned into a "why not use this instead?" brawl

TLDR: ohbin lets projects list downloadable tools in one place so teams don’t have to install them by hand every time. Commenters weren’t sold: some mocked the docs, others said existing tools already do this, turning a handy release into a full-on usefulness debate.

A new project called ohbin is trying to solve one of those deeply annoying software team problems: everyone needs the same command-line tools, but getting them installed the same way on every laptop and in every test system is a mess. Its pitch is simple enough for non-experts: put the tool name and version in one project file, and ohbin grabs it from GitHub, checks it’s the right file, saves it, and runs it when needed. In other words, less "hey, can you install this thing manually" chaos.

But the real fireworks were in the replies, where the crowd instantly split into camps. One group basically said, cool idea, terrible vibe. The sharpest jab accused the README of sounding like it was written by an AI intern, with one commenter sniping, "this README seems more internal" and calling the whole pitch "weird." Another commenter looked at the example command and just deadpanned "yeaaah," which is internet-speak for "absolutely not, I’m not typing that." Brutal.

Then came the classic tech-comment-section cage match: do we even need this? One person insisted this is already possible in uv, while others rolled in with the eternal rival-app energy: "Mise does this and more" and even a drive-by mention of Pixi’s competing approach. So while ohbin wants to be the easy middleman for GitHub downloads, the community reaction was less "finally!" and more "another tool enters the arena".

Key Points

  • The article presents ohbin as a generic wrapper that manages GitHub-release binaries through declarations in `pyproject.toml` instead of per-tool Python wrapper packages.
  • ohbin fetches binaries on first use, verifies them with pinned SHA256 hashes, caches them per host, and executes them through a single dev dependency.
  • The article says `uv` cannot directly turn arbitrary GitHub-release binaries into runnable commands because `uv run` depends on static Python console-script metadata.
  • `ohbin add` resolves a repository release, selects platform-specific assets, records checksums, and writes manifest entries into `pyproject.toml` using `tomlkit`.
  • `ohbin run` uses the manifest to download, verify, cache, and execute a tool, while related commands expose cached paths and declared tool/platform information.

Hottest takes

"yeaaah" — _ZeD_
"this README seems more internal" — ramon156
"Mise does this and more" — figmert
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.