This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Modular and modernized dotfiles for Zsh, Vim, and system-level configurations. Supports Debian/Ubuntu, Arch Linux, Fedora, and macOS. Uses GNU Stow for symlinking, custom shell scripts for automation, and git submodules for third-party plugin management.
./install.sh # Full sync: pull, install/update packages, sync dotfiles
./install.sh -c # Full sync including Claude Code configurations
./install.sh -n # Dry-run mode
./install.sh -v # Verbose output
./scripts/update.sh # Synchronize all submodules and update Oh My Zsh
git submodule update --init --recursive # Update submodulesThe project uses GNU Stow. The home/ directory in the repository mirrors the user's $HOME.
- Files in
home/(e.g.,home/.zshrc) are symlinked to~/.zshrc. - Exceptions: The
glowconfiguration is copied rather than linked to allow for absolute path rewriting.
- Zsh: Oh My Zsh with Powerlevel10k theme. Plugins:
git,golang,tmux, etc. - Vim:
vim-plugfor plugin management. Tokyo Night theme. - Git:
git-deltafor syntax-highlighted diffs. - Claude Code:
home/.claude/contains global config, agents, commands, hooks, and skills.
- Hooks (
home/.claude/hooks/): Shell scripts for Claude Code lifecycle events. - Skills (
home/.claude/skills/): Model-invoked domain expertise. - Commands (
home/.claude/commands/): User-invoked workflows (e.g.,/pr-review). - Statusline (
home/.claude/statusline-command.sh): Single-line custom statusline for Claude Code.
- Moving Files: Use
git mvinstead ofmvto preserve history. - Adding Packages: Identify package name for managers, add to
packages/*.txt, run./install.sh. - Adding Configs: Place in
home/mirroring the~path, run./install.sh.