# dotbins

> Cross-platform CLI binary manager for dotfiles that downloads tools from GitHub releases without requiring admin privileges

Stars: 273 · Categories: Dev Tools

- Repository: https://github.com/basnijholt/dotbins
- Website: https://dotbins.nijho.lt
- Page: https://www.trmn.sh/tools/dotbins

## Install

- uv: `uv tool install dotbins`
- pip: `pip install dotbins`

## Overview

dotbins is a cross-platform binary management tool that downloads and organizes CLI tools from GitHub releases into your dotfiles repository. It operates without requiring admin privileges or system package managers, making it particularly useful for developers who work across multiple environments where they need consistent access to their preferred CLI tools.

The tool manages binaries across different platforms (macOS, Linux, Windows) and architectures (amd64, arm64), automatically extracting them from various archive formats and organizing them by platform. It tracks installed versions in a manifest file, provides intelligent update detection, and can pin tools to specific versions. Configuration is handled through a YAML file that defines which tools to install and their platform-specific settings.

What differentiates dotbins from other binary managers is its integration with dotfiles workflows. It automatically generates shell integration scripts that configure PATH variables and apply tool-specific shell configurations (aliases, completions) directly within your dotfiles setup. This allows developers to version-control not just their configurations but also their essential CLI tools using Git LFS for efficient binary storage.

The tool provides both configuration-based management through `dotbins sync` for maintaining a full suite of tools, and ad-hoc installation via `dotbins get` for quickly installing individual tools. It includes features like GitHub API integration for release detection, support for multiple binaries per tool, and shell startup integration across different shell environments.

### Installation

```bash
# via uv
uv tool install dotbins
```

```bash
# via pip
pip install dotbins
```

![dotbins quick start demo](https://asciinema.org/a/709229.svg)

![dotbins overview diagram](https://media.trmn.sh/cached/78b6de53f8da4f6f00d7a258a5f563a9cd2c77fd3a6b0872c3e50b7967480e1e.png)

## Alternatives

- [logss](https://www.trmn.sh/tools/logss.md): CLI tool that splits and visualizes log streams into multiple containers based on regex patterns with real-time filtering (Rust, 296 stars)
- [chiko](https://www.trmn.sh/tools/chiko.md): Terminal UI client for testing gRPC APIs with server reflection, bookmarks, and metadata support (358 stars)
- [dra](https://www.trmn.sh/tools/dra.md): CLI tool to download and install release assets from GitHub repositories (Rust, 364 stars)
- [andcli](https://www.trmn.sh/tools/andcli.md): CLI tool for managing 2FA tokens from encrypted backups of popular authenticator apps (161 stars)
- [crates-tui](https://www.trmn.sh/tools/crates-tui.md): Terminal interface for browsing and exploring Rust crates from crates.io with search and clipboard integration. (155 stars)

---

Canonical: https://www.trmn.sh/tools/dotbins
