Commands¶
agentconf exposes 15 commands. Run any with --help for full options.
Setup¶
init¶
Clone a repo and register a profile on this machine.
--git <url>— git remote URL (required)--profile <name>— profile name (required; created if missing in repo)--activate— set as active profile on this machine--path <dir>— checkout location (default~/Dropbox/agentconf-store)
install-skill¶
Install the /profile slash command and wire SessionStart/Stop hooks for
auto-sync.
--no-hook— install only the skill, skip hook installation
Daily sync¶
sync¶
Pull, merge, commit, and push the active profile. Usually invoked automatically by the hooks.
--profile <name>— sync a non-active profile (repo-only fetch + pull, no home writes)--dry-run— print plan; no writes--pull/--push— internal hook entry points
status¶
Show what sync would do; no writes.
diff <path>¶
Unified diff between ~/.claude/<path> and profiles/<active>/<path> for a
single file.
tui¶
Interactive full-screen viewer for all profile data: profile list on the
left (active profile marked ●), the full describe report on the right.
Keys: ↑/↓ (or j/k) navigate, tab switch pane focus, PgUp/PgDn and
g/G scroll the report, r refresh, q quit. Without a TTY (piped
output, CI) it prints every profile's report sequentially.
describe [name]¶
Inventory everything in a profile.
agentconf describe # active profile
agentconf describe work # named profile
agentconf describe --brief # counts only
agentconf describe --json # machine-readable
Reports:
- Profile metadata — name, active/registered, host, repo, branch, last commit, last sync
- Sync rules — include/exclude/denylist counts, tracked-file totals + top-dir breakdown
- Settings (
settings.json+settings.local.json) — model, permissions, env, statusLine, outputStyle - Hooks — grouped by event with matcher + handler type
- MCP servers — name, transport, source file
- Slash commands (with descriptions)
- Skills (with descriptions)
- Subagents (with descriptions)
- Plugins
- Output styles
- Tracked + excluded
~/.claude.jsonkeys (excluded shown with size) - Backups — count + newest + oldest
Profile management¶
use <name>¶
Switch the active profile. Always backs up ~/.claude/ first.
list¶
List all profiles — registered on this machine + repo-only.
adopt <name>¶
Snapshot the current ~/.claude/ into a new (or existing) profile in the
repo.
--overwrite— replace an existing profile--switch— activate the new profile after adopt--no-push— commit but don't push
merge <source> --into <dest>¶
Merge one profile into another using a chosen strategy.
Strategies:
prefer-dest(default) — keep dest on conflictprefer-source— overwrite dest with source on conflictnewer— newer mtime winsmark-conflicts— copy both to.conflicts/for manual resolution
Other options:
--dry-run— print plan, no writes--no-apply— skip post-merge sync into~/.claude/when dest is active--no-push— commit but don't push
Backups¶
backups¶
List backup snapshots.
restore <profile> [ts]¶
Restore a backup snapshot. If ts is omitted, restores the newest.
prune¶
Delete old backups, keeping the N most recent per profile (default 10).
Config¶
config <op> [key] [value]¶
Per-machine config in ~/.agentconf/config.json. Not committed to the
repo. get prints the resolved value through all layers
(defaults < repo YAML < profile YAML < machine overrides); machine keys
(git, path, active, profiles, host) live top-level, anything else
in dot notation becomes a per-machine override of the YAML config.
agentconf config get # machine + full resolved config
agentconf config get git.push # → true (default)
agentconf config get git.push --explain # → true (default)
agentconf config set git.push false # per-machine override
agentconf config set autosync.push_debounce_seconds 30
agentconf config unset autosync.push_debounce_seconds
Internal¶
autosync¶
Deprecated stub. The SessionStart/Stop hooks now invoke sync --pull and
sync --push directly.