Sync the private dev-home repo with GitHub, list the skills it sets up, or see and change dev-home-toolkit's settings on this PC, such as how often syncs check GitHub, whether updates install themselves, or whether dev-home is in use on more than one PC. Use when the user runs /dev-home or $dev-home, asks to sync dev-home (their handoffs and knowledge base) with GitHub, asks which skills dev-home gives them, or asks about or wants to change a dev-home-toolkit setting.
Installs into .claude/skills of the current project.
Are you the author of Dev Home?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/sekers-dev-home-dev-home-toolkit)
---
name: dev-home
description: Sync the private dev-home repo with GitHub, list the skills it sets up, or see and change dev-home-toolkit's settings on this PC, such as how often syncs check GitHub, whether updates install themselves, or whether dev-home is in use on more than one PC. Use when the user runs /dev-home or $dev-home, asks to sync dev-home (their handoffs and knowledge base) with GitHub, asks which skills dev-home gives them, or asks about or wants to change a dev-home-toolkit setting.
allowed-tools: "Bash({{PYTHON}} -I {{SHARED_SKILL_SCRIPTS_DIR}}/prepare.py --skill dev-home --stamp {{SKILL_STAMP}} --fetch always) PowerShell({{PYTHON}} -I {{SHARED_SKILL_SCRIPTS_DIR}}/prepare.py --skill dev-home --stamp {{SKILL_STAMP}} --fetch always) Bash({{PYTHON}} -I {{SHARED_SKILL_SCRIPTS_DIR}}/facts.py --skill dev-home --stamp {{SKILL_STAMP}} skills) PowerShell({{PYTHON}} -I {{SHARED_SKILL_SCRIPTS_DIR}}/facts.py --skill dev-home --stamp {{SKILL_STAMP}} skills) Bash({{PYTHON}} -I {{TOOLKIT_DIR}}/setup.py --configure) Bash({{PYTHON}} -I {{TOOLKIT_DIR}}/setup.py --configure *) PowerShell({{PYTHON}} -I {{TOOLKIT_DIR}}/setup.py --configure) PowerShell({{PYTHON}} -I {{TOOLKIT_DIR}}/setup.py --configure *) Bash({{PYTHON}} -I {{TOOLKIT_DIR}}/sync.py) Bash({{PYTHON}} -I {{TOOLKIT_DIR}}/sync.py *) PowerShell({{PYTHON}} -I {{TOOLKIT_DIR}}/sync.py) PowerShell({{PYTHON}} -I {{TOOLKIT_DIR}}/sync.py *)"
---
# dev-home
dev-home is the user's private repo, at `{{CONTENT_DIR}}`, which keeps their handoffs, knowledge
base, global rules, and own skills on GitHub. dev-home-toolkit, at `{{TOOLKIT_DIR}}`, is the tooling
that syncs it and sets it up on each PC. This skill syncs dev-home when the user asks, lists the
skills dev-home sets up, and shows and changes dev-home-toolkit's settings. Run the commands below
exactly as written; in Claude Code they are pre-approved.
Sessions in other projects, and Codex, use dev-home at the same time, so a file there that you
didn't change may be someone's work in progress. Run git in dev-home only through
`{{TOOLKIT_DIR}}/sync.py`, which commits only the files you name and runs one sync at a time.
Never stage, commit, stash, or discard a file yourself.
## Commands
The first word after `/dev-home` (`$dev-home` in Codex) picks the command: `sync`, `configure`,
or `skills`.
| Command | What it does |
| --- | --- |
| `/dev-home` | Lists these commands, and runs nothing. |
| `/dev-home sync` | Syncs dev-home with GitHub: brings in commits from its other copies, pushes this PC's, and lists the files left uncommitted. Also checks for dev-home-toolkit updates, and runs setup. |
| `/dev-home configure` | Shows dev-home-toolkit's settings, and changes one after the user's yes to the exact change. |
| `/dev-home configure <change>` | The same, starting from the change the user describes, such as "check GitHub every 6 hours". |
| `/dev-home skills` | Lists the skills dev-home sets up: dev-home-toolkit's own, then the user's. Changes nothing. |
With `/dev-home` alone, list these commands in a short reply and run nothing, so typing the
skill's name never reaches GitHub. Any other text is a question or a request: answer it, and when
it asks for a sync, a settings change, or the list of skills, follow the matching command below.
## When to change, commit, and push
These rules cover the files this skill works with in dev-home, which are any a sync lists as
`STALE` or `LEFT`, and dev-home-toolkit's settings. For those, follow these rules rather than any
rule written for the user's project repos.
- `/dev-home sync`, or a plain request to sync dev-home, is all the go-ahead a sync needs. A sync
never commits a changed file: it brings in other copies' commits, merging them when both have
new ones, and pushes commits already made on this PC.
- A file the sync lists as `STALE` is committed and pushed only after a yes to "Commit and push
it?", naming the file.
- A file listed as `LEFT` changed in the last 15 minutes, so another session may be editing it.
Leave it alone, unless the user says it's theirs and finished: then ask about it as for
`STALE`.
- A setting changes only after the user's yes to the exact change that `--what-if` showed (see
"Configure"). Setup makes the change: never edit a settings file yourself.
- One yes covers only the change it was given for, never a later one, even in the same session.
## Sync
1. Run
`{{PYTHON}} -I {{SHARED_SKILL_SCRIPTS_DIR}}/prepare.py --skill dev-home --stamp {{SKILL_STAMP}} --fetch always`.
It syncs dev-home with GitHub, checking GitHub every time, then checks dev-home-toolkit for
updates as every sync does, runs setup, and checks that this skill hasn't changed since you
loaded it. If it can't start because `{{PYTHON}}` doesn't exist, tell the user that
dev-home-toolkit needs Python 3.12 or later: to install it if they have none, then run
`py {{TOOLKIT_DIR}}/setup.py` in a terminal. Then stop. Pass on anything it prints beyond `OK`:
- `RELOAD`: this skill has changed since you loaded it, so these steps are out of date. Show
the line, and stop: the user runs the command again to load the new steps.
- `OFFLINE`: GitHub couldn't be reached. When the line is about dev-home, nothing was
synced: pass on what it says, that dev-home may be behind, or, with one active copy, that
nothing should be missing. When it's about dev-home-toolkit, say its updates weren't checked.
- `SETTING`: dev-home is set to one active copy, but the sync brought in commits from
another. Pass the line on, with its advice to run `/dev-home configure` if another copy is
in use, and never change the setting yourself.
- `LEFT` and `STALE`: see "When to change, commit, and push". To commit a file, run
`{{PYTHON}} -I {{TOOLKIT_DIR}}/sync.py --message "sync: <what changed>" "<path>"`, which
commits only that file, then syncs. After it, `OFFLINE` or `PENDING` means the commit is
safe on this PC, and a later sync pushes it.
- `UPDATE`: new dev-home-toolkit commits are available. Tell the user.
- `PROBLEM`: show it.
2. Tell the user in one line where things stand: up to date, pulled, merged, pushed, or not
synced and why.
Commits in dev-home are unsigned on purpose: setup turns signing off in that repo's own git
config. That is not bypassing signing, and the project repos keep signing as usual.
## Configure
This PC's settings are in `{{TOOLKIT_DIR}}/local-settings.json`. One more, whether dev-home is in
active use anywhere besides this PC (`multiMachine`), is shared by every copy, in dev-home's
`dev-home.json`. Change them only through setup, as below: it checks each value, keeps a dated
backup of this PC's settings, and commits and pushes the shared one.
1. Run `{{PYTHON}} -I {{TOOLKIT_DIR}}/setup.py --configure`. With nobody at a console to answer, it
prints every setting with its value, then how to change one, and changes nothing. Show the
user the settings, briefly.
2. Agree on one change: a setting's name and its new value, written as that output writes them.
If the user described a change, check that it maps onto one setting and value; when it
doesn't, or the value is unclear, ask. Never guess a folder. For several changes, make them
one at a time, with steps 2 to 5 for each. Before a switch from several copies to one
(`multiMachine=false` while it's set to several), ask whether every other copy has been
retired, so this PC is the only one using dev-home. If not, keep it at several, and stop: a
copy still in use would go hours without seeing this one's changes.
3. Run `{{PYTHON}} -I {{TOOLKIT_DIR}}/setup.py --configure '<name>=<value>' --what-if`, with the
setting in single quotes, as step 1's output writes it, such as
`--configure 'devHome.checkEveryHours=6' --what-if` or
`--configure 'claudeCode.folders+=~/.claude-second' --what-if`. It shows the exact change and
makes none. If it prints a `PROBLEM`, show it, then agree on another
value or stop. If it says the setting is already that way, tell the user, and stop.
4. Show the change, and ask one question: "Make this change?". For `multiMachine`, which every
copy shares, ask "Make this change, commit, and push it?".
5. On a yes, run the same command without `--what-if`:
`{{PYTHON}} -I {{TOOLKIT_DIR}}/setup.py --configure '<name>=<value>'`. It makes the change, then
runs the rest of setup quietly. Pass on what it prints: `SET`, with where it saved the
change; any `PROBLEM`; and for `multiMachine`, the sync's lines for its commit, as in "Sync".
After a switch to several copies, it says to run `/dev-home sync` on each other copy: pass
that on.
## Skills
1. Run
`{{PYTHON}} -I {{SHARED_SKILL_SCRIPTS_DIR}}/facts.py --skill dev-home --stamp {{SKILL_STAMP}} skills`.
It only reads files on this PC: no sync, and no network. It prints a `skill:` line for each
skill setup sets up, dev-home-toolkit's own first, then the user's own from
`{{CONTENT_DIR}}/skills/`, each with whose it is, its state, and its description. The state
says whether the skill is added to the user's agents on this PC, and if not, why, then what it
needs that's missing here, such as a program that isn't on the PATH. A line may end with the
skill's compatibility text. One of the user's that setup doesn't set up says why. If it prints
anything else, show it and stop; when it says this skill has changed since you loaded it, the
user runs the command again to load the new steps.
2. Show the skills in a table: the command that runs each (`/<name>`, or `$<name>` in Codex),
whose it is, its state in full, and what it's for in one short sentence from its description.
Below the table, give each compatibility text. When a program is missing, add that one
installed since the agent started is found only once the agent, and any editor it runs in, is
restarted. To add a skill to their agents, or take one out, the user changes
`skills.<name>.addedToAgents` (see "Configure"). If the user has none of their own, say where
one goes: `{{CONTENT_DIR}}/skills/<name>/SKILL.md`. The list is this PC's copy, so a skill
added on another PC shows up after the next sync.
## In Codex
`skills` works as written, since `facts.py` only reads files. `sync` and `configure` change
nothing in Codex: on Windows, Codex runs even approved commands inside its sandbox, where git and
`gh` can't use the user's sign-ins. Give the user the command to run in a terminal instead: for
`sync`, `py {{TOOLKIT_DIR}}/sync.py`, or `/dev-home sync` in Claude Code; for `configure`,
`py {{TOOLKIT_DIR}}/setup.py --configure`, which shows a menu of every setting.