Skip to content

chrysippus

Named after Chrysippus of Soli (c. 279–206 BCE), head of the Stoic school and author of works on emotional restraint and rationality.

Persona skills for AI coding agents. Same prompt, multiple voices, identical code output.

Works with: Claude Code (first-class plugin) · Codex · Cursor · Windsurf · Aider · Cline · Gemini CLI.

Install in 30 seconds →

Demo 1 — "What does this repo do?"

🎭 shakespeare — courtly "A trove of personas, good sir — five registers for thy AI agent to don. Bardic, piratey, youthful, Toronto-coded, or rural-Ontarian. The code remaineth verbatim; only the voice doth shift."

🏴‍☠️ pirate — scurvy-dog "Aye matey — five voices for Claude Code and its kin. Ye can speak like the Bard, a buccaneer, a gen-alpha, a Toronto mans, or an Ontario bud. Code stays as writ; only the words change."

🫠 gen-alpha — unhinged "ok so 5 voices for claude code. shakespeare pirate gen-alpha toronto-mans ontario-bud. code untouched fr. purely for vibes no cap. also made by millennials bc of course."

6️⃣ toronto-mans — mans "Mans ship five persona skills for AI coding agents fam. Bard, pirate, gen-alpha, toronto-mans, and ontario-bud — you're reading it. Code stays plain no cap, only the voice shifts still."

🇨🇦 ontario-bud — bud "Five voices in here, bud. Bardic, piratey, gen-alpha, toronto-mans, and ontario-bud — that's me. Code stays plain English, just the voice changes. Pitter patter."

Demo 2 — "Bug on line 42 of parse.tsnull isn't handled. Advice?"

🎭 shakespeare "Upon line 42 of parse.ts lurketh a bug most grievous: null is given no welcome, and the function doth crash. Place a null-guard afore the call, that the stream may flow unbroken."

🏴‍☠️ pirate "Kraken on line 42 of parse.ts, matey — null walks in and the function be capsized. Add a null-guard, and the seas stay calm."

🫠 gen-alpha "line 42 of parse.ts is cooked — null not handled. add a guard, move on. W fix."

6️⃣ toronto-mans "Bug on line 42 of parse.ts still fam — null ain't being handled. Easy ting to fix: null-guard before the call. Bare simple no cap."

🇨🇦 ontario-bud "Bug on line 42 of parse.ts there, bud — null ain't being handled. Easy fix: drop a null-guard in afore the call. Sorted."

Notice parse.ts and null in every response — backtick contents stay verbatim regardless of register. That's the preservation rule, one of several. See the full config model →

What chrysippus is

Each persona changes how the agent talks (register, vocabulary, tone) while leaving what it does untouched (code, commits, errors, tool output). Inspired by caveman — same mechanism, opposite goal. caveman compresses speech to save tokens; chrysippus retunes register for fun. No savings here, just vibes.

Install in 30 seconds

For Claude Code users:

claude plugin marketplace add kbatsu/chrysippus
claude plugin install chrysippus@kbatsu-plugins

Then in any Claude Code session:

/chrysippus:shakespeare

Done. The Bard greets you.

For other agents, see the install guide — each agent has its own one-line setup.

Personas

Persona Register Default flavor Other flavors
gen-alpha Internet-native ironic Gen-Alpha slang unhinged corporate, tutorial
ontario-bud Rural-Ontario / Letterkenny-inspired caricature bud (single flavor in v1)
pirate Treasure Island / POTC 17–18c. maritime scurvy-dog captain, drunk, shanty
shakespeare Early Modern English (c. 1600) courtly tavern, sonnet
toronto-mans Toronto / Multicultural-Toronto-English caricature mans (single flavor in v1)

What's preserved regardless of active persona

  • Anything inside backticks — hard rule, not configurable.
  • Commit messages, PR descriptions, code comments — plain English by default.
  • Safety warnings, destructive-op confirmations, error text — plain English by default.
  • Replies in non-English languages — the agent answers in the user's language, in plain prose.
  • Most-recent-wins precedence if multiple personas activate in the same session.

Docs

  • Install — per-agent setup (Claude Code, Cursor, Codex, Windsurf, Aider, Cline, Gemini).
  • Personas — one page per skill with demos, flavor matrix, and register-specific guardrails.
  • Configuration — the config-file model, preservation toggles, hard-locks, reload mechanics.
  • Subagents — the per-persona reviewers + the dramaturg meta-agent: what they do and how to invoke them.
  • Recipes — worked examples for common tasks ("Bardic prose but plain commits", "full pirate git history", etc.).
  • Extending — add a new persona, add a flavor, update a lexicon.
  • Security — supply-chain posture, hook model, SHA256 verification.