Install — Claude Code¶
chrysippus is a first-class Claude Code plugin. The simplest path is the
marketplace install.
Marketplace (recommended)¶
claude plugin marketplace add kbatsu/chrysippus
claude plugin install chrysippus@kbatsu-plugins
Two commands. You now have:
- Persona skills (auto-discovered under
.claude/skills/) - A slash command per persona (
/chrysippus:<persona>) plus/chrysippus:personas - A reviewer subagent per persona plus the
dramaturgmeta-agent - One
SessionStarthook (opt-in per project)
Per-repo manual install¶
If you'd rather copy the skills in by hand:
cd your-project
mkdir -p .claude/skills
git clone https://github.com/kbatsu/chrysippus /tmp/chrysippus
<!-- chrysippus:cp-skills-per-repo BEGIN -->
cp -r /tmp/chrysippus/.claude/skills/gen-alpha .claude/skills/
cp -r /tmp/chrysippus/.claude/skills/ontario-bud .claude/skills/
cp -r /tmp/chrysippus/.claude/skills/pirate .claude/skills/
cp -r /tmp/chrysippus/.claude/skills/shakespeare .claude/skills/
cp -r /tmp/chrysippus/.claude/skills/toronto-mans .claude/skills/
<!-- chrysippus:cp-skills-per-repo END -->
For always-on activation in this repo, append to CLAUDE.md:
## Communication style
This repo uses the `shakespeare` skill at `.claude/skills/shakespeare/SKILL.md`.
Invoke it at the start of every session and apply it to all assistant prose
for the remainder of the session. Read
`.claude/skills/shakespeare/shakespeare.config` for the active flavor and
preservation toggles.
(Swap shakespeare for any other persona.)
User-global install (across all your repos)¶
mkdir -p ~/.claude/skills
git clone https://github.com/kbatsu/chrysippus /tmp/chrysippus
<!-- chrysippus:cp-skills-user-global BEGIN -->
cp -r /tmp/chrysippus/.claude/skills/gen-alpha ~/.claude/skills/
cp -r /tmp/chrysippus/.claude/skills/ontario-bud ~/.claude/skills/
cp -r /tmp/chrysippus/.claude/skills/pirate ~/.claude/skills/
cp -r /tmp/chrysippus/.claude/skills/shakespeare ~/.claude/skills/
cp -r /tmp/chrysippus/.claude/skills/toronto-mans ~/.claude/skills/
<!-- chrysippus:cp-skills-user-global END -->
Enabling the auto-activation hook¶
The marketplace install ships a SessionStart hook that can auto-activate
a specific persona on every new session in a project. Opt in per-project:
cd your-project
# where $CLAUDE_PLUGIN_ROOT is set by Claude Code to the plugin install location
bash "${CLAUDE_PLUGIN_ROOT}/hooks/activate.sh" shakespeare
# check current state
bash "${CLAUDE_PLUGIN_ROOT}/hooks/activate.sh" status
# disable
bash "${CLAUDE_PLUGIN_ROOT}/hooks/activate.sh" off
The hook writes .claude/personas/active in the project dir. The
SessionStart hook reads it and injects activation instructions.
Security: hooks run unsandboxed at your shell privilege. Read the security page before enabling.
Slash commands¶
| Command | Effect |
|---|---|
/chrysippus:gen-alpha |
Activate gen-alpha for this session |
/chrysippus:ontario-bud |
Activate ontario-bud for this session |
/chrysippus:pirate |
Activate pirate for this session |
/chrysippus:shakespeare |
Activate shakespeare for this session |
/chrysippus:toronto-mans |
Activate toronto-mans for this session |
/chrysippus:personas |
List installed personas; show which is active |
Pass a flavor argument to activate with that flavor from the start —
e.g. /chrysippus:shakespeare sonnet, /chrysippus:pirate shanty.
Every persona activation also announces the active flavor, the other flavors, and how to switch/stop — so first-time users don't need to open the docs to discover what's available.
The : between plugin and command is Claude Code's auto-namespacing —
don't add more colons for sub-actions. Sub-actions (plain / reload /
flavor switch) are natural-language triggers in the skill itself.
Subagents¶
The plugin installs subagents:
| Subagent | Purpose |
|---|---|
gen-alpha-reviewer |
PR / branch review in gen-alpha voice |
ontario-bud-reviewer |
PR / branch review in ontario-bud voice |
pirate-reviewer |
PR / branch review in pirate voice |
shakespeare-reviewer |
PR / branch review in shakespeare voice |
toronto-mans-reviewer |
PR / branch review in toronto-mans voice |
dramaturg |
Meta-agent — audits persona rule-adherence |
The reviewers each load their persona's skill from frontmatter; the dramaturg speaks plainly itself.
Invoke with an @-mention (plugin-namespaced):
@chrysippus:shakespeare-reviewer review my latest PR
@chrysippus:dramaturg audit this response for shakespeare adherence: "<paste>"
Each reviewer declares the corresponding skill in its frontmatter, so the persona context loads automatically. See Subagents for the full invocation guide (natural- language, session defaults, passing context, and example output).
Troubleshooting¶
- Skill doesn't activate — Claude Code loads skills when the description matches user intent. Try the trigger phrase verbatim or use the slash command.
- Config edits not taking effect mid-session — say "reload <persona> config".
- Hook does nothing — the hook emits nothing unless
.claude/personas/activeexists in the project. Runactivate.sh <persona>to set it.
See Security for the full hook model and SHA256 verification flow.