Skip to content

Dependencies

CtrlUserKnown edited this page Jul 21, 2026 · 1 revision

Dependencies

dots manages a single, cross-platform dependency list. Each entry maps a binary name to its package name under Homebrew, dnf, and apt, so the same list works on macOS and Linux. dots auto-detects your package manager (brew, then apt, then dnf).

The list is defined in crates/dots/src/packages.rs as a structured DEPS table, organized in three tiers.

Tiers

Category Installed by Examples
Required dots install --all git, eza, bat, fd, fzf, fastfetch, zoxide
Optional dots install --optional neovim, herdr, btop, lazygit, yazi, carapace
Dev dots install <name> java, go, lua, maven, cmake, gcc, ripgrep, shellcheck, gh, docker, nmap, ffmpeg

Installing

dots install --all         # all missing Required deps
dots install --optional    # all missing Optional deps
dots install lazygit       # a single package by binary or brew name

You can also install tools interactively from the Tools pane / Health screen in the TUI.

How resolution works

  • Package manager detection: brewaptdnf, first match wins. If none is found, dots reports that it can't install automatically.
  • Per-platform names: a package can differ across platforms (e.g. fd is fd-find on dnf/apt); dots picks the right name for your system.
  • Casks & taps: Homebrew casks and taps are supported for entries that need them.
  • Script installs: some tools (e.g. herdr) install via an upstream script rather than a package manager, and dots runs that when it's the right source.
  • Health checks: dots health reports which tools are present vs missing by probing for the binary.

Shell plugins

Separately from DEPS, the Health screen's Plugins pane tracks shell plugins by checking for them at known paths:

  • zsh-autosuggestions
  • zsh-syntax-highlighting
  • zsh-history-substring-search
  • fzf-tab

Clone this wiki locally