Unix-philosophy dotfiles managed with chezmoi.
Design principles: Fast startup (~37ms), composable tools, minimal config, text over databases.
- macOS (Apple Silicon) — zsh, Homebrew, mise
- Linux (WSL2/Fedora) — bash, systemd, KDE/GNOME
- Windows 11 — PowerShell 7, winget
sh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply KevinTCoughlinsh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply KevinTCoughlinwinget install twpayne.chezmoi
chezmoi init --apply KevinTCoughlin| Component | Tool | Config |
|---|---|---|
| Shell | zsh (no framework) | ~300 lines |
| Prompt | starship (minimal) | ~70 lines |
| Terminal | wezterm | ~240 lines |
| Editor | neovim + lazy.nvim | - |
| Runtimes | mise | see below |
Single tool replaces fnm/pyenv/SDKMAN:
Node, Python, Java (Temurin), Go, Ruby, Rust, Bun, Deno, Zig, SwiftFormat, SwiftLint
mise list # installed versions
mise use node@25 # project-local
mise use --global go # global default
mise upgrade --all # update all- No Oh My Zsh — plain zsh with manual config
- Cached tool inits (
~/.cache/zsh/) with auto-invalidation on binary updates - Single version manager (mise) instead of fnm/pyenv/SDKMAN
- Completions: compinit -C (cached .zcompdump)
| Standard | Replacement |
|---|---|
| ls | eza |
| cat | bat (smart: bat in tty, cat in pipes) |
| grep | ripgrep |
| find | fd |
| cd | zoxide |
| top | btop |
| ps | procs |
| dig | doggo |
| make | just |
| history | atuin |
| Category | Aliases |
|---|---|
| Git | gs ga gc gp gd gl gpl gst gstp lg |
| GitHub CLI | prc prl prv prco prm iss isc csl css |
| Just | j jl je jc ju |
| Claude CLI | ai aic aim air |
| Editors | vim/vi (nvim), em et ek (emacs) |
| OBS/Streaming | stream rec scenes ss |
| Network | ports myip localip flushdns vpn devprocs |
| Apple Dev | xc sim dd ddclean xopen |
| Android Dev | gw gwb gwc adbd adblog emu |
| Godot Dev | godot-run gdf gdl gdfmt |
| Tools | ll lt dev ps dns bench |
ai "question" # prompt
aic # continue session
aim "question" # fast (haiku)
air # resume
review # review git diff
gcai # AI-generated commit message
explain <cmd> # explain command output
aif # fzf file + claude| Key | Action |
|---|---|
Ctrl-R |
fuzzy history search |
Ctrl-T |
fuzzy file finder (with preview) |
Alt-C |
fuzzy cd (with tree preview) |
inbox "thought" # timestamped entry to ~/inbox.txt
inbox # view inbox
inbox-process # AI prioritize + categorize├── dot_zshrc # zsh config (~300 lines, macOS primary)
├── dot_bashrc.tmpl # bash config (Linux + Windows Git Bash, chezmoi template)
├── dot_bashrc.d/ # modular bash drop-ins (sourced alphabetically)
│ ├── 00-unix.sh # core env, umask, history, shopt
│ ├── 50-aliases.sh # portable aliases (all Linux workstations)
│ ├── 50-claude.sh # Claude CLI aliases + functions
│ ├── 50-android.sh # Android SDK / ADB shortcuts
│ ├── 50-godot.sh # Godot game engine shortcuts
│ └── 90-greet.sh # shell greeting on login
├── dot_config/
│ ├── starship.toml # prompt (~70 lines)
│ ├── wezterm/ # terminal (~240 lines)
│ ├── nvim/ # neovim
│ ├── mise/config.toml # runtime versions
│ └── greet/quotes.txt # greeting quotes
├── dot_local/bin/ # scripts
├── Brewfile # homebrew packages
├── CLAUDE.md # AI assistant context
└── CLAUDE-{darwin,linux,windows}.md
chezmoi apply # apply changes
chezmoi diff # preview changes
chezmoi add <file> # track new file
chezmoi edit <file> # edit managed file
chezmoi cd # go to source dir
chezmoi git push # push to GitHubIf you find this useful, consider sponsoring.
MIT