Skip to content

Fish Shell Configuration

A production-grade Fish shell configuration targeting Fish 4.x. It provides:

  • Drop-in replacements for common Unix tools (ls, cat, rm, du, ping, less)
  • Deep Kitty and WezTerm terminal integration: tab/window/pane management from the command line
  • Automatic session logging: terminal scrollback, tmux/zellij panes, and paru/yay output captured to ~/.terminal_history (on by default; see below)
  • Automatic Python virtualenv activation on directory change
  • Cross-platform package management via pkg and fish-deps
  • AI session helpers for Claude Code and Antigravity
  • Catppuccin Mocha color theme throughout
Install nowFunction reference

The configuration uses a structured file tree:

  • Directory~/.config/fish/
    • config.fish Main entry point; sets env vars and PATH
    • Directoryconf.d/
      • abbr.fish All abbreviations
      • autopair.fish Auto-pair brackets and quotes
      • cheat.fish cheat.sh tab completions
      • done.fish Desktop notifications for long commands
      • first_run.fish One-time init: Fisher bootstrap, theme
      • key_bindings.fish Custom key bindings and Vi mode
      • logging-events.fish C5 event handlers; syncs logging state
      • kitty-watcher-reminder.fish C5 per-session Kitty watcher reminder
      • paru-wrapper.fish Auto-generates paru logging wrapper
      • puffer.fish !! / !$ / ./ expansion
      • tmux-logging.fish C5 starts tmux pipe-pane capture
      • zellij-logging.fish C5 fish_exit handler for zellij
      • sponge_privacy.fish Sponge privacy patterns
      • starship.fish fish_prompt shell-integration markers
      • tailscale.fish Tailscale CLI tab completions
      • theme.fish Catppuccin syntax highlight colors
      • tricks.fish PATH, bang-bang helpers, bat man pages
      • wakatime.fish WakaTime shell hook
      • yay-wrapper.fish Auto-generates yay logging wrapper
      • zoxide.fish Zoxide z/zi integration; overrides cd
    • Directoryfunctions/ Custom functions, one per file
    • Directorycompletions/ Tab completion scripts
    • Directoryintegrations/
      • fzf.fish FZF Catppuccin theme and key bindings
    • Directoryscripts/
      • clean_progress_log.py Strips typescript animations for clean logs
      • Directoryagents-tools/ AGENTS.md scripts and git hooks
    • Directorydocs/ Offline documentation and man page
      • fish-config.md Primary source manual
      • fish-config.1 Compiled man page (auto-generated)
      • fish-config.index Section index for help config
      • Directoryhtml/ Chunked HTML docs (auto-generated)
      • Directorywiki/ Markdown wiki (auto-generated)