My configurations for Mac.
Config files are linked into $HOME by toolbelt dotfiles (alias tt dotfiles)
from the dotfiles.toml manifest in this repo, layered under the manifest in
the private dotfiles-private repo. Which repos are used is set by
dotfiles.repos in ~/.config/toolbelt/config.yaml.
tt dotfiles status: read-only report of what is linked.tt dotfiles link [--dry-run]: link everything; anything displaced is first moved into~/.toolbelt/dotfiles-backups/<timestamp>/.
Shared skills are installed into ~/.agents/skills/ from both dotfiles repos.
~/.claude/skills/ contains compatibility links to those canonical entries.
Both directories remain real directories; each app keeps its own synced/
directory. Edit shared skills through ~/.agents/skills/, and rerun
tt dotfiles link after adding or removing skill folders to refresh the links.
Personal instructions are maintained in home/.codex/AGENTS.md and installed
at ~/.codex/AGENTS.md. Claude's ~/.claude/CLAUDE.md links to that canonical
file, so both agents read the same personal instructions.
bootstrap.sh also installs the toolbelt Claude Code mods (toolbelt-claims,
toolbelt-usage; user scope) and registers the toolbelt-decisions MCP server
(claude mcp add --scope user toolbelt-decisions -- toolbelt decisions mcp) by
running $GIT_PROJECTS_WORKDIR/toolbelt/claude-plugin/install.sh when it exists;
re-run that script to update them.
On the old laptop run toolbelt machine export; on the new one run bootstrap.sh
(sh -c "$(curl -fsSL https://raw.githubusercontent.com/DevonFulcher/dotfiles/main/bootstrap.sh)").
It is safe to re-run, and DRY_RUN=1 sh bootstrap.sh prints the steps without
running them. What each side does, the few steps that stay manual and what is not
carried are in docs/new-laptop.md.