Reference Map
This page answers two questions:
- where do I change X?
- what file actually drives it?
Paths are relative to the repo root. Hooks live under home/.chezmoiscripts/ and run in numeric order; helper scripts live under scripts/.
Chezmoiโ
| Component | Source path |
|---|---|
| Prompts / data | home/.chezmoi.toml.tmpl |
| Shared data | home/.chezmoidata/ |
| Externals | home/.chezmoiexternal.toml |
| Ignore rules | home/.chezmoiignore |
| Hooks | home/.chezmoiscripts/ |
Provisioning hooks (first run)โ
| Hook | Source path |
|---|---|
| Xcode CLT | run_once_before_00-install-xcode.sh |
| Homebrew install | run_once_after_01-install-brew.sh |
| Fish install + login shell | run_once_after_02-install-fish.sh |
| Pass managers setup | run_once_after_05-setup-pass-managers.fish.tmpl |
Packagesโ
Each registry has a declarative list plus the hook that converges it. See Packages.
Shellโ
| Component | Source path |
|---|---|
| Fish main config | home/dot_config/fish/readonly_config.fish.tmpl |
| Machine-local extras | unmanaged: ~/.profile.local, ~/.bashrc.local, ~/.zshrc.local, ~/.config/fish/config.local.fish |
| POSIX shellrc (alias) | home/readonly_dot_shellrc |
| Zsh completions | home/dot_zsh/ |
| Starship prompt | home/dot_config/readonly_starship.toml |
| Shared ignores (fd/fzf) | home/dot_config/readonly_ignore-globs |
Gitโ
| Component | Source path |
|---|---|
| Git main config template | home/private_readonly_dot_gitconfig.tmpl |
| Allowed signers (SSH signing) | home/private_dot_ssh/private_executable_allowed_signers.tmpl |
| gh picker config | home/dot_config/exact_tmux/exact_scripts/pickers/github/readonly_gh-picker.yml |
Identity and keysโ
| Component | Source path |
|---|---|
| SSH config (1Password agent socket) | home/private_dot_ssh/private_executable_config |
| 1Password SSH agent config | home/dot_config/exact_private_1Password/exact_ssh/readonly_agent.toml.tmpl |
| Primary public key selector | home/private_dot_ssh/readonly_primary_public_key.pub.tmpl |
Editorโ
| Component | Source path |
|---|---|
| Neovim | home/dot_config/exact_nvim/ |
Terminal + Multiplexingโ
macOS Automationโ
| Component | Source path |
|---|---|
| Defaults scripts | home/.osx.core, home/.osx.extra |
| Defaults hooks | run_onchange_after_05-osx.core.sh.tmpl, ...05-osx.extra... |
| Hammerspoon | home/dot_hammerspoon/ |
| Karabiner | home/dot_config/exact_private_karabiner/ |
| App icons mapping | home/app_icons/readonly_icon_mapping.yaml |
| App icons hook | run_onchange_after_05-apply-app-icons.sh.tmpl |
| Crontab | run_onchange_after_05-install-crontab.sh.tmpl |
AIโ
Scripts (scripts/)โ
Helper scripts called by hooks and commands (stdlib-only by convention).
| Script | Purpose |
|---|---|
chezmoi_lib.sh | Shared shell library for merge/apply hooks (source selection, atomic writes, checksums, artifact ledger) |
check.py | Affected-first make check planner/runner (bin/check; make check-full is human-only) |
verify_templates.py | Render every chezmoi *.tmpl via execute-template to catch errors early |
verify_bin_surface.py | Check comma-command completions, docs tokens, and library ownership |
verify_docs_navigation.py | Check docs links, anchors, and Scripts-table entries |
verify_agent_file_sizes.py | Check agent skill reference markdown stays under the 20 KB harness view limit (SKILL.md exempt) |
yaml_parser.py | Minimal dependency-free YAML parser for project data files |
jsonc_dump.py | JSONC serializer matching OpenCode's trailing-comma config style |
mcp_registry.py | Read/normalize the canonical MCP registry |
generate_mcp_configs.py | Generate tool-specific MCP configs from mcp_servers.yaml |
inject_mcp_into_codex_toml.py | Inject MCP servers into Codex TOML at a marker line |
inject_mcp_into_opencode_jsonc.py | Inject MCP servers into an OpenCode JSONC placeholder |
merge_claude_mcp.py | Surgically update only mcpServers in ~/.claude.json |
merge_claude_global_config.py | Set the declared top-level keys (claude_global_config.json) in ~/.claude.json, keeping runtime state |
managed_config_manifest.py | Declared-key manifests shared by the config merge hooks |
generated_artifact_ledger.py | Record/evaluate generated artifacts for semantic drift (backs ,doctor ai) |
ai_kb.py | Local markdown + SQLite FTS5/vector knowledge base for agent runs |
embed.py | Stdlib embedding-service abstraction: one-shot embed_runner.py runs plus connect-only resident dispatch via embed_client.py |
embed_runner.py | Isolated PEP 723 fastembed runner (BAAI/bge-small-en-v1.5, 384-d) |
embed_client.py | Deadline-bounded unix-socket client for the resident embed worker (ensure/ping/embed) |
embed_worker.py | PEP 723 resident fastembed worker serving embeddings over a private unix socket |
vec_runner.py | Isolated PEP 723 sqlite-vec KNN/pairs runner for the KB |
sync_llama_cpp_models.py | Download missing GGUF files declared in the llama.cpp manifest |
reconcile_golang_pkgs.py | Reconcile Go binaries against the manifest (hook 05-update-golang-pkgs) |
yt_search.py | YouTube search backend (powers ,youtube-search) |
tests/ | Python test suite |
Maintenance / cleanup hooksโ
Idempotent housekeeping that removes orphaned generated state on apply.
| Hook | Purpose |
|---|---|
run_onchange_after_08-cleanup-orphaned-tmux-pick_session.sh.tmpl | Remove stale tmux pick_session artifacts |
Formattingโ
| Component | Source path |
|---|---|
| Format script | bin/fmt |
| EditorConfig | .editorconfig |
| Prettier config | .prettierrc |
| Prettier ignore | .prettierignore |
| StyLua config | .stylua.toml |
| Ruff config | ruff.toml |
Custom Commandsโ
| Component | Source path |
|---|---|
| Commands source | home/exact_bin/ |
| Command internals | home/exact_lib/ |