Install¶
Leopold has two tiers. The in-session engine (skills + hooks) is all you need to start and runs in plain Claude Code. The SDK driver is optional and adds unattended, background runs.
Prerequisites¶
- Claude Code, logged in.
jqon yourPATH(the hooks use it to parse state safely).- For the SDK driver only: Node.js 18+ .
- Optional but recommended: gstack, so Leopold can conduct the full skill toolchain.
Install the in-session engine¶
Or clone it (more transparent):
What the installer does:
flowchart LR
Run["./install.sh"] --> S["copy skills →<br/>~/.claude/skills/"]
Run --> H["copy hooks/templates/docs →<br/>~/.claude/leopold/"]
Run --> M["merge hooks into<br/>~/.claude/settings.json"]
M --> Idem{{"idempotent +<br/>backup"}}
The two hooks are wired into your settings, but they are inert unless a Leopold run is active, so they never interfere with normal sessions.
It is safe to re-run
install.sh is idempotent. It backs up settings.json to
settings.json.leopold.bak and never duplicates hook entries.
Install the SDK driver (optional)¶
The driver uses your existing Claude Code login for both the worker and the conductor, so there is no separate API key. See Driver Config.
Verify¶
If Leopold is installed, this reports "No Leopold run in this project." (which is the correct answer before you start one).
Install as a Claude Code plugin (one command, auto-wires hooks)¶
Once published, the plugin is the most native install — it wires the skills and
hooks automatically, no settings.json merge:
Use the plugin or install.sh, not both, to avoid double-wired hooks.
The SDK driver from npm¶
For the background-driver tier:
Updating¶
- Engine (curl /
install.sh):make update, or/leopold-updatefrom inside Claude Code. Opt into automatic updates withtouch ~/.leopold/auto-update— the brief then checks and updates on its own (notify-only otherwise). - Plugin:
claude plugin update leopold. - npm driver:
npm i -g leopold-driver@latest.