Project
personal-config
A terminal wizard on npm that writes an agent-driven working standard into your repos: a ledger, a board, code conventions and the rules a coding agent reads before it touches anything. Save your answers as a profile, apply it to many folders at once, and see every file before any is written.
- TypeScript
- Node
- Bun
$ personal-config profile new light light
This run would write:
~/.config/personal-config/profiles
light.json — profile "light" [new]
1 file(s) to write, 0 to remove, 0 already current.
Wrote 1 file(s).
$ personal-config profile list
light light — up to sonnet, 0 folders$ personal-config profile apply light ~/code/api --dry-run
api: remote owner unknown ≠ you — untracked mode.
light → ~/code/api
This run would write:
~/.config/personal-config/profiles
light.json — profile "light" [+3 −1]
~/code/api
CLAUDE.local.md — personal router (untracked) [new]
HANDOFF.md — the ledger — what is true [new]
.personal-config.json — per-repo config [new]
AGENT-PRACTICES.local.md — the working standard, short form [new]
~/code/api/.git/info
exclude — ignore entries [+5 −0]
~/code/api/.claude
settings.local.json — settings.local.json — tier ceiling merged in [new]
7 file(s) to write, 0 to remove, 0 already current.
--dry-run: nothing was written.$ personal-config setup --yes --dry-run
personal-config — setup (non-interactive)
Found 2 repo(s) under ~/code:
repo languages pm existing
api typescript bun —
site go — —
Configuring 2 of 2 found.
This run would write:
~/.claude/rules
commits.md — global rule — commit policy [new]
model-routing.md — global rule — model routing [new]
language-style.md — global rule — chat style [new]
24 file(s) to write, 0 already current.
--dry-run: nothing was written.$ personal-config profile apply light ~/code/api --yes
7 file(s) to write, 0 to remove, 0 already current.
Wrote 7 file(s).
Backed up 2 overwritten file(s) — `personal-config undo` restores them.
$ personal-config undo
The backup taken at 2026-10-20T19-59-08 holds 2 file(s):
~/.config/personal-config/profiles/light.json
~/code/api/.git/info/exclude
No terminal to ask in, so nothing was restored. The list above is what `--yes` would put
back: run `personal-config undo --yes` to restore it.$ personal-config doctor
~/code/api — 3 markdown file(s) checked
doctor: no findings.
$ personal-config -v
0.9.0
$ personal-config update --dry-run
personal-config 0.9.0 is up to date.Profiles
Answer once, apply to many folders.
A profile is a named set of folder answers, started from Light, Medium, Heavy or Writing. Each preset sets the folder model ceiling first: Light allows Sonnet at most, and Haiku is allowed under all three.
The preview
Every file, before any is written.
profile apply plans every folder and the profile record into one preview and asks once for the batch. With --dry-run it writes nothing at all.
No terminal
The same run, with no one at the keyboard.
setup --yes and profile apply --yes ask nothing, for an agent or a script. Setup lists the repos one level under your projects folder, with the languages and package manager it found, and sets up every one.
Undo
Backed up first, undone once.
Anything a run overwrites is copied aside first. personal-config undo lists what it would put back, asks, then restores it. With no terminal to ask in, it restores nothing and says how to.
Checks and updates
It checks its own work and knows when it is behind.
doctor checks what was written against the rules it follows. update asks the npm registry for the latest release and, on a yes, installs it. A profile that lands work through wk also gets a check that its gate list matches wk.