Skip to main content

Install

git clone https://github.com/arhunsaday/ai-dev-kit ~/Repos/ai-dev-kit
cd ~/Repos/ai-dev-kit
./bootstrap.sh

That symlinks everything into ~/.claude/. Edit a file in the repo and the change is live immediately — no re-run, no copy step. git pull updates every machine that has run it.

Flags

./bootstrap.sh --dry-run # show what would happen, write nothing
./bootstrap.sh --force # back up conflicting files, then link
./bootstrap.sh --unlink # remove only the links this script made
./bootstrap.sh --project ~/repo # copy the agent drop-in into a project
./bootstrap.sh --help

What it refuses to do

The script never destroys anything:

SituationBehaviour
Destination is freelink it
Destination is a real filewarn, leave it, exit 1
--forcemove it to ~/.claude/backups/ai-dev-kit-<timestamp>/, then link
Destination links somewhere elseleave it alone
Kit file is empty or .gitkeepskip — scaffolding must not shadow real config
You already have settings.jsonnever overwritten, not even with --force

That last row matters. A settings.json holds permissions, hooks and MCP wiring this kit knows nothing about, so it is merge-not-replace territory: bootstrap fills a vacant slot and otherwise prints a diff command and leaves you to it.

After installing

Restart Claude Code, or start a new session. Then:

/skills-sync # pull the third-party skills up to date

Check the statusline is live — you should see 📁 repo 🌿 branch | 🤖 model | ±diff | ████░░ 23% at the bottom. If not, your own settings.json needs the statusLine block from claude-code/settings.json.