1069 lines
32 KiB
Markdown
1069 lines
32 KiB
Markdown
# 5. FUNCTIONS REFERENCE
|
||
|
||
**Sections:** [Index](index.md) | [1. Configuration Variables](1-configuration-variables.md) | [2. Path Setup](2-path-setup.md) | [3. Key Bindings](3-key-bindings.md) | [4. Abbreviations](4-abbreviations.md) | **5. Functions Reference** | [6. Dependency Catalog](6-dependency-catalog.md) | [7. Customization](7-customization.md) | [8. Fisher Plugins](8-fisher-plugins.md) | [9. Installation](9-installation.md) | [10. Personalization](10-personalization.md) | [11. Viewing This Manual](11-viewing-this-manual.md)
|
||
|
||
---
|
||
|
||
## 5.1 File and Directory
|
||
|
||
### cat
|
||
|
||
Synopsis: cat [args...]
|
||
Wraps bat for files with syntax highlighting and line numbers.
|
||
Passes directories to ls. Falls back to /usr/bin/cat.
|
||
|
||
cat README.md
|
||
cat ~/projects/myapp
|
||
|
||
### copy
|
||
|
||
Synopsis: copy <source> <dest>
|
||
Wraps cp, stripping trailing slashes from source directories to
|
||
prevent unintended nesting inside the destination.
|
||
|
||
copy ./mydir/ ~/backup # copies mydir INTO backup, not backup/mydir/
|
||
|
||
### du
|
||
|
||
Synopsis: du [--disk|--dir|--dua] [args...]
|
||
Smart disk-usage dispatcher:
|
||
--disk force duf (disk-level free/used overview)
|
||
--dir force dust (per-directory tree breakdown)
|
||
--dua force dua (fast space analyzer)
|
||
Without flags, routes to the most appropriate tool by context.
|
||
|
||
du ~/Downloads
|
||
du --disk
|
||
|
||
### dusize
|
||
|
||
Synopsis: dusize [dir]
|
||
Human-readable disk usage for a directory via du -sh. Defaults to cwd.
|
||
|
||
dusize ~/Videos
|
||
|
||
### lD
|
||
|
||
Synopsis: lD [args...]
|
||
Lists directories only in long format with icons. Uses eza, falls back
|
||
to lsd, then system ls.
|
||
|
||
lD ~/projects
|
||
|
||
### ls
|
||
|
||
Synopsis: ls [args...]
|
||
Lists files in long format with icons and hyperlinks. Uses eza, falls
|
||
back to lsd, then system ls.
|
||
|
||
ls
|
||
ls -a ~/projects
|
||
|
||
### lsr
|
||
|
||
Synopsis: lsr [args...]
|
||
Lists files sorted by modification time, oldest first. Uses eza.
|
||
|
||
### lss
|
||
|
||
Synopsis: lss [args...]
|
||
Lists files sorted by size with gradient color scaling. Uses eza.
|
||
|
||
### lstree
|
||
|
||
Synopsis: lstree [args...]
|
||
Full recursive tree view with icons. Uses eza.
|
||
|
||
lstree ~/projects/myapp
|
||
|
||
### lt
|
||
|
||
Synopsis: lt [args...]
|
||
Tree view limited to depth 2 with icons. Uses eza.
|
||
|
||
lt ~/projects
|
||
|
||
### ltr
|
||
|
||
Synopsis: ltr [args...]
|
||
Lists files sorted by modification time, oldest first, long format with
|
||
age-based gradient scaling. Uses eza.
|
||
|
||
### lx
|
||
|
||
Synopsis: lx [args...]
|
||
Lists files sorted by extension, long format. Uses eza.
|
||
|
||
### mkdir
|
||
|
||
Synopsis: mkdir [args...]
|
||
Interactive mkdir that prints a tree of created directories.
|
||
Falls back to mkdir -p silently.
|
||
|
||
mkdir ~/projects/myapp/src
|
||
|
||
### mkcd
|
||
|
||
Synopsis: mkcd [-s] <dir>
|
||
Creates a directory (including parents) and cd into it. Prints a tree
|
||
of created dirs by default; -s/--silent suppresses output.
|
||
|
||
mkcd ~/projects/newapp/src
|
||
|
||
### poke
|
||
|
||
Synopsis: poke <file> [file...]
|
||
Creates files via touch, automatically creating any missing parent
|
||
directories first.
|
||
|
||
poke ~/projects/new/src/main.fish
|
||
|
||
### rm
|
||
|
||
Synopsis: rm [-e [opts] | -S | args...]
|
||
Safe rm wrapper routing to trash:
|
||
|
||
(no args) List current trash contents
|
||
-e/--empty Empty the trash (pass options to trash-empty)
|
||
-S/--secure Permanently delete via rm -rf + fstrim (irreversible)
|
||
-r/-R/--recursive Move to trash
|
||
<paths> Move to trash (safe delete)
|
||
|
||
Falls back to /usr/bin/rm when trash is unavailable.
|
||
|
||
rm file.txt # moves to trash
|
||
rm -e # empty trash
|
||
rm -S sensitive.pem # permanent delete
|
||
|
||
### rg
|
||
|
||
Synopsis: rg [args...]
|
||
In Kitty, wraps ripgrep with --hyperlink-format=kitty so search
|
||
results are clickable file links in the terminal. Falls back to
|
||
system rg in any other terminal. All other arguments pass through
|
||
unchanged.
|
||
|
||
rg "fish_greeting" ~/.config/fish/
|
||
rg -l "TODO" ~/projects/myapp
|
||
|
||
### scrub
|
||
|
||
Synopsis: scrub [-a] [-d] [-h]
|
||
Recursively removes OS metadata, editor artifacts, compiler output,
|
||
and dev caches using fd.
|
||
|
||
-a/--aggressive Also removes node_modules, logs, .cache, IDE dirs,
|
||
AI session artifacts
|
||
-d/--dry-run Print what would be removed without deleting
|
||
|
||
scrub
|
||
scrub -a
|
||
scrub -d
|
||
|
||
---
|
||
|
||
## 5.2 Navigation
|
||
|
||
### cdi
|
||
|
||
Synopsis: cdi [query]
|
||
Interactive directory picker combining zoxide frecency with fzf.
|
||
Equivalent to zi.
|
||
|
||
cdi myproject
|
||
|
||
### clone
|
||
|
||
Synopsis: clone [args...]
|
||
Clone a git repository into a new Kitty window. Kitty-only.
|
||
|
||
clone https://github.com/user/repo.git
|
||
|
||
### clonet
|
||
|
||
Synopsis: clonet [args...]
|
||
Clone a git repository into a new Kitty tab. Kitty-only.
|
||
|
||
clonet https://github.com/user/repo.git
|
||
|
||
---
|
||
|
||
## 5.3 Editors and Viewers
|
||
|
||
### edit
|
||
|
||
Synopsis: edit [-V|-t] [-e EDITOR] [-c] [-x TEXT] [-n] [-v|-s] [FILE...]
|
||
|
||
Opens files in a text editor, choosing a terminal or GUI editor and
|
||
resolving a rich chain of fallbacks. With no --visual/--terminal flag the
|
||
mode is auto-detected: interactive terminals use the terminal editor
|
||
($EDITOR), while detached invocations (e.g. desktop shortcuts) use the GUI
|
||
editor ($VISUAL). Clipboard contents and literal strings can be opened as
|
||
throwaway temp files. Editor output is suppressed unless --verbose.
|
||
|
||
GUI fallback chain: zed → antigravity-ide → code → kate → kwrite →
|
||
gnome-text-editor → gedit
|
||
Terminal fallback chain: nvim → vim → micro → nano → vi
|
||
|
||
Options:
|
||
-V, --visual Force the GUI editor ($VISUAL or fallbacks)
|
||
-t, --terminal Force the terminal editor ($EDITOR or fallbacks)
|
||
-e, --editor=X Use a specific editor binary X
|
||
-c, --clipboard Open the clipboard contents (as a temp file)
|
||
-x, --text=STR Open STR as the contents of a new temp file
|
||
-n, --new Force a new window/instance (best-effort)
|
||
-v, --verbose Print the launch command and editor output
|
||
-s, --silent Suppress all output, including the editor's
|
||
-h, --help Show this help message
|
||
|
||
edit ~/.config/fish/config.fish
|
||
edit --visual notes.txt
|
||
edit --terminal --new todo.md
|
||
edit --editor=code --clipboard
|
||
edit --text="hello world"
|
||
|
||
### fc
|
||
|
||
Synopsis: fc [command_prefix]
|
||
Edit the last shell command (or one matching a prefix) in $EDITOR,
|
||
then execute the result. Bash-style fc behaviour.
|
||
|
||
fc
|
||
fc git
|
||
|
||
### less
|
||
|
||
Synopsis: less [args...]
|
||
Pager wrapper with fallback chain: $PAGER -> ov -> less -> more -> cat.
|
||
|
||
less /var/log/syslog
|
||
|
||
### rawfish
|
||
|
||
Synopsis: rawfish [args...]
|
||
Launches Fish with NO_TMUX=1, bypassing any tmux auto-attach logic.
|
||
Useful when you need a clean shell without session management.
|
||
|
||
### view
|
||
|
||
Synopsis: view [args...]
|
||
Opens files in nvim read-only mode (-R). Falls back to less.
|
||
|
||
view /etc/fstab
|
||
|
||
---
|
||
|
||
## 5.4 Git and Version Control
|
||
|
||
### auto-pull
|
||
|
||
Synopsis: auto-pull [list]
|
||
auto-pull add [PATH]
|
||
auto-pull remove <NAME|PATH>
|
||
auto-pull status
|
||
|
||
Manages the registry of repositories that are background fast-forwarded
|
||
when you enter them (see "Auto-pull fast-forward" under the C2 component
|
||
reference). The fish-config repo is always covered as a baseline. The
|
||
registry is machine-local at `$__fish_user_dots_path/auto-pull.list` (defaults
|
||
to `~/.config/.user-dots/fish/auto-pull.list`), one absolute path per line,
|
||
and is never committed. Registry management works
|
||
even when C2 auto-execution is disabled; only the background sync is gated.
|
||
|
||
list Show registered repos (default)
|
||
add [PATH] Register PATH's git root (default: current repo)
|
||
remove <NAME|PATH> Unregister by basename or exact path
|
||
status Show enabled/disabled state, repo count, list path
|
||
|
||
cd ~/src/qmk_firmware; and auto-pull add
|
||
auto-pull add ~/work/api
|
||
auto-pull list
|
||
auto-pull remove qmk_firmware
|
||
|
||
### branch
|
||
|
||
Synopsis: branch <branch_name>
|
||
Switches to a local branch, or creates it if it does not exist.
|
||
|
||
branch feature/new-ui
|
||
|
||
### gi
|
||
|
||
Synopsis: gi [-h] [-b] [-p] [-s] [-l] [targets...]
|
||
Generates .gitignore content from the gitignore.io API with MD5-based
|
||
deduplication (patterns already present are not re-appended).
|
||
|
||
-b/--boilerplate Append generic boilerplate first
|
||
-p/--prompt Prompt interactively for targets
|
||
-s/--stdout Print to stdout instead of appending to .gitignore
|
||
-l/--list List all available targets
|
||
targets Comma-separated or space-separated target names
|
||
|
||
gi python,venv
|
||
gi -b -p
|
||
gi -s node > .gitignore
|
||
|
||
### git-clean
|
||
|
||
Synopsis: git-clean [-f]
|
||
Fetches and prunes the remote, fast-forwards the current branch, then
|
||
deletes local branches whose remote tracking branch has been deleted.
|
||
Switches to main/master automatically if the current branch is orphaned.
|
||
|
||
-f/--force Force-delete unmerged branches too
|
||
|
||
git-clean
|
||
git-clean --force
|
||
|
||
### gitup
|
||
|
||
Synopsis: gitup [args...]
|
||
Fetches updates from the remote and shows git status. Extra args are
|
||
forwarded to git fetch.
|
||
|
||
gitup
|
||
gitup --all
|
||
|
||
### gitui
|
||
|
||
Synopsis: gitui [args...]
|
||
Launches gitui with the Catppuccin Frappe theme pre-applied.
|
||
|
||
### hist
|
||
|
||
Synopsis: hist
|
||
Searches shell history with fzf, inserts the selection into the command
|
||
line, and copies it to the clipboard via wl-copy.
|
||
|
||
---
|
||
|
||
## 5.5 Package Management
|
||
|
||
### pkg
|
||
|
||
Synopsis: pkg [-h] [-i|-u] <package> [package...]
|
||
Installs or removes packages using the detected system package manager.
|
||
Supports: paru, yay, pacman, apt, dnf, zypper, yum, brew, pkg.
|
||
|
||
(no flag) Auto mode: installs missing packages, removes installed ones
|
||
-i/--install Force install
|
||
-u/--uninstall Force uninstall
|
||
|
||
pkg firefox # auto: install if missing, remove if present
|
||
pkg -i ripgrep fd # force install
|
||
pkg -u cowsay # force uninstall
|
||
|
||
The package-installed check uses the correct query for each PM:
|
||
pacman/paru/yay pacman -Qi
|
||
apt dpkg -s
|
||
dnf/zypper/yum rpm -q
|
||
brew brew list
|
||
pkg pkg info
|
||
|
||
### search
|
||
|
||
Synopsis: search [args...]
|
||
Interactive AUR package search and install via paru or yay.
|
||
Arch Linux only.
|
||
|
||
search neovim
|
||
|
||
### upgrade
|
||
|
||
Synopsis: upgrade
|
||
Full system upgrade via paru -Syu --noconfirm or yay -Syu --noconfirm.
|
||
Arch Linux only.
|
||
|
||
### cleanup
|
||
|
||
Synopsis: cleanup
|
||
Lists and removes orphan packages via pacman, logging their names to
|
||
~/.removed_orphans. Arch Linux only.
|
||
|
||
### parur
|
||
|
||
Synopsis: parur
|
||
Opens an fzf picker of all installed packages (with pacman -Qi previews),
|
||
then removes the selected packages via paru or yay. Arch Linux only.
|
||
|
||
parur
|
||
|
||
---
|
||
|
||
## 5.6 Dependency Management
|
||
|
||
### fish-deps
|
||
|
||
Synopsis: fish-deps [status|install|update|sync]
|
||
Unified command for managing all tools this configuration depends on.
|
||
|
||
status (default) Show installed/missing status grouped by tier
|
||
install Interactively install each missing dependency
|
||
update Update all installed dependencies
|
||
sync Install missing deps, then update all
|
||
|
||
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 three tiers:
|
||
|
||
Required fish, fzf, zoxide
|
||
Integrations wakatime, tailscale
|
||
Recommended cargo, starship, uv, direnv, paru, yay, eza, lsd, bat,
|
||
btop, dust, duf, prettyping, ov, ripgrep, lazygit,
|
||
lazydocker, trash, kitty, wezterm, python3, yt-dlp
|
||
|
||
fish-deps
|
||
fish-deps install
|
||
fish-deps update
|
||
fish-deps sync
|
||
|
||
### check_fish_deps
|
||
|
||
Synopsis: check_fish_deps
|
||
Backwards-compatibility alias for `fish-deps status`.
|
||
|
||
---
|
||
|
||
## 5.7 System and Monitoring
|
||
|
||
### top
|
||
|
||
Synopsis: top [args...]
|
||
Launches btop as a modern resource monitor. Falls back to system top.
|
||
|
||
### swapstat
|
||
|
||
Synopsis: swapstat
|
||
Displays a colorized memory report: kernel swappiness, zRAM compression
|
||
ratio, zRAM device details, and active swap priorities.
|
||
|
||
### sbver
|
||
|
||
Synopsis: sbver [--brief]
|
||
Verifies Secure Boot signatures on all EFI binaries tracked by sbctl.
|
||
Color-codes results: green checkmark (verified), red X (unsigned).
|
||
Prints a pass/fail summary.
|
||
|
||
--brief Suppress per-file output, show only the summary
|
||
|
||
sbver
|
||
sbver --brief
|
||
|
||
### ports
|
||
|
||
Synopsis: ports
|
||
Lists active TCP listeners with lsof, showing port/address without
|
||
hostname resolution.
|
||
|
||
### screensleep
|
||
|
||
Synopsis: screensleep
|
||
Turns off the display via KDE PowerDevil's "Turn Off Screen" action,
|
||
invoked through busctl.
|
||
|
||
### lock
|
||
|
||
Synopsis: lock
|
||
Locks the current desktop session using loginctl lock-session.
|
||
|
||
### sudo-toggle
|
||
|
||
Synopsis: sudo-toggle
|
||
Toggles the sudo NOPASSWD rule on/off via /etc/sudoers.d/nofail-toggle.
|
||
Useful for automated tasks that would otherwise require password entry.
|
||
|
||
### limine-edit
|
||
|
||
Synopsis: limine-edit
|
||
Opens /boot/limine.conf in sudoedit, then automatically re-enrolls the
|
||
config hash, runs CachyOS boot hooks, and re-signs Secure Boot files.
|
||
Combines the edit and sign steps into a single command.
|
||
|
||
---
|
||
|
||
## 5.8 Terminal Management
|
||
|
||
### tab
|
||
|
||
Synopsis: tab [args...]
|
||
Opens a new tab in Kitty (kitty @ launch --type=tab), WezTerm
|
||
(wezterm cli spawn), or Konsole. Uses current working directory,
|
||
or $cdto if set.
|
||
|
||
tab
|
||
|
||
### split
|
||
|
||
Synopsis: split [-h|-v] [command...]
|
||
Opens a new pane in Kitty or WezTerm, optionally running a command.
|
||
|
||
-h/--horizontal (default) Split below
|
||
-v/--vertical Split to the right
|
||
|
||
split
|
||
split -v nvim README.md
|
||
|
||
### spwin
|
||
|
||
Synopsis: spwin [args...]
|
||
Spawns a new terminal OS window in Kitty (via spawn-window.sh or
|
||
kitty @ launch --type=os-window) or WezTerm (wezterm cli spawn --new-window).
|
||
|
||
### detach
|
||
|
||
Synopsis: detach [-h] [--version] <command> [args...]
|
||
Runs a command fully detached via nohup with stdout/stderr discarded.
|
||
The command survives the current session.
|
||
|
||
detach rsync -a ./data remote:/backup/
|
||
|
||
### bkg
|
||
|
||
Synopsis: bkg <command> [args...]
|
||
Launches a command in the background via nohup with output discarded.
|
||
Simpler than detach; no version flag.
|
||
|
||
bkg firefox
|
||
|
||
### ssh
|
||
|
||
Synopsis: ssh [args...]
|
||
In Kitty, wraps ssh with kitten ssh for better terminal integration
|
||
(multiplexing, copy/paste support). Falls back to system ssh elsewhere.
|
||
|
||
ssh user@host
|
||
|
||
---
|
||
|
||
## 5.9 Clipboard
|
||
|
||
### y
|
||
|
||
Synopsis: y [text...]
|
||
Copies text to the clipboard via wl-copy (Wayland) or xclip (X11).
|
||
Reads from stdin if no arguments given.
|
||
|
||
y "hello world"
|
||
ls | y
|
||
cat file.txt | y
|
||
|
||
### p
|
||
|
||
Synopsis: p [args...]
|
||
Outputs clipboard contents to stdout.
|
||
|
||
p | grep foo
|
||
p > file.txt
|
||
|
||
### paste
|
||
|
||
Alias for p. Identical behaviour.
|
||
|
||
---
|
||
|
||
## 5.10 Network
|
||
|
||
### gip
|
||
|
||
Synopsis: gip
|
||
Fetches and prints both the public IPv4 and IPv6 address via
|
||
icanhazip.com.
|
||
|
||
### gip4
|
||
|
||
Synopsis: gip4
|
||
Fetches and prints the public IPv4 address.
|
||
|
||
### gip6
|
||
|
||
Synopsis: gip6
|
||
Fetches and prints the public IPv6 address. Returns 1 if IPv6 is
|
||
unavailable.
|
||
|
||
### ping
|
||
|
||
Synopsis: ping [args...]
|
||
Wraps prettyping with --nolegend. Pass --legend to show the legend.
|
||
Falls back to system ping.
|
||
|
||
ping google.com
|
||
|
||
### qr
|
||
|
||
Synopsis: qr [text...]
|
||
Generates a UTF-8 QR code from text or stdin. Uses qrencode locally;
|
||
falls back to the qrenco.de API.
|
||
|
||
qr "https://example.com"
|
||
echo "https://example.com" | qr
|
||
|
||
---
|
||
|
||
## 5.11 Pager and Logging
|
||
|
||
### logs
|
||
|
||
Synopsis: logs [-c <category>]
|
||
Interactively browses terminal log files sorted newest-first using fzf.
|
||
|
||
-c/--category Filter to: scrollback, paru, or yay
|
||
|
||
Keybindings inside the fzf browser:
|
||
Enter Open in $PAGER
|
||
Ctrl+E Open in $EDITOR
|
||
Ctrl+D Delete (with confirmation)
|
||
? Toggle keybind help overlay
|
||
|
||
Paru and yay logs open in ov with syntax highlighting and sticky section
|
||
headers. Scrollback logs open in ov with per-command sticky prompt headers
|
||
based on OSC 133 markers.
|
||
|
||
logs
|
||
logs -c paru
|
||
logs -c scrollback
|
||
|
||
### smart_exit
|
||
|
||
Synopsis: smart_exit [-n]
|
||
Closes the shell session. In Kitty, captures the terminal scrollback to
|
||
a timestamped log file in $SCROLLBACK_HISTORY_DIR before exiting.
|
||
Automatically prunes the oldest logs when the count exceeds
|
||
$SCROLLBACK_HISTORY_MAX_FILES.
|
||
|
||
-n/--no-log Exit without saving a scrollback log
|
||
|
||
The exit builtin is wired to smart_exit for interactive sessions.
|
||
Typing exit or Ctrl+D behaves identically to smart_exit.
|
||
|
||
smart_exit
|
||
smart_exit --no-log
|
||
|
||
---
|
||
|
||
## 5.12 AI and Developer Tools
|
||
|
||
### agy
|
||
|
||
Synopsis: agy [args...]
|
||
Wrapper for the agy Antigravity AI CLI. Before launching, delegates to
|
||
agents-init --agents to ensure AGENTS/ is scaffolded and CLAUDE.md is
|
||
symlinked to AGENTS/AGENTS.md in the current project, then forwards all
|
||
arguments verbatim to the real agy binary. Command shadow (C1): when
|
||
__fish_config_op_aliases (or the master) is disabled, the call is
|
||
passed through to the real agy binary unchanged.
|
||
|
||
agy chat
|
||
agy resume
|
||
|
||
### antigravity-ide
|
||
|
||
Synopsis: antigravity-ide [args...]
|
||
Runs the antigravity-ide editor with warnings filtered.
|
||
|
||
### agents-init
|
||
|
||
Synopsis: agents-init [--agents | --plugins]
|
||
Scaffold an AGENTS/ sub-repository for tracking agent specs, plans, specs,
|
||
and dev logs. Creates AGENTS/ as a standalone git repo, moves any existing
|
||
AGENTS.md into it, and replaces it with a relative symlink (plus
|
||
CLAUDE.md -> AGENTS/AGENTS.md so Claude Code picks up the shared agent
|
||
instructions). Consolidates plans/ and specs/ directly under AGENTS/
|
||
(merging any legacy docs/plans, docs/superpowers/plans, or old
|
||
AGENTS/plugins/ locations into the canonical AGENTS/<tgt>), creates
|
||
AGENTS/devlogs/, and wires docs/superpowers/{plans,specs} symlinks back to
|
||
them. Adds managed paths to .gitignore and auto-commits every change inside
|
||
the AGENTS/ sub-repo; pulls first when the sub-repo has an upstream.
|
||
Fully idempotent: a second run produces no output and no new commits.
|
||
Flags: --agents re-runs only the AGENTS.md / symlink step; --plugins
|
||
re-runs only the plans/specs/devlogs wiring step. Called automatically by
|
||
the claude and agy wrappers on every invocation.
|
||
|
||
Structure versioning: each AGENTS/ repo carries a self-contained version
|
||
bumper. AGENTS/.version holds MAJOR.MINOR.PATCH (seeded 1.0.0). Committed
|
||
git hooks under AGENTS/.agents-tools/ (wired via core.hooksPath) bump it on
|
||
every commit: MINOR (resetting PATCH) when the tracked directory set
|
||
changes, PATCH otherwise; MAJOR is manual-only. A prepare-commit-msg hook
|
||
appends "(vX.Y.Z)" to the commit subject. Downstream tooling can read
|
||
AGENTS/.version - a changed MINOR field signals a structure change. Because
|
||
core.hooksPath is a single setting, the local override would otherwise
|
||
shadow your global hooks; after bumping the version, each shim chains
|
||
(execs) to the global/system core.hooksPath hook of the same name so global
|
||
pre-commit / prepare-commit-msg hooks (e.g. ggshield, Git LFS) still run.
|
||
The script and hooks are shipped from scripts/agents-tools/ and refreshed
|
||
when their version marker is stale.
|
||
|
||
agents-init
|
||
agents-init --agents
|
||
agents-init --plugins
|
||
|
||
### claude
|
||
|
||
Synopsis: claude [args...]
|
||
Wrapper for the claude CLI. Before launching, delegates to agents-init
|
||
--agents to ensure AGENTS/ is scaffolded and CLAUDE.md is symlinked to
|
||
AGENTS/AGENTS.md in the current project, then forwards all arguments
|
||
verbatim to the real claude binary. Command shadow (C1): when
|
||
__fish_config_op_aliases (or the master) is disabled, the call is
|
||
passed through to the real claude binary unchanged.
|
||
|
||
claude
|
||
claude --resume
|
||
|
||
### claude-docs
|
||
|
||
Synopsis: claude-docs
|
||
Invokes Claude Code to analyze recent repository changes and update
|
||
README.md, ensuring all documented features and examples are accurate.
|
||
|
||
### claude-pr
|
||
|
||
Synopsis: claude-pr
|
||
Invokes Claude Code to run the full PR workflow: create branch,
|
||
conventional commit, verification, push, and open a PR with a manual
|
||
verification checklist.
|
||
|
||
### superpowers
|
||
|
||
Synopsis: superpowers [on|off] [-g]
|
||
Enables or disables the Superpowers plugin for Antigravity and Claude
|
||
Code at workspace/project scope (default) or user scope (-g/--global).
|
||
|
||
superpowers on
|
||
superpowers off -g
|
||
|
||
---
|
||
|
||
## 5.13 Media and Utilities
|
||
|
||
### dng2avif
|
||
|
||
Synopsis: dng2avif [-i <file>] [-o <file>] [-q <n>] [-s <n>] [input.dng]
|
||
Converts a DNG raw image to a 10-bit HDR AVIF using an ImageMagick,
|
||
ffmpeg, avifenc pipeline with metadata sync via exiftool.
|
||
|
||
-i/--input Input file (or positional arg)
|
||
-o/--output Output file (default: same name, .avif extension)
|
||
-q/--quality Quality 0-100 (default 92)
|
||
-s/--speed Encoding speed 0-10 (default 3)
|
||
|
||
dng2avif photo.dng
|
||
dng2avif -q 85 -s 5 -i shot.dng -o out.avif
|
||
|
||
### steam-dl
|
||
|
||
Synopsis: steam-dl
|
||
Launches Steam under systemd-inhibit, preventing the system from going
|
||
idle or sleeping while a download is in progress.
|
||
|
||
### spark
|
||
|
||
Synopsis: spark [--min=<n>] [--max=<n>] [numbers...]
|
||
Renders a Unicode sparkline bar chart for a sequence of numbers.
|
||
Reads from stdin if no numbers are given.
|
||
|
||
spark 1 1 2 5 14 42
|
||
echo "3 7 2 9 1" | spark
|
||
|
||
### yt-dlp
|
||
|
||
Synopsis: yt-dlp [args...] URL [URL...]
|
||
Wraps yt-dlp, prepending sane defaults: --sponsorblock-remove all,
|
||
--embed-subs, --embed-metadata, and --embed-thumbnail. Each default
|
||
is suppressed when you already pass that flag, its alias, or its
|
||
negation (e.g. --no-embed-thumbnail drops the thumbnail default;
|
||
--no-sponsorblock or your own --sponsorblock-remove drops ours). All
|
||
other arguments pass through unchanged, and --help falls through to
|
||
real yt-dlp. Opinionated component (C1 aliases); when disabled it
|
||
passes straight through to the system yt-dlp.
|
||
|
||
yt-dlp dQw4w9WgXcQ
|
||
yt-dlp --no-embed-thumbnail dQw4w9WgXcQ
|
||
|
||
---
|
||
|
||
## 5.14 Miscellaneous
|
||
|
||
### config-help
|
||
|
||
Synopsis: config-help [SECTION]
|
||
config-help [SECTION] --html
|
||
config-help [SECTION] --man
|
||
config-help -h | --help
|
||
|
||
Opens the offline fish shell configuration manual. Without flags, opens
|
||
the Markdown source in the best available pager (ov > bat > man > less >
|
||
cat). If SECTION is given, jumps to the first heading matching that
|
||
keyword (case-insensitive; checks fish-config.index aliases first).
|
||
|
||
Flags:
|
||
--html / -w Open docs/html/index.html in the default browser.
|
||
If SECTION is given, opens at the matching anchor.
|
||
Detects the browser via xdg-mime x-scheme-handler/https,
|
||
then known binaries, then xdg-open as last resort.
|
||
Respects $fish_help_browser and $BROWSER.
|
||
--man / -m Open docs/fish-config.1 via man -l directly.
|
||
If SECTION is given, jumps to the nearest match.
|
||
--help / -h Print usage and navigation key reference.
|
||
|
||
config-help keybindings
|
||
config-help pkg
|
||
config-help --html
|
||
config-help pkg --html
|
||
config-help --man
|
||
config-help pkg --man
|
||
|
||
Also available as: help config [SECTION] [FLAGS]
|
||
|
||
### open-url
|
||
|
||
Synopsis: open-url [-s|--silent] [-v|--verbose] <url>
|
||
open-url -h | --help
|
||
|
||
Opens a URL or file:// URI in the best available graphical web browser,
|
||
backgrounded so it never blocks the terminal. Resolves a real browser
|
||
binary rather than deferring to xdg-open, whose MIME dispatch can hand
|
||
local text/html files to non-browser apps (e.g. ebook readers).
|
||
|
||
Silent by default: prints nothing on success (errors always go to
|
||
stderr). Pass --verbose / -v to report which browser is launched;
|
||
--silent / -s is accepted for explicitness.
|
||
|
||
Resolution order:
|
||
1. $fish_help_browser (explicit override)
|
||
2. $BROWSER (validated; errors if not a command)
|
||
3. xdg-mime default handler for x-scheme-handler/https
|
||
4. First known browser binary found in a built-in list
|
||
5. xdg-open (last resort)
|
||
|
||
open-url https://git.rootiest.dev/rootiest/fish-config
|
||
open-url "file://$HOME/.config/fish/docs/html/index.html"
|
||
|
||
Used internally by config-help --html.
|
||
|
||
Typo abbreviation: url-open (expands to open-url on space/enter).
|
||
|
||
### repo-open
|
||
|
||
Synopsis: repo-open [-p|--print] [-r|--root]
|
||
repo-open -h | --help
|
||
|
||
Opens the web page for the current repository's `origin` remote in a
|
||
browser (via open-url). Deep-links to the current branch when it exists
|
||
on the remote — falling back to the remote's default branch (main/master)
|
||
otherwise — and to the current sub-directory when run below the repo root.
|
||
|
||
The remote URL is normalized from HTTPS and SSH/scp forms
|
||
(git@host:owner/repo.git, ssh://…, https://…). The web path layout is
|
||
provider-specific; the provider is resolved in order:
|
||
|
||
1. git config browse.provider (per-repo or --global override)
|
||
2. Hostname heuristic (github / gitlab / gitea / bitbucket;
|
||
codeberg → gitea)
|
||
3. Default: github-style layout
|
||
|
||
Self-hosted hosts the heuristic can't classify (a Gitea/GitLab instance
|
||
on a custom domain) need a one-time override:
|
||
|
||
git config browse.provider gitea
|
||
|
||
Flags:
|
||
--print / -p Print the resolved URL instead of opening it.
|
||
--root / -r Ignore the current sub-directory; link to the repo root.
|
||
--help / -h Show usage.
|
||
|
||
repo-open
|
||
repo-open --print
|
||
repo-open --root
|
||
|
||
Typo abbreviation: open-repo (expands to repo-open on space/enter).
|
||
|
||
### config-update
|
||
|
||
Synopsis: config-update [-h] [-n] [-f]
|
||
|
||
Pulls the latest fish configuration from the upstream repository
|
||
(https://git.rootiest.dev/rootiest/fish-config.git) into ~/.config/fish.
|
||
The remote URL is hard-coded, so this works on fresh clones with no git
|
||
remote configured. All git output is suppressed; colored messages report
|
||
fetch and merge status. After a successful pull, run `exec fish` to
|
||
reload.
|
||
|
||
Flags:
|
||
--dry-run / -n Fetch and show available commits without applying them.
|
||
--force / -f Stash local changes, pull, then restore the stash.
|
||
--help / -h Show usage.
|
||
|
||
config-update
|
||
config-update --dry-run
|
||
config-update --force
|
||
|
||
### config-settings
|
||
|
||
Synopsis: config-settings [-h]
|
||
|
||
Opens an interactive TUI for managing fish configuration settings across
|
||
four pages, without having to type or remember variable names. Tab cycles
|
||
forward through the pages; Shift-Tab cycles backward.
|
||
|
||
Universal — opinionated category toggles (C1–C6) + master, persistent (set -U)
|
||
Session — the same toggles, current shell only (set -g)
|
||
Sponge — sponge history-scrubbing settings: delay, successful exit
|
||
codes, purge-only-on-exit, allow-previously-successful, and
|
||
extra sensitive variable-name tokens
|
||
Paths — scrollback log directory, scrollback max files, the
|
||
user-dots path, and the user-dots convenience symlink toggle
|
||
(Dots link)
|
||
|
||
Toggle rows use ← → (or h/l) along an OFF ← DEFAULT → ON scale; DEFAULT
|
||
erases the variable so the master switch / built-in default applies. Value
|
||
rows (the path/int/list settings on the Sponge and Paths pages) use Enter to
|
||
edit inline; ← / h clears the value back to its default. List rows (e.g.
|
||
Extra secret, OK codes) accept values separated by commas and/or whitespace
|
||
— "A, B", "A,B" and "A B" all yield the same two entries. Changes apply
|
||
immediately. Always available regardless of the __fish_config_opinionated
|
||
master state.
|
||
|
||
The Sponge and Paths pages always write universal variables — these are
|
||
persistent, set-and-forget settings with no per-session scope. Editing a
|
||
scrollback row updates both the __fish_scrollback_history_* source-of-truth
|
||
variables and the exported SCROLLBACK_HISTORY_* mirrors, so the AUR/tmux/
|
||
zellij log wrappers (which read the exported names) see the change in the
|
||
running session.
|
||
|
||
The panel adapts to the terminal width automatically, selecting from
|
||
four layout tiers (with a 6-column buffer on each side before stepping
|
||
up to the next tier) and horizontally centering the box. The panel
|
||
redraws within ~0.3 s of a terminal resize with no keypress required.
|
||
|
||
COLUMNS >= 90 → 78-wide panel (most detail)
|
||
COLUMNS >= 86 → 74-wide panel
|
||
COLUMNS >= 82 → 70-wide panel
|
||
COLUMNS < 82 → 52-wide panel (default)
|
||
|
||
Navigation:
|
||
↑ ↓ / k j Move cursor
|
||
← → / h l Toggle rows: OFF ← DEFAULT → ON
|
||
← / h Value rows: clear to default
|
||
Enter Value rows: edit inline (Sponge / Paths pages)
|
||
Tab / S-Tab Next / previous page
|
||
q / Escape Exit
|
||
|
||
Flags:
|
||
--help / -h Show usage.
|
||
|
||
config-settings
|
||
|
||
### config-toggle (deprecated)
|
||
|
||
Deprecated alias for config-settings. Prints a deprecation notice to
|
||
stderr, then delegates all arguments to config-settings.
|
||
|
||
config-toggle
|
||
|
||
### bash
|
||
|
||
Synopsis: bash [args...]
|
||
Switches to bash, with XDG config applied. On exit, $SHELL is reset
|
||
back to fish.
|
||
|
||
### bd-pull
|
||
|
||
Synopsis: bd-pull <owner/repo>
|
||
Fetches unlinked Gitea issues and creates local Beads entries, updating
|
||
issue titles with the assigned Beads IDs.
|
||
Requires $GITEA_TOKEN and $GITEA_URL to be set.
|
||
|
||
bd-pull rootiest/fish-config
|
||
|
||
### cheat
|
||
|
||
Synopsis: cheat <topic> [args...]
|
||
Displays a colorized cheatsheet using cheat -c, falls back to tldr,
|
||
then man.
|
||
|
||
cheat tar
|
||
cheat git
|
||
|
||
### cffetch / ffetch
|
||
|
||
Synopsis: cffetch [args...] / ffetch [args...]
|
||
Clears the screen and displays system information via fastfetch with
|
||
the custom config at ~/.fastfetch.jsonc. Falls back to neofetch.
|
||
|
||
### dockup
|
||
|
||
Synopsis: dockup [-h] [directory]
|
||
Pulls latest Docker images, restarts services in the given Docker
|
||
Compose project, and prunes dangling images.
|
||
|
||
dockup ~/myapp
|
||
|
||
### joplin
|
||
|
||
Synopsis: joplin [args...]
|
||
Runs the Joplin CLI with Node.js deprecation warnings suppressed.
|
||
|
||
joplin ls
|
||
|
||
### ld
|
||
|
||
Synopsis: ld
|
||
Launches lazydocker targeting the currently active Docker context,
|
||
detected via docker context inspect.
|
||
|
||
### replay
|
||
|
||
Synopsis: replay <commands>
|
||
Runs Bash commands and replays any resulting changes to environment
|
||
variables, aliases, and the working directory back into the current
|
||
Fish session. Useful for sourcing Bash scripts.
|
||
|
||
replay "source ~/.bashrc"
|
||
replay "export FOO=bar"
|
||
|
||
### kitty-logging
|
||
|
||
Synopsis: kitty-logging [install|uninstall|status|dismiss] [-h]
|
||
|
||
Manages the Kitty scrollback watcher that powers C5 logging. Ships a
|
||
canonical, version-marked watcher and installs it into the Kitty config
|
||
directory, wiring it into kitty.conf through a sentinel-marked managed
|
||
block. Commenting out any conflicting watcher line avoids double-capture.
|
||
|
||
Commands:
|
||
install Copy/refresh the watcher and add the managed block
|
||
uninstall Remove the managed block and the watcher file
|
||
status Show wiring, installed watcher version, and C5 state
|
||
dismiss Stop the per-session setup reminder
|
||
|
||
Runtime capture stays governed by the C5 .logging_disabled sentinel, so
|
||
disabling __fish_config_op_logging makes the watcher inert without
|
||
uninstalling. Install affects new Kitty windows only.
|
||
|
||
Example:
|
||
kitty-logging install
|
||
kitty-logging status
|
||
|
||
### tmux-clean
|
||
|
||
Synopsis: tmux-clean
|
||
Kills all detached (unattached) tmux sessions, leaving attached ones
|
||
running.
|
||
|
||
### wake-lock
|
||
|
||
Synopsis: wake-lock <command> [args...]
|
||
Runs a command under systemd-inhibit, preventing the system from going
|
||
idle or sleeping until the command completes.
|
||
|
||
wake-lock rsync -avz src/ dest/
|
||
|
||
---
|