Skip to content
kelleyco2Public

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

1 watching

Forks

Repository files navigation

🔮 dotfiles

Terminal-first, agent-first macOS dotfiles.

Neovim · tmux · Zsh · kitty · git · Claude Code — managed with GNU Stow.

macOS Neovim tmux Zsh Claude Code GNU Stow


I live in the terminal and work almost entirely through Claude Code across many repos. This setup is tuned for that: fast pane/session switching, a session hub that shows what each agent is doing, parallel git worktrees, and a Claude Code config that travels between machines.

✨ Highlights

  • 🔮 Session hub (prefix + s) — one fzf popup over running tmux sessions and launchable projects, sorted so whatever needs you is on top. Ctrl-X kills one.

    🔮 ▮
    ● ozone      needs you  4m  ┌ preview: git status ─────────
    ● alchemy    done       2h  │   main ↑2   7 changed
    ● dotfiles   working        │  M src/app/page.tsx
    ○ alaska2                   │  ?? BLOG_STYLE.md
    ○ peptide                   │  ── recent ──
    ○ ...                       │  a1b2c3  3d  Fix nav overflow
      ● needs you  ● done  ● working  ○ launch  ^X kill
    
  • 🔔 Cross-project agent alerts: a Claude Code lifecycle hook marks each session blocked, done, or working, and reports it without ever leaving tmux. A dot sits next to the window name, status-right lists every other session waiting on you, and a toast flashes across the status bar when one you aren't looking at needs you.

     ∞ stax    ● claude   nvim   shell          ● ozone ● alchemy   2026-08-05  1:47
    
  • 🌲 Parallel worktrees (wt add <branch>) — sibling git worktree with your gitignored .env* copied in, a free dev PORT assigned, and a Claude/nvim/shell session opened.

  • 🤖 Portable Claude Code config — settings, stack-aware CLAUDE.md, skills, agents, a powerline statusline, a post-edit formatter hook, and the notifier, all synced via Stow.

  • ⚡ Tuned editing — Neovim on the vim.lsp.config API (vtsls, elixir-ls, tailwind, biome), format-on-save, diffview + octo for in-terminal review; tmux vi copy-mode → system clipboard.

📦 What's inside

Package Sets up
nvim/ Neovim — lazy.nvim, LSP (vtsls · elixir-ls · tailwindcss · biome), telescope, gitsigns, diffview, octo, treesitter, format-on-save
tmux/ tmux — C-a prefix, the session hub, smug templates, wt worktrees, vi copy-mode, vim-tmux-navigator
zsh/ Zsh — oh-my-zsh, mise, zoxide, fzf keys, autosuggestions + syntax highlighting, bat/fd/eza
kitty/ kitty terminal — JetBrains Mono + Nerd Font
git/ git — GPG signing, delta pager, lazygit, handy aliases
claude/ Claude Code — portable config, statusline, format hook, claude-bootstrap
brain/ Second brain wiring — brain CLI launcher, brain-hook lifecycle glue, brain-bootstrap (the vault itself is a private repo)
dots/ One-shot installer

🚀 Install

# 1. Homebrew (if needed)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# 2. Clone + install (brew bundle, then `stow --no-folding */`)
git clone https://github.com/kelleyco2/dotfiles.git ~/dotfiles
~/dotfiles/dots/.local/bin/dots

Then, once per machine:

claude-bootstrap                # register Claude plugins/marketplaces + user-scope MCP servers
brain-bootstrap                 # clone the private second-brain vault to ~/brain
~/dotfiles/git/setup-gpg.sh     # generate a signing key + wire up git signing
# in a tmux session, press `C-a I` to install tmux plugins

⌨️ Cheatsheet

tmux (prefix C-a)

Key Action
prefix s Session hub (switch ● / launch ○ / Ctrl-X kill)
prefix | · prefix - Split vertical · horizontal
C-h/j/k/l Move between panes (vim-tmux-navigator)
prefix ! Kill session
prefix r Reload tmux.conf
v · y (copy-mode) Select · yank to clipboard

Neovim (leader Space, ;↔: swapped)

Key Action
<CR> · K Go to definition · hover
<leader>gd Diffview (working tree)
<leader>gr · <leader>gi Octo: GitHub PRs · issues
<leader>e File picker (nnn)

Shell

Command Does
wt add|rm|ls <branch> Parallel git worktrees
icat <img> Render an image inline (kitty)
lazygit · lazysql Git / database TUIs

🛠 How it works

Each top-level directory is a Stow package whose contents mirror $HOME; stow --no-folding */ symlinks them in per-file, so files Claude or a tool regenerates stay out of the repo. See CLAUDE.md for the full architecture and conventions.

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages