Files
fish-config/docs/manual/index.md
T

79 lines
3.9 KiB
Markdown

---
title: Fish Shell Configuration
description: Reference manual for the rootiest fish configuration.
manTitle: DESCRIPTION
sidebar:
order: 3
helpKeywords:
- description
- autopair
- puffer
- puffer-fish
- logging-events
---
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
> **CAUTION - SESSION LOGGING IS ON BY DEFAULT**
>
> This configuration silently records terminal output to `~/.terminal_history`:
> Kitty scrollback on window close, live tmux pane streams, zellij pane
> snapshots on exit, and full paru/yay output. These logs can contain command
> output, file contents, and secrets printed to the terminal. Nothing leaves
> your machine, but the files persist locally.
>
> - Disable all logging with: `set -U __fish_config_op_logging off`
> - Prefer a menu? Run the interactive picker: `config-settings`
> - See Section 7 (C5 - Logging and Capture) for the full breakdown.
The configuration is split across:
~/.config/fish/
├── config.fish Main entry point; sets env vars and PATH
├── conf.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
├── functions/ Custom functions, one per file
├── completions/ Tab completion scripts
├── integrations/
│ └── fzf.fish FZF Catppuccin theme and key bindings
├── scripts/
│ ├── clean_progress_log.py Strips typescript animations for clean logs
│ └── agents-tools/ AGENTS.md scripts and git hooks
└── docs/ 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
├── html/ Chunked HTML docs (auto-generated)
└── wiki/ Markdown wiki (auto-generated)
---