ubi

A house for code·houseabsolute.ubi

The Universal Binary Installer

UBI is a universal binary installer library and CLI tool. When I say "universal", I mean it downloads binaries from GitHub or GitLab releases. When I say "binary", I mean it handles single-file executables like those created by most Go and Rust projects. When I say "installer", I mean it plops the binary wherever you tell it to. And finally, when I say "UBI", I don't mean "universal basic income", but that'd be nice too.

winget install --id houseabsolute.ubi --exact --source winget

Latest 0.12.0·August 31, 2026

Release Notes
  • Fixed a bug where ubi checked the env var CI_TOKEN for a GitLab token. This is now CI_JOB_TOKEN, which is what GitLab actually sets in CI.
  • Added a --color flag, settable with UBI_COLOR, which accepts auto, always, or never. Previously, ubi always emitted ANSI color escapes, even when its output was redirected to a file or a pipe, which made saved logs hard to read. The new default, auto, colorizes output only when stderr is a terminal and the NO_COLOR env var is not set. Setting NO_COLOR to the empty string or to 0 is treated as not setting it at all.
  • Breaking change for library users: ubi::init_logger now takes a second argument, a ubi::ColorChoice. Pass ColorChoice::default() to keep the previous behavior of colorizing output, except that it is now suppressed when stderr is not a terminal or NO_COLOR is set.
  • Fixed up the colors for logging. The DEBUG label was black, which made it unreadable in terminals with a dark background. It is now cyan. INFO level messages are now green. Previously, they looked identical to DEBUG level messages.
  • When ubi was asked to install an executable to a path where a directory already existed, it failed with a bare Is a directory (os error 21). It now gives a more helpful message with guidance on how to fix the problem. In addition, it checks some various cases that would prevent the install from working before it downloads anything. However, not all cases can be checked before download. Inspired by a report from @oalders (Olaf Alders). GH #136. What happened to 0.11.0? It was lost in the mix as I updated my release tooling.

Installer type: zip

x86—A8896CB05A27392560CC62B319386F218A2275FD69AD20E3216E186BDBA30BB7
x64—5DD527177B8BE61D5486AC69A268211A11DD4D3C137CE86BDCCF29D8F657E9E2
arm64—66837371EBEB945F6714262D815E89D592F2A8CD9195CD78C37C56EAD4F7AD10

Details

Homepage
https://github.com/houseabsolute/ubi
License
Apache-2.0 or MIT
Publisher
A house for code
Support
https://github.com/houseabsolute/ubi/issues
Copyright
Copyright (c) 2026 David Rolsky

Tags

binarydownloadexecutableinstallportable

Older versions (14)

