The daily loop
Four commands cover almost everything you do after the initial setup.
| Command | When you run it |
|---|---|
agentsync apply | After editing your source — push changes to agents. |
agentsync status | ”What’s out of sync?” — a summary across all agents. |
agentsync diff | ”Show me exactly what changed.” Secrets are redacted. |
agentsync reconcile | An agent edited its config — merge or override the drift. |
A typical session
Section titled “A typical session”After an agent (or you) edited a native file out from under agentsync:
agentsync status # spot the driftagentsync diff # inspect it (resolved secrets are masked)agentsync reconcile # interactively resolveInside reconcile
Section titled “Inside reconcile”For each drifting item, agentsync shows the source value, the on-disk value, and a menu:
~/.claude/settings.json#$.permissions.bash[2] (drift) source: "Bash(git push:*)" destination: "Bash(git push:*) Bash(npm publish:*)"
[w]rite-back [o]verride [s]kip [i]gnore [d]iff [q]uit| Key | Action |
|---|---|
w | Adopt the destination edit into your source (W = all). |
o | Re-impose the source, discarding the edit (O = all). |
i | Stop tracking this path (adds it to ~/.agentsync/ignore.toml). |
s / q | Skip / quit. |
d | Show a full diff for this item. |
Scripting it
Section titled “Scripting it”For non-interactive runs (cron, CI, a plugin upgrade --all), drive reconcile with
flags instead of the menu:
| Flag | Behavior |
|---|---|
--auto-writeback | Adopt every destination edit. |
--auto-override | Re-impose source everywhere, discarding edits. |
--auto-safe | Resolve nothing; list every item as left unresolved. |
agentsync reconcile --auto-safe--auto-safe is the conservative choice for automation: nothing that reaches
reconcile is safe to resolve unattended (converged and pending never reach
it — the next apply handles those), so it changes nothing and reports what
needs a human.
What the drift classes mean clean, pending, drift, converged, conflict, new, foreign-collision, orphan… all nine, defined.