Skip to content

Overview

The system supports multiple installation methods to accommodate different tool distribution patterns. Each method has its own page with its parameters and examples; this page compares them and links to those pages.

Direct download methods like github-release, curl-tar, or curl-binary are strongly recommended when available. Because they fetch isolated binaries directly into the dotfiles data directory, the dotfiles manager maintains full control over the runtime environment, version tracking, and execution shims.

Using external package managers like brew or npm is fully supported and sometimes necessary, but introduces potential state drift. These package managers natively own their own placement, upgrades, and environment links. If you run brew upgrade externally, the binary may update out of sync with what the dotfiles manager recorded. While this won’t break the system, it’s best practice to drive all updates through the dotfiles update CLI directly to keep state consistent.

MethodBest ForProsCons
aptDebian-family Linux packagesUses distro packagesLinux distro-specific, external state
brewmacOS/Linux toolsSimple, well-maintainedPlatform-specific, requires Homebrew
cargoRust toolsFast pre-compiled binariesRust tools only
curl-binaryDirect binary downloadsSimplest, no extraction neededManual URL management
curl-scriptCustom installersFlexible, handles complex setupsLess predictable, security concerns
curl-tarArchive downloadsSimple, no dependenciesManual URL management
dmgmacOS .app bundlesHandles mount/unmount, archive extractmacOS only
dnfRPM-family Linux packagesUses distro packagesLinux distro-specific, external state
gitea-releaseCodeberg / self-hosted Gitea toolsSupports any Gitea-compatible hostRequires instance URL
github-releaseMost open source toolsAutomatic updates, cross-platformRequires GitHub hosting
manualCustom scripts, configuration toolsInclude files with dotfiles, flexibleManual file management
npmNode.js toolsSimple, version managementRequires Node.js/npm
pacmanArch-family Linux packagesUses distro packagesLinux distro-specific, external state
pkgmacOS installer packagesUses native installer flowmacOS only
zsh-pluginZsh plugins from Git reposSimple, automatic updatesZsh plugins only

Parameters shared by every method (auto) are documented under Base Install Parameters. The env install parameter is read only by curl-script.