Skip to content

fish-deps

Usage
fish-deps [status|install|update|sync] [--optional] [--terminals] [--all]
Unified command for managing all tools this configuration depends on,
dispatching to subcommand handlers. Defaults to status when no subcommand
is given.
Install method priority (highest to lowest):
1. git+cargo source build (fish shell itself)
2. cargo (Rust tools — gets latest crate version)
3. system PM (paru/apt/brew/etc.)
4. git clone (fzf)
5. curl installer (starship, fisher, uv)

When multiple methods are available you are prompted to choose.

Dependencies are grouped into five tiers:

Required fish, fzf
Recommended cargo, starship, uv, zoxide, direnv, paru, yay, eza, lsd, bat, ov, ripgrep, trash, python3
Optional btop, dust, duf, prettyping, go, lazygit, lazydocker, docker, yt-dlp, screen — single-purpose wrapper conveniences that only matter if you already use that tool; skipped by install/sync unless --optional (or --all) is passed
Terminal Emulators kitty, wezterm — only matter if one of them is your actual terminal; skipped by install/sync unless --terminals (or --all) is passed
Integrations wakatime, tailscale

Arguments:

status Report installed/missing deps (default)
install Install missing deps interactively
update Update all installed deps
sync Install missing deps, then update all
--optional With install/sync: also offer Optional-tier deps
--terminals With install/sync: also offer Terminal-Emulator-tier deps
--all With install/sync: shorthand for --optional --terminals

Exit Status:

0 Subcommand completed
1 Unknown subcommand
Examples
fish-deps sync
fish-deps
fish-deps install
fish-deps install --optional
fish-deps install --terminals
fish-deps install --all
fish-deps update