A curated collection of tools and configs that power my daily workflow.
- A simple, fast, and powerful Git UI for the terminal.
- My interactive shell for a smooth terminal experience, with fzf wired in for fuzzy finding and bat-powered previews. See fish config for plugins, shortcuts, and custom functions.
- Machine-local secrets live in
~/.config/fish/secrets.fish, sourced by~/.config/fish/conf.d/local-secrets.fish. Keep token values out of dotfiles.
- My terminal of choice — modern, GPU-accelerated, and lightning fast.
- Run
ghostty-helpfor a searchable fzf picker of all Ghostty actions and their keybindings. ⌘+clickany file path or URL in the terminal to open it — files open in Neovide, URLs open in the default browser. Inside tmux, use⌘+shift+clicksince tmux captures mouse events.
- Terminal multiplexer with dual Catppuccin themes, custom status bar, and Neovim-friendly keybindings. See tmux config.
- Remote phone access: drive Claude/Codex from the phone over the Moshi app (mosh + Tailscale). A responsive status bar and auto-managed grouped
phone-*sessions keep the phone from reshaping the laptop view. See the Moshi section.
- My main editor — lightweight yet powerful. See nvim-v12 for my custom 0.12 config built on the native
vim.packplugin manager.
- A modern, terminal file manager.
- Runtime version manager for Node, Bun, Python, uv, Go, Rust, and Lua — per-project version pinning via
.mise.toml.
- AI coding assistant with a custom statusline and vim mode. See claude config for the full setup.
- Terminal markdown renderer — pipe or point at any
.mdfile for formatted output with layout and syntax highlighting. - Quick Look integration via
qlmarkdowncask — spacebar in Finder renders markdown in place.
- A fast, extensible fuzzy finder TUI for files, commands, git objects, and custom sources.
- For showing off system info in style — with random ASCII art and a pacman color row.
Each config keeps its own reference, so there's a single source of truth per tool:
| Area | Reference |
|---|---|
| Fish shortcuts, functions & aliases | fish/README.md |
| Tmux keybindings & status bar | tmux/README.md |
| Neovim keymaps & features | nvim-v12/README.md |
| Claude Code statusline & tooling | claude/README.md |
| AI machine setup & integrations (Claude + Codex) | AI-SETUP.md |
Any executable named git-<name> on $PATH becomes a git subcommand automatically — git resolves git release by searching its exec-path and $PATH for git-release and running it. No config or registration; it just has to be named git-<name> and be executable. A git alias of the same name would shadow it, so don't define one.
| Command | Location | What it does |
|---|---|---|
git release |
.local/bin/git-release |
Cut a release for the current repo: bump VERSION, promote the CHANGELOG.md [Unreleased] section, run the repo's tests, commit, and tag vX.Y.Z. |
git release --current # print the current version
git release minor # 0.5.0 -> 0.6.0 (also: major, patch, or an explicit X.Y.Z)
git release minor --dry-run # preview, change nothing
git release minor --push # tag and push (otherwise push manually with --follow-tags)Used across the tmux plugin repos (tmux-fzf-jump, tmux-attention, tmux-which-key), each paired with a tag-triggered GitHub release workflow. Repo-agnostic: it derives the URL from origin and auto-detects the test runner (tests/check.sh, else make test, else GIT_RELEASE_TEST_CMD).
Note to future self.....
- Run the following command — it handles everything (Xcode tools, Homebrew, dotfiles, packages, fish, mise runtimes, and macOS defaults)
curl https://raw.githubusercontent.com/cengebretson/dotfiles/master/.config/setup.sh | bash- Open Neovim — plugins, LSP servers, and tools all install automatically on first launch
The setup script installs configs but not per-machine identity or secrets (git identity, fish secrets, Claude login). The canonical list lives in claude/CLAUDE.md under Machine-Local Files, and the step-by-step creation is in the AI-SETUP.md bootstrap.
Many of the ideas for the tmux/nvim setup were inspired by discussions in the following repositories…