Personal configuration files managed via ~/.config/ and synced with git.
| Directory | Tool | Key files |
|---|---|---|
ai/ |
Shared (Claude + Codex) | PERSONAL.md, guardrails.md, rules/, memory/, skills/, AGENTS.manifest |
claude/ |
Claude Code | CLAUDE.md, DEVGUARD.md, settings.json, hooks/, agents/, commands/, skills/ (Claude-only) |
codex/ |
Codex CLI | config.toml.template, skills/ (Codex-only), scripts/ |
notifier/ |
Shared AI notifier | macOS Swift app, Linux Go daemon, Go sender, shared icon |
ghostty/ |
Ghostty | config, shaders/ (cursor animation) |
nvim/ |
Neovim | init.lua, lua/plugins/ |
tmux/ |
tmux | tmux.conf, scripts/, status/ |
zsh/ |
Zsh | .zshrc, custom/plugins/ |
homebrew/ |
Homebrew Bundle | Brewfile, bootstrap.sh (cross-platform packages + shell env; OS.mac?/OS.linux? guarded) |
.ideavimrc |
IdeaVim (JetBrains) | Standalone file |
ai/ is the single source of truth for tool-agnostic content (rules, memory, most skills). claude/ and codex/ hold per-tool deploy logic and tool-only files. notifier/ is shared runtime infrastructure for Claude/Codex desktop notifications. The orchestrator at ai/scripts/bootstrap.sh calls each tool's bootstrap. See ai/README.md, claude/README.md, codex/README.md.
Everything else under
~/.config/is gitignored. See.gitignorefor the allowlist.
| Path | Repo |
|---|---|
zsh/custom/plugins/zsh-autosuggestions |
zsh-users/zsh-autosuggestions |
zsh/custom/plugins/zsh-syntax-highlighting |
zsh-users/zsh-syntax-highlighting |
ghostty/shaders |
sahaj-b/ghostty-cursor-shaders |
git clone --recurse-submodules <repo> ~/.config
~/.config/bootstrap.sh # installs packages (brew bundle + ghostty/claude-code + oh-my-zsh), then deploys Claude + Codex config