Personal dotfiles for an AI-powered dev environment. macOS (Intel + Apple Silicon) and Linux.
Fresh machine, one command:
curl -fsSL https://raw.githubusercontent.com/Lutherwaves/dotfiles/main/install.sh | bashOr clone first:
git clone https://github.com/Lutherwaves/dotfiles.git ~/.dotfiles
~/.dotfiles/install.shThe setup script is idempotent — safe to re-run anytime.
The setup script will:
- Install system dependencies via Homebrew (or apt on Linux)
- Symlink all configs to your home directory
- Install zsh plugins, TPM, zsh-z, nvm
- Optionally install Claude Code
- Create
~/.zshrc.localfor your machine-specific config (API keys, etc.)
Uses charmbracelet/gum for pretty output when available (installed automatically).
| Config | Location in repo | Symlinked to |
|---|---|---|
| Zsh shell config | .zshrc |
~/.zshrc |
| Git config | .gitconfig |
~/.gitconfig |
| Kitty terminal | .config/kitty/ |
~/.config/kitty |
| Tmux | .config/tmux/ |
~/.config/tmux |
| Neovim (LazyVim) | .config/nvim/nvim/ |
~/.config/nvim |
| Claude rules | .claude/*.md |
~/.claude/*.md |
| Cursor rules | .cursor/*.mdc |
~/.cursor/*.mdc |
tmux, neovim, node, git, fd, lazygit, ripgrep, pyenv, pyenv-virtualenv, nvm, gum, zsh-autosuggestions, zsh-syntax-highlighting, powerlevel10k
source ~/.zshrcEdit ~/.zshrc.local with your API keys and machine-specific paths:
export ANTHROPIC_API_KEY="..."
export PERPLEXITY_API_KEY="..."Open nvim — LazyVim plugins and LSPs install automatically on first launch.
In tmux, press Ctrl+Space then I to install TPM plugins.
The setup optionally installs Ollama for local inference. Since Ollama v0.14+, it natively supports the Anthropic Messages API — no proxy needed.
# Use Claude Code with a local model
claudeo # uses qwen2.5:32b by default
claudeo deepseek-r1:32b # specify a different model
co # alias for claudeoSet default model in ~/.zshrc.local:
export OLLAMA_MODEL="deepseek-r1:32b"Three ways to run Claude Code:
claude— direct Anthropic APIclauder— via Claude Code Router (OpenRouter, Perplexity, etc.)claudeo— via local Ollama
| Alias | What it does |
|---|---|
dev / dev-ai |
Start a tmux session with an AI agent |
tmux-dev |
Start a tmux dev session (no AI) |
claude |
Run Claude Code (direct API) |
clauder |
Run Claude Code through CCR router |
claudeo / co |
Run Claude Code with local Ollama |
ac |
Shortcut for ai-agent claude |
ta / tn / tl / tk |
tmux attach / new / list / kill |
vim |
Opens neovim |
cd ~/.dotfiles && git pullSince configs are symlinked, pulling is enough — no need to re-run setup unless new dependencies were added.
.
├── install.sh # Entry point (curl-friendly, clones + runs setup)
├── scripts/
│ ├── setup.sh # Main setup (deps, symlinks, plugins)
│ └── backup.sh # Backup existing configs
├── .zshrc # Shell config (portable, uses $HOMEBREW_PREFIX)
├── .zshrc.local.example # Template for machine-specific overrides
├── .gitconfig # Git config
├── .config/
│ ├── kitty/ # Kitty terminal config
│ ├── tmux/ # Tmux config + layouts
│ └── nvim/nvim/ # Neovim LazyVim config
├── .claude/ # Claude AI rules and config
├── .cursor/ # Cursor IDE rules and MCP config
└── .claude-code-router/ # Claude Code Router config
MIT — see LICENSE.md.