Composable AI personas for coding agents — define a role once in YAML, and Personetta renders and installs it natively for Cursor, GitHub Copilot, Claude Code, and Cline.
AI coding assistants are only as good as the instructions you give them — but every tool has its own rules format, its own file locations, and its own quirks. Keeping a consistent "senior Python reviewer" or "C# architect" persona across four different tools means maintaining four copies by hand.
Personetta solves this with composable recipes:
recipes/*.yaml ──▶ compose (roles + layers) ──▶ render per tool ──▶ install
├─ ~/.cursor/rules/
├─ ~/.copilot/instructions/
├─ ~/.claude/rules/
└─ ~/Documents/Cline/Rules/
pip install personetta
Prefer an isolated CLI install? Use pipx:
pipx install personetta
Convenience scripts (PATH setup + verification) ship in scripts/: Setup-Personetta.ps1 for Windows, install-personetta.sh for Linux/macOS.
Requirements: Python 3.11+
# 1. Install
pip install personetta
# 2. See what personas are available (design, implement, review, test — per language)
personetta list
# 3. Install every recipe for your tool (cursor | copilot | claude | cline)
personetta install '*' --format claude
# 4. Activate the persona you want right now
personetta set-active implement-python --format claude
# 5. Confirm everything is healthy
personetta verify
Open your AI tool and ask "What role are you playing?" — it will describe the active persona. Switching is instant:
personetta set-active review-python --format claude
| Command | Purpose |
|---|---|
personetta install '*' --format <tool> | Install all recipes (wildcards supported: 'test-*', '*python*') |
personetta list | List available roles and recipes |
personetta set-active <recipe> --format <tool> | Switch the active persona |
personetta current | Show the active recipe |
personetta recipe <name> --format <tool> | Print one composed recipe |
personetta validate | Validate all YAML against the JSON Schemas |
personetta verify | Check install health (version, PATH, recipe data) |
personetta remove '<pattern>' --format <tool> | Remove installed recipes |
Full reference: docs/cli-reference.md
Personas are recipes composed from reusable role layers:
data/base/ — foundational roles (engineer, reviewer, tester…)data/language_specific/ — language and framework layersdata/recipes/ — the composition: which layers, in what order, with what overridesdata/config/merge-config.yaml — field-by-field merge strategies and conflict rulesdata/schemas/ — JSON Schemas that validate every YAML fileThe generator (src/generator/) loads, validates, composes, and renders each recipe through per-tool formatters, then installs three files per tool: an always-on baseline, a router index of every persona, and the full active recipe — plus a local cache so switching personas never regenerates anything.
Details: docs/architecture.md · docs/concepts.md
| Quick Start | Up and running in 5 minutes |
| User Guide | Complete workflows |
| Core Concepts | How composition works (with diagrams) |
| Recipe Guide | Creating and customizing recipes |
| CLI Reference | Every command and flag |
| Architecture | Technical design |
| Contributing | PR process and standards |
| Troubleshooting | Common issues |
MIT © 2026 Edward Fry
12 commits
Python
98.6%
PowerShell
1.2%
Composable AI personas for coding agents — define a role once in YAML, and Personetta renders and installs it natively for Cursor, GitHub Copilot, Claude Code, and Cline.
AI coding assistants are only as good as the instructions you give them — but every tool has its own rules format, its own file locations, and its own quirks. Keeping a consistent "senior Python reviewer" or "C# architect" persona across four different tools means maintaining four copies by hand.
Personetta solves this with composable recipes:
recipes/*.yaml ──▶ compose (roles + layers) ──▶ render per tool ──▶ install
├─ ~/.cursor/rules/
├─ ~/.copilot/instructions/
├─ ~/.claude/rules/
└─ ~/Documents/Cline/Rules/
pip install personetta
Prefer an isolated CLI install? Use pipx:
pipx install personetta
Convenience scripts (PATH setup + verification) ship in scripts/: Setup-Personetta.ps1 for Windows, install-personetta.sh for Linux/macOS.
Requirements: Python 3.11+
# 1. Install
pip install personetta
# 2. See what personas are available (design, implement, review, test — per language)
personetta list
# 3. Install every recipe for your tool (cursor | copilot | claude | cline)
personetta install '*' --format claude
# 4. Activate the persona you want right now
personetta set-active implement-python --format claude
# 5. Confirm everything is healthy
personetta verify
Open your AI tool and ask "What role are you playing?" — it will describe the active persona. Switching is instant:
personetta set-active review-python --format claude
| Command | Purpose |
|---|---|
personetta install '*' --format <tool> | Install all recipes (wildcards supported: 'test-*', '*python*') |
personetta list | List available roles and recipes |
personetta set-active <recipe> --format <tool> | Switch the active persona |
personetta current | Show the active recipe |
personetta recipe <name> --format <tool> | Print one composed recipe |
personetta validate | Validate all YAML against the JSON Schemas |
personetta verify | Check install health (version, PATH, recipe data) |
personetta remove '<pattern>' --format <tool> | Remove installed recipes |
Full reference: docs/cli-reference.md
Personas are recipes composed from reusable role layers:
data/base/ — foundational roles (engineer, reviewer, tester…)data/language_specific/ — language and framework layersdata/recipes/ — the composition: which layers, in what order, with what overridesdata/config/merge-config.yaml — field-by-field merge strategies and conflict rulesdata/schemas/ — JSON Schemas that validate every YAML fileThe generator (src/generator/) loads, validates, composes, and renders each recipe through per-tool formatters, then installs three files per tool: an always-on baseline, a router index of every persona, and the full active recipe — plus a local cache so switching personas never regenerates anything.
Details: docs/architecture.md · docs/concepts.md
| Quick Start | Up and running in 5 minutes |
| User Guide | Complete workflows |
| Core Concepts | How composition works (with diagrams) |
| Recipe Guide | Creating and customizing recipes |
| CLI Reference | Every command and flag |
| Architecture | Technical design |
| Contributing | PR process and standards |
| Troubleshooting | Common issues |
MIT © 2026 Edward Fry
12 commits
Python
98.6%
PowerShell
1.2%