0.10.0
x86—FB563DDDF83DC56C98892F9F79D4A95499B0F7C00623A3DE910BB7EFFD7FB18B
x64—349388EF44B7B6A31E42EDDA6787556B3701E3C1250C9B30F08D5141DB8A4348
arm64—D9EAB69E139B0989511A9C779FD412BA1DB388A3121D067225BF79BC1A17249E
0.9.0
x86—60F7B433B6CEEF8317D5748D845D9F04947366D5DD10D777F0CBF7F1DDC3D1F6
x64—071209BFD2BEB0F6EEB85F46F26A24DC71CF5B239A20BE4F8D6D921E65E41F00
arm64—47C8B3D95F57842C58C7AA594322D09361F1BB722700E89FB9A55D9FAB0B7F0F
0.8.4
x86—387A8A80B47700D05ADB8D2801B9620C49B504CF050B474CA3E8C05F3F77CFCC
x64—E7DCB4BF6999F2D0BA0E5D4AF35699447ABE729BF144F07E28240FB3CD655BB4
arm64—25F6ABE24EF000D09E5EFDF7E4779735220A0C37DE49FC376255793929D835C1
0.8.2
x86—CF16706C1DD42A59D097B732EA29CA17C8FE0C394FA5D8DE925B6050BB70AC4B
x64—6BA9A94AEECA481AC1AF7192FFDE324446AC36D826F40A09B7E68E20B23627F8
arm64—EC9073CC922B295269853D4A2712402C42180859013DA10B627FBB7480CC5D52
0.8.1
x86—2C45D85738EC58456AABD121ECE989A82E8B98E88684C4CDF4FF8345DE299C70
x64—89E152E81B913CD1067AA65AEFD22FBEE5689BEB8D3F54AEB3BC11892D722736
arm64—CEA904F97A8466A83C50C632531C285CA4645D57C31C9153C22155D57558DACA
0.8.0
x86—283ACAD4387E1555060AC045CA38027C8D16657403FC831568B5B75B4D68E08F
x64—EB4AAC16DDFEE1D153F5C04DB982805BDE6DEDB563400895B77A11CDD76C9CDA
arm64—211728097E675CB439D94CFC31116A2AA6DAAD62113A51A4B426CAF71EB9A0FB
0.7.4
x86—D815EAACC1A2378012E5B51823FC1C6B04A75F0DF849D051C83CF3EA6FCF9339
x64—450836AEBC9EC3F16B03C6883B0C195A24ABF419596FEC3067FA495306640F7C
arm64—2DF26CD0021AA699309534462DCB62DD2C666EDF952B0F63BE70495A4AEE24AC
0.7.3
x86—993A7926B87EF8D137A2042DE3187B7C81742E7DE98A96A944F74DE31CAE91CC
x64—BC9111EEF49067471721C8F6E07DCD71F0AD616E8807A94ECED1B1C931AD10A0
arm64—16D1390670E32E4EFC79732CA7DE253FA1B2AFC258B4EDAF377ADAF31038E8E2
0.7.2
x86—61FE245BCD47529F5674DD35E76B4CCDF0FE7C65F5D12E1ADCD9EA95E604CEFF
x64—2E172CBA2764C1E19CBD36BF9F20ABE4B84CB8165D237263AEF78705B02E7788
arm64—EA1BBB7AB347B47A6D08FE09F888780DC51FF9F2A20DD64D81772B5A535986C3
0.7.1
x86—B56340AD168F605F17CB25100459DFE3FC0770B12409401A6281D2A60F65DDAD
x64—8AFC2DD2AB1C3381B907DE95CD39DD7CDBE770C4E2EC85240184B47B297FE346
arm64—704360F19F6023532E5ABADCA9895888EB5154FDB8E984FD684336AA41465751
0.7.0
x86—0D1A1D4EC686AFDA31195E5AECAE617E113D14766C0B107E600D718A974A5137
x64—D7F5403341DE9546FFB4AF060AB36AA02618B4AC05CEF783A8991B222197F2EF
arm64—9CFADA4640D067A1D53E64DA0182FA8FCEA60456E4C56B8B0765614C8DBA44AB
0.6.1
x86—93128C67A77C7FAFAC59DF25CB3E6D0F71260BE052CBB8440D288268A7590940
x64—2A51377BA581D5DAB962BE829F81286FA6D503AD753A8A3B1986C866C37DED83
arm64—EA59291D23AF5C4D16AD1D80397F860B97987FE0039FB772D288AC111652E9BA
0.6.0
x86—EE0C64E5B1B3E4D66BCF75A7E6A5D2CDD88F4B04D52015EA14DC2B24CCC42DCB
x64—2F1AB0B08E9A766984891595C4E9A80D0CA5FE6D481D0D70AE6139A7FE3FC32E
arm64—4E0B7472B7265F49C3D0DF3958251727F94DE80196DDFF30F566F06070501373
0.5.2
x86—455D99A2E0A6C34E4054EE64173D5BF3009A9762C2B01B6FF4C2B7024E92FD35
x64—E5AE4B2C9B3F7B33FBC9839176115040D3E889C8047F5B40C733BD0B44C500C0
arm64—B25D04978AB6AAAF6FB08B356FC6C85B7FDBDDF1E08D8FEB96A9590D00F00D6F