This repository uses .gitconfig.local to keep personal information (name, email) out of version control.
To set up the symlink:
ln -sf /path/to/dotfiles/.gitconfig ~/.gitconfigAfter cloning, create ~/.gitconfig.local based on the example:
cp .gitconfig.local.example ~/.gitconfig.local
# Then edit ~/.gitconfig.local with your actual name and emailOr create ~/.gitconfig.local manually:
[user]
name = Your Name
email = your.email@example.comVerify the configuration:
git config --list | grep userPortable zsh settings (aliases, functions, keybindings) are managed in my.zsh. To set up the symlink:
ln -s /path/to/dotfiles/my.zsh ~/.my.zshThen add the following line to the end of ~/.zshrc:
# Load portable zsh settings from dotfiles
source ~/.my.zshIncluded settings:
- Aliases:
g,gst,gd,gb,gf(git),ls,ll(eza),grep(rg),lzd(lazydocker),claude(safety wrapper) - Functions:
peco_select_history,peco-src,lg - Keybindings:
Ctrl+r(history search),Ctrl+](ghq selector),Ctrl+g(lazygit)
Ghostty's configuration is managed in this repository. To set up the symlink:
# Backup existing config (if not already done)
mv ~/Library/Application\ Support/com.mitchellh.ghostty/config \
~/Library/Application\ Support/com.mitchellh.ghostty/config.backup
# Create symlink
ln -s /path/to/dotfiles/ghostty/config \
~/Library/Application\ Support/com.mitchellh.ghostty/configAfter creating the symlink, restart Ghostty to apply the configuration.
Zed's settings are managed in zed/. To set up the symlink:
# Create config directory if it doesn't exist
mkdir -p ~/.config/zed
# Create symlink
ln -sf /path/to/dotfiles/zed/settings.json ~/.config/zed/settings.jsonAfter creating the symlink, restart Zed to apply the configuration.
Claude Code's global configuration files are managed in claude/. The following files/directories are included:
CLAUDE.md- Global instructions shared across machinesCLAUDE.local.md.example- Template for machine-specific instructionssettings.json- Main settings (language, permissions, hooks, plugins)statusline-command.sh- Custom status line scriptagents/- Custom subagent definitionsskills/- Skill definitions (commit, pr, weekly-report)docs/- Reference documentation for skills
To set up the symlinks:
# Create symlinks for files
ln -sf /path/to/dotfiles/claude/CLAUDE.md ~/.claude/CLAUDE.md
ln -sf /path/to/dotfiles/claude/settings.json ~/.claude/settings.json
ln -sf /path/to/dotfiles/claude/statusline-command.sh ~/.claude/statusline-command.sh
# Create per-item symlinks for skills/agents
/path/to/dotfiles/claude/sync-links.shCLAUDE.md imports ~/.claude/CLAUDE.local.md (via the @path syntax) for
machine-specific instructions that should stay out of version control, such as
constraints tied to one machine's environment. Create it from the example even
if you have nothing to put in it yet, so the import target always exists:
cp /path/to/dotfiles/claude/CLAUDE.local.md.example ~/.claude/CLAUDE.local.md
# Then edit ~/.claude/CLAUDE.local.md with machine-specific rules (or leave it empty)sync-links.sh symlinks each skill/agent individually instead of linking
~/.claude/skills/~/.claude/agents as whole directories. This keeps them as
real directories on disk, so tools like pnpm dlx skills add can add their
own entries there without writing into this repo. Re-run the script after
adding a new skill or agent here.
After creating the symlinks, restart Claude Code to apply the configuration.