claudeers.

🔓 unclaimed — this page was auto-generated from GitHub. Are you the creator?

Claim this page →
// Claude Plugins

claude-personas

Persistent persona modes for Claude Code: command-controlled personas (solo/parallel), a guided persona creator, and an on-demand team debate.

// Claude Plugins[ cli ][ api ][ claude ]#claude#pluginsMIT$open-sourceupdated 11 days ago
Actively maintained
98/100
last commit 11 days ago
last release none
releases 0
open issues 0
// install
git clone https://github.com/zvoque/claude-personas

🎭 claude-personas

Give Claude a mindset that sticks.

Persistent personas for Claude Code: pick a persona and Claude holds it on every turn, not just the message you invoked it on. Run one, several in parallel, or convene them as a team that debates a topic and reports back.

Built for Claude Code; also installable as GitHub Copilot custom agents.


A normal skill or prompt shapes a single reply, then Claude drifts back to default. A persona doesn't. A hook re-asserts it each turn, so contrarian keeps pressure-testing you for the whole session. Personas are plain Markdown files you own, and you can author new ones through a guided interview.

Install

/plugin marketplace add zvoque/claude-personas
/plugin install personas@claude-personas

No install scripts, no manual settings.json edits; the plugin registers its own hooks. Requires Node (the hooks and CLI are plain Node.js).

To remove it later: claude plugin uninstall personas@claude-personas.

Using GitHub Copilot?

Copilot has two surfaces, and they install differently.

Copilot CLI is Claude Code compatible, so it runs the real plugin with the same commands:

/plugin marketplace add zvoque/claude-personas
/plugin install personas@claude-personas

You get the full thing: persistent personas, parallel, debates. The CLI namespaces the command, so you run /personas:personas <verb> (e.g. /personas:personas senior). Turn on Chat: Use Claude Hooks in settings so persistence works.

The Copilot extension (the chat panel in VS Code) does not run plugins. Install the personas as Copilot custom agents (.agent.md files) instead: see copilot/.

Recommended: use a Claude model. Everything here is tested on Claude; behaviour on other models is unverified.

Quick start

/personas <persona>       # activate one (e.g. contrarian, senior); Claude adopts it and stays that way
/personas off             # back to normal
/personas list            # what's available, what's active, current mode
/personas new             # build your own persona, guided
/personas parallel        # let several run at once
/personas team "Postgres vs Mongo at our scale"   # your personas debate it

Bundled personas

Ships with two to start. Create your own with /personas new or drop a file into ~/.claude/personas/.

PersonaWhat it does
contrarianA sharp, skeptical advisor that pressure-tests every decision instead of validating it: names the load-bearing assumption, fires three concrete counterarguments, proposes a superior alternative, surfaces the blind-spot risk, and ends with a verdict: Proceed / Reconsider / Stop. Persists every turn; steps aside for destructive actions and direct questions.
seniorAn elite senior developer that assumes nothing: states its understanding and assumptions, reads the project's docs and code before touching anything, reuses existing code over reinventing it (extracting shared functions when it finds duplication), writes compact high-quality code, and keeps docs current. Blunt and terse. Persists every turn; steps aside for destructive actions, direct questions, and urgent fixes.

Usage

Everything runs through the /personas command; there are no natural-language triggers (the hooks never parse your prompts for control, so nothing fires by accident). Each row below is a <verb> you pass to it, e.g. /personas off:

<verb>Effect
<name>Activate a persona. solo replaces the current one; parallel appends it.
off [name]Deactivate everything, or just one persona.
solo · parallelSwitch operating mode (parallel warns past ~4 active).
(empty) · statusStatus report: the current mode and which personas are active.
listList all available personas (* = active).
newCreate a persona through a guided interview.
team [topic]Convene your personas as a debate panel, then synthesize.
delete <name>Delete a personal persona (bundled ones are protected).

How it works

Personas are plain data files, not skills: a Markdown file with name + description frontmatter and the instructions. Bundled ones ship in the plugin; yours live at ~/.claude/personas/<name>.md and override a bundled one of the same name.

EventHookWhat it does
UserPromptSubmitpersonas-tracker.jsRe-injects the active persona(s) every turn; that's what makes them stick. Self-suppresses on /personas turns so commands run clean.
SessionStartpersonas-activate.jsInjects the active persona(s) before the first prompt of a new or resumed session.

personas-ctl.js is the sole writer of state and persona files; the command and hooks both go through it. State lives at ~/.claude/.personas-active.

Injection defaults to the full persona body each turn. Set PERSONAS_TERSE=1 for a short re-assertion instead; validate it holds the persona over a long session first.

Team debates

