Personal dotfiles managed with chezmoi.
Secrets are encrypted with age — this repo is safe to be public.
| Tool | Config |
|---|---|
| zsh | .zshrc |
| git | .gitconfig |
| tmux | .tmux.conf |
| WezTerm | .config/wezterm/ |
| Neovim (LazyVim) | .config/nvim/ |
| Starship | .config/starship.toml |
| lazygit | .config/lazygit/ |
| opencode | .config/opencode/ |
| skhd | .config/skhd/ |
| GPG agent | .gnupg/gpg-agent.conf |
| SSH keys | .ssh/ (private key encrypted) |
| Homebrew | .Brewfile |
| Claude Code | .claude-alk/, .claude-assilva/ |
| Codex CLI | .codex/ |
| OpenCode | .config/opencode/ |
| Shared AI config | .config/ai/ |
| Agent skills | .agents/ |
Claude Code uses separate configuration directories for the ALK and Assilva accounts:
claude-alk
claude-assilvaAfter applying the dotfiles, start a new shell or run source ~/.zshrc. On macOS,
OAuth credentials are stored in Keychain and namespaced by configuration directory,
so run claude-alk auth login and claude-assilva auth login once on a new machine
or after migrating from the default ~/.claude directory.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
eval "$(/opt/homebrew/bin/brew shellenv)"brew install chezmoi
chezmoi init git@github.com:tinque/dotfiles.gitCopy key.txt from your Bitwarden vault to:
~/.config/chezmoi/key.txt
chmod 600 ~/.config/chezmoi/key.txt
chezmoi applyThis will deploy all configs and automatically import GPG keys on first run.
brew bundle --global- Open WezTerm — tmux starts automatically
- Open Neovim — Lazy will install all plugins on first launch
- Grant Accessibility permission to
skhdin System Settings > Privacy & Security - Install tmux plugins:
prefix + I(capital i) inside tmux
chezmoi status
chezmoi diff
chezmoi add ~/.claude-alk/{CLAUDE.md,RTK.md,settings.json} \
~/.claude-assilva/{CLAUDE.md,RTK.md,settings.json} \
~/.codex ~/.config/opencode ~/.agents ~/.BrewfileReview the diff before committing. Do not commit generated runtime files, temporary plans, specs, or secrets that were not intentionally managed.
brew update
brew bundle install --global --upgrade
brew bundle check --global --verbose
brew outdated
brew doctorIf brew doctor reports an obsolete or disabled cask, remove or replace it instead of keeping it in .Brewfile.