New Mac Setup
swyxio/skills
Fully automated new Mac setup for fullstack web developers and AI engineers.
Reconcile drift between the local machine and the chezmoi dotfiles repo, deciding per file whether the machine edit or the repo source wins.
The automated check flagged lines worth reading first. See the safety section below.
$ npx skills add narze/dotfiles --skill chezmoi-reconcile -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install narze/dotfiles chezmoi-reconcile --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/narze/dotfiles.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/chezmoi-reconcile .claude/skills/chezmoi-reconcile && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "chezmoi-reconcile" agent skill from https://github.com/narze/dotfiles/tree/master/.agents/skills/chezmoi-reconcile into .claude/skills/chezmoi-reconcile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chezmoi-reconcile", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/narze/dotfiles/tree/master/.agents/skills/chezmoi-reconcileType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add narze/dotfiles --skill chezmoi-reconcile -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install narze/dotfiles chezmoi-reconcile --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/narze/dotfiles.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/chezmoi-reconcile .agents/skills/chezmoi-reconcile && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "chezmoi-reconcile" agent skill from https://github.com/narze/dotfiles/tree/master/.agents/skills/chezmoi-reconcile into .agents/skills/chezmoi-reconcile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chezmoi-reconcile", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add narze/dotfiles --skill chezmoi-reconcile -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install narze/dotfiles chezmoi-reconcile --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/narze/dotfiles.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/chezmoi-reconcile .cursor/skills/chezmoi-reconcile && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "chezmoi-reconcile" agent skill from https://github.com/narze/dotfiles/tree/master/.agents/skills/chezmoi-reconcile into .cursor/skills/chezmoi-reconcile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chezmoi-reconcile", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/narze/dotfiles.git --path .agents/skills/chezmoi-reconcile--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add narze/dotfiles --skill chezmoi-reconcile -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install narze/dotfiles chezmoi-reconcile --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/narze/dotfiles.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/chezmoi-reconcile .gemini/skills/chezmoi-reconcile && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "chezmoi-reconcile" agent skill from https://github.com/narze/dotfiles/tree/master/.agents/skills/chezmoi-reconcile into .gemini/skills/chezmoi-reconcile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chezmoi-reconcile", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install narze/dotfiles chezmoi-reconcileInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add narze/dotfiles --skill chezmoi-reconcile -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/narze/dotfiles.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/chezmoi-reconcile .github/skills/chezmoi-reconcile && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "chezmoi-reconcile" agent skill from https://github.com/narze/dotfiles/tree/master/.agents/skills/chezmoi-reconcile into .github/skills/chezmoi-reconcile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chezmoi-reconcile", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add narze/dotfiles --skill chezmoi-reconcile -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install narze/dotfiles chezmoi-reconcile --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/narze/dotfiles.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/chezmoi-reconcile .opencode/skills/chezmoi-reconcile && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "chezmoi-reconcile" agent skill from https://github.com/narze/dotfiles/tree/master/.agents/skills/chezmoi-reconcile into .opencode/skills/chezmoi-reconcile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chezmoi-reconcile", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
chezmoi-reconcileReconcile drift between the local machine and the chezmoi dotfiles repo, deciding per file whether the machine edit or the repo source wins.
Chezmoi Reconcile is an agent skill from narze/dotfiles. Reconcile drift between the local machine and the chezmoi dotfiles repo, deciding per file whether the machine edit or the repo source wins. Use whenever the user asks to run chezmoi diff, resolve chezmoi conflicts, sync or update dotfiles, check why chezmoi apply wants to change things, or fix drift after editing a managed config. Also trigger on /chezmoi-reconcile.
Its SKILL.md is about 1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in DevOps & Cloud. It works with Bash, macOS, Ansible and Homebrew. The repository describes itself as: macOS / Linux / Codespaces compatible dotfiles with 1-line setup script. Tested on Apple Silicon Macs. Supports both zsh and fish. Managed with Chezmoi. The licence is MIT.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit a2104ed. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Chezmoi Reconcile loads about 1k tokens when it runs. Until then it costs about 98 tokens; SKILL.md has 520 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found patterns that need a careful read before installing.
encryption, e.g. `chezmoi add --encrypt ~/.ssh/config`. Verify the source path is unchanged with `chezmoi source-path` aAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from narze/dotfiles at commit a2104ed, republished under its MIT licence (© narze). 520 words, ~1,034 tokens.
.claude/skills/chezmoi-reconcile/SKILL.md (or your agent's skills folder).Dotfiles live in the chezmoi/ source directory (set by .chezmoiroot), not the repo root. The real files under $HOME are the destination; the repo files are the source/target. Drift is normal: apps regenerate their own config, and the user edits managed files by hand.
This skill walks the drift file by file, asks the user which side wins, applies the choice, and verifies a clean result. Never run a blanket chezmoi apply before resolving drift: it silently overwrites local edits, which is exactly what the user is trying to decide about.
Run both commands:
chezmoi status
chezmoi diffRead chezmoi diff carefully. In each hunk, - lines exist only on the machine and + lines exist only in the repo source. So - marks a local edit that apply would delete, and + marks repo content that apply would write.
Read chezmoi status as two status columns. MM means the file differs on both sides (a real conflict to resolve). R marks run scripts, which are handled separately (step 4).
For each conflicting managed file, find its source path:
chezmoi source-path ~/.config/example/config.tomlDo not decide for the user. Present one row per file with the machine-side content and the repo-side content side by side, then ask which wins. Group independent files into a single set of questions so the user can answer them together, but keep each file its own decision.
Each file resolves one of three ways:
| Choice | Command | Effect |
|---|---|---|
| Keep local, update repo | chezmoi add <target> | Machine file becomes the source; commit later |
| Take repo, overwrite local | chezmoi apply --force <target> | Machine file is reverted to the source |
| Skip | none | Leave it diverged for now |
chezmoi apply only touches a destination file when it differs from the source, so it is safe to run specific targets.
chezmoi add ~/.config/example/config.tomlchezmoi apply --force ~/.config/example/config.tomlTwo non-interactive gotchas cause chezmoi: could not open a new TTY: open /dev/tty: device not configured and must be avoided in an agent shell:
chezmoi apply prompts "has changed since chezmoi last wrote it?" for every modified destination. Pass --force to accept the overwrite the user already approved.chezmoi add on an encrypted file prompts "would remove encrypted attribute". Pass --encrypt to preserve encryption, e.g. chezmoi add --encrypt ~/.ssh/config. Verify the source path is unchanged with chezmoi source-path afterwards.New or changed run scripts show as R in chezmoi status and appear in chezmoi diff as new files. run_* scripts run on every apply, so they always show R; that is expected and not drift. Run them with:
chezmoi apply --forceAn "elsewhere" run script runs all other scripts in scripts/<os>/. Confirm it exits 0.
chezmoi diff # should show only run_ scripts, which always appear
chezmoi status # conflicts gone; only run-script R lines remain
git status --short # repo source files that "keep local" updatedThe chezmoi: warning: config file template has changed, run chezmoi init to regenerate config file warning is pre-existing; ignore it unless the user asks about it.
Only "keep local" files change the repo. Commit when the user asks, in small commits, with a plain dash (never an em dash). Report which files went each way, which scripts ran, and the final git status.
© narze, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/chezmoi-reconcile of narze/dotfiles.
Open the folder on GitHubat commit a2104ed
Chezmoi Reconcile next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Chezmoi Reconcile this skillnarze/dotfiles | 174 | — | ~1k | Automated safety check: Warn | MIT | |
| New Mac Setupswyxio/skills | 176 | — | ~4.3k | Automated safety check: Pass | MIT | |
| Mac App Releasesteipete/agent-scripts | 7.3k | — | ~2.3k | Automated safety check: Pass | MIT | |
| Reproduce macOS Python FlavorsNuitka/Nuitka | 15k | — | ~1.7k | Automated safety check: Pass | AGPL-3.0 | |
| Ansible Playbook Updatervinta/hal-9000 | 138 | — | ~1.4k | Automated safety check: Pass | MIT | |
| CodexBar macOS Releasesteipete/CodexBar | 22k | — | ~1.5k | Automated safety check: Pass | MIT |
swyxio/skills
Fully automated new Mac setup for fullstack web developers and AI engineers.
steipete/agent-scripts
Release workflow for Sparkle-updated macOS apps, driven by a repo-owned manifest and a shared script covering appcast, signing, GitHub Release and Homebrew closeout.
Nuitka/Nuitka
Reproduce macOS Nuitka issues across Python distributions and GitHub Actions Python packaging.
vinta/hal-9000
Keeps Ansible install tasks in line with upstream docs by fixing version, install-method and link drift one tool at a time, with a commit for each.
steipete/CodexBar
Releases a signed, notarized CodexBar build: confirms the changelog, resolves signing credentials from 1Password, runs the release script in tmux, and updates the Sparkle appcast and Homebrew tap.
tw93/Mole
Runbook for assessing and executing a Mole CLI release: distribution channels, pre-flight checks, capital-V tags, build artifacts and the handoff to curated release notes.
narze/dotfiles
Update this machine's Collie installation and verify the running bridge.
Categories
Reconcile drift between the local machine and the chezmoi dotfiles repo, deciding per file whether the machine edit or the repo source wins. Chezmoi Reconcile is an agent skill from narze/dotfiles. Reconcile drift between the local machine and the chezmoi dotfiles repo, deciding per file whether the machine edit or the repo source wins.
Chezmoi Reconcile fits situations like: the user asks to run chezmoi diff; resolve chezmoi conflicts; update dotfiles; check why chezmoi apply wants to change things.
Run `npx skills add narze/dotfiles --skill chezmoi-reconcile -a claude-code`. Or copy the skill folder (.agents/skills/chezmoi-reconcile in narze/dotfiles) into .claude/skills/chezmoi-reconcile in your project. Claude Code loads it when a task matches its description.
Run `npx skills add narze/dotfiles --skill chezmoi-reconcile -a codex`. Or copy the skill folder (.agents/skills/chezmoi-reconcile in narze/dotfiles) into .agents/skills/chezmoi-reconcile in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add narze/dotfiles --skill chezmoi-reconcile -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/chezmoi-reconcile, .gemini/skills/chezmoi-reconcile, .github/skills/chezmoi-reconcile and .opencode/skills/chezmoi-reconcile in your project.
Going by SKILL.md and its folder, Chezmoi Reconcile needs the command-line tools its instructions call (git).
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md flagged 1 warning(s): mentions a credentials file (ssh keys, cloud or package-manager tokens). Read the flagged lines before installing; the check is not a guarantee either way.
Chezmoi Reconcile is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1k tokens (SKILL.md is roughly 4.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Chezmoi Reconcile: New Mac Setup (swyxio/skills, 176 stars), Mac App Release (steipete/agent-scripts, 7.3k stars), Reproduce macOS Python Flavors (Nuitka/Nuitka, 15k stars) and Ansible Playbook Updater (vinta/hal-9000, 138 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
narze (a GitHub user) maintains it in narze/dotfiles, which has 174 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 7, 2026.
Source: narze/dotfiles on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.