/personas team [topic] turns your personas into a panel that argues a question. Claude acts as moderator: casts the panel, runs the rounds, and hands you a synthesis. Your active personas are auto-paused for the duration so they can't bias the moderator, then restored when it's done. Your enabled set and solo/parallel mode are never touched (and if a debate ever dies before cleanup, the pause self-heals on its own; it auto-expires, no restart needed).

  1. Cast the roster. You pick which personas debate (your currently-active ones are pre-selected). The panel is independent of solo/parallel mode; convening a team doesn't change what's active.
  2. Fill the gaps (auto-cast). A debate is only useful if the sides genuinely disagree. If your picks are too aligned, or one is a pure style with no stance to argue, it offers to auto-cast extra debaters drawn for the topic (a skeptic, an opposing stakeholder) to create real friction. These are ephemeral: used for this debate only, never saved. Want to keep one? /personas new.
  3. They argue. Each debater is spawned as its own agent, and they go at it via native inter-agent messaging (opening positions, direct clashes, a pressure round) rather than one model puppeting every side.
  4. You get a synthesis. Key tensions, where they converged, the strongest point each side landed, what the answer depends on, and a verdict.

Requires agent-teams support. The full version spawns real sub-agents (Claude Code's agent teams). Where that isn't available it falls back to a single-context role-play of the same rounds; still useful, just less independent. This plugin's own personas pause automatically during the debate; for the cleanest result, also pause other persona plugins (caveman, ponytail); it can only control its own.

Adding a persona

Fastest: /personas new, a guided interview that drafts the persona and writes it for you. Or by hand, drop this at ~/.claude/personas/<name>.md:

---
name: <name>
description: <short description>
---

<persona instructions, written as if addressed to Claude>

The hooks pick it up immediately, no reinstall. To contribute a bundled persona, add it under plugins/personas/personas/ and open a PR.

Coexistence with other plugins

claude-personas uses isolated state (.personas-active) and its own /personas namespace, and never edits settings.json. It stacks additively with other persona/lifecycle plugins (caveman, ponytail); when they're active too, all their rules apply alongside these. For a clean /personas team debate, pause the others; this plugin only guarantees its own persona is suppressed on the moderator turn.

Credits

Inspired by caveman, the persona-mode plugin that pioneered the hook-driven "stay in character every turn" pattern this builds on. claude-personas generalizes it: any number of user-defined personas, solo / parallel / team modes, and a guided creator.

More Claude Code plugins

Other plugins I've built, same philosophy: low-friction, safe, and they never touch your settings.json.

  • passive-adr: decision memory. It watches for architecturally-significant choices (made by you or the agent), records each as an ADR with its rationale, and feeds them back into every future session so settled decisions are honored instead of silently reversed. No prompts; a background sweep does it at session end.
  • groundskeeper: skill-set housekeeping. It tracks which skills you actually invoke, flags the ones that have gone cold, and helps you reversibly prune the unused ones. Zero token cost during normal work; speaks up at most once a week, and only when something's gone stale.
  • wtf-claude: a read-only post-mortem for when a session gets messy. Run /wtf and it reconstructs what the agent tried, what actually changed, what broke, what it guessed, and exactly what to do next. Never runs destructive git; it only diagnoses.

License

MIT

// compatibility

Platformscli, api
Operating systems
AI compatibilityclaude
LicenseMIT
Pricingopen-source
LanguageJavaScript

// faq

What is claude-personas?

Persistent persona modes for Claude Code: command-controlled personas (solo/parallel), a guided persona creator, and an on-demand team debate.. It is open-source on GitHub.

Is claude-personas free to use?

claude-personas is open-source under the MIT license, so it is free to use.

What category does claude-personas belong to?

claude-personas is listed under plugins in the Claudeers registry of Claude-compatible tools.

0 views
23 stars
unclaimed
updated 11 days ago

// embed badge

claude-personas on Claudeers
[![Claudeers](https://claudeers.com/api/badge/claude-personas.svg)](https://claudeers.com/claude-personas)

// retro hit counter

claude-personas hit counter
[![Hits](https://claudeers.com/api/counter/claude-personas.svg)](https://claudeers.com/claude-personas)

// reviews

// guestbook

0/500

// related in Claude Plugins

🔓

A single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathy's observations on LLM coding pitfalls.

// pluginsmultica-ai/187,223[ claude ]
🔓

Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explainin…

// pluginsanthropics/Python135,848[ claude ]
🔓

"CLI-Anything: Making ALL Software Agent-Native" -- CLI-Hub: https://clianything.cc/

// pluginsHKUDS/Python44,672Apache-2.0[ claude ]
🔓

financial-services — a Claude ecosystem project on GitHub.

// pluginsanthropics/Python33,266Apache-2.0[ claude ]
→ see how claude-personas connects across the ecosystem