{"slug": "personetta-one-yaml-persona-for-cursor-copilot-claude-and-cline", "title": "Personetta – One YAML Persona for Cursor, Copilot, Claude, and Cline", "summary": "Personetta, a new open-source tool, lets developers define AI coding personas once in YAML and install them natively across Cursor, GitHub Copilot, Claude Code, and Cline, eliminating the need to maintain separate instruction files for each tool. The tool, installable via pip or pipx, supports composable recipes, per-tool rendering, and instant persona switching, with 1,641 passing tests and automated quality guards.", "body_md": "**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**.\n\nAI 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.\n\nPersonetta solves this with **composable recipes**:\n\n**Write once**— personas are layered YAML (base role + language + task), composed by a merge engine with explicit conflict rules.** Render everywhere**— one command generates tool-native output: Cursor rules, Copilot instructions, Claude Code memory, Cline rules.** Switch instantly**— activate a different persona per tool with a single command; recipes are pre-generated and cached.\n\n```\nrecipes/*.yaml ──▶ compose (roles + layers) ──▶ render per tool ──▶ install\n                                                  ├─ ~/.cursor/rules/\n                                                  ├─ ~/.copilot/instructions/\n                                                  ├─ ~/.claude/rules/\n                                                  └─ ~/Documents/Cline/Rules/\npip install personetta\n```\n\nPrefer an isolated CLI install? Use [pipx](https://pipx.pypa.io/):\n\n```\npipx install personetta\n```\n\nConvenience scripts (PATH setup + verification) ship in [ scripts/](/EdwardAF-IT/Personetta/blob/main/scripts):\n\n`Setup-Personetta.ps1`\n\nfor Windows, `install-personetta.sh`\n\nfor Linux/macOS.**Requirements:** Python 3.11+\n\n```\n# 1. Install\npip install personetta\n\n# 2. See what personas are available (design, implement, review, test — per language)\npersonetta list\n\n# 3. Install every recipe for your tool (cursor | copilot | claude | cline)\npersonetta install '*' --format claude\n\n# 4. Activate the persona you want right now\npersonetta set-active implement-python --format claude\n\n# 5. Confirm everything is healthy\npersonetta verify\n```\n\nOpen your AI tool and ask *\"What role are you playing?\"* — it will describe the active persona. Switching is instant:\n\n```\npersonetta set-active review-python --format claude\n```\n\n| Command | Purpose |\n|---|---|\n`personetta install '*' --format <tool>` |\nInstall all recipes (wildcards supported: `'test-*'` , `'*python*'` ) |\n`personetta list` |\nList available roles and recipes |\n`personetta set-active <recipe> --format <tool>` |\nSwitch the active persona |\n`personetta current` |\nShow the active recipe |\n`personetta recipe <name> --format <tool>` |\nPrint one composed recipe |\n`personetta validate` |\nValidate all YAML against the JSON Schemas |\n`personetta verify` |\nCheck install health (version, PATH, recipe data) |\n`personetta remove '<pattern>' --format <tool>` |\nRemove installed recipes |\n\nFull reference: [docs/cli-reference.md](/EdwardAF-IT/Personetta/blob/main/docs/cli-reference.md)\n\nPersonas are **recipes** composed from reusable **role layers**:\n\n`data/base/`\n\n— foundational roles (engineer, reviewer, tester…)`data/language_specific/`\n\n— language and framework layers`data/recipes/`\n\n— the composition: which layers, in what order, with what overrides`data/config/merge-config.yaml`\n\n— field-by-field merge strategies and conflict rules`data/schemas/`\n\n— JSON Schemas that validate every YAML file\n\nThe generator (`src/generator/`\n\n) 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.\n\nDetails: [docs/architecture.md](/EdwardAF-IT/Personetta/blob/main/docs/architecture.md) · [docs/concepts.md](/EdwardAF-IT/Personetta/blob/main/docs/concepts.md)\n\n**1,641 passing tests** across unit, integration, and quality suites**Automated quality guards** enforced in pytest: cyclomatic complexity ≤ 10, function size ≤ 25 lines, file size ≤ 400 lines, method and import count limits, workspace-convention checks**Packaging guards** that build a real wheel and prove every recipe ships in it- Linted with\n**ruff**, type-checked with** mypy**, CI on every push\n\n|\n\n[User Guide](/EdwardAF-IT/Personetta/blob/main/docs/user-guide.md)[Core Concepts](/EdwardAF-IT/Personetta/blob/main/docs/concepts.md)[Recipe Guide](/EdwardAF-IT/Personetta/blob/main/docs/recipe-guide.md)[CLI Reference](/EdwardAF-IT/Personetta/blob/main/docs/cli-reference.md)[Architecture](/EdwardAF-IT/Personetta/blob/main/docs/architecture.md)[Contributing](/EdwardAF-IT/Personetta/blob/main/docs/contributing.md)[Troubleshooting](/EdwardAF-IT/Personetta/blob/main/docs/troubleshooting.md)[MIT](/EdwardAF-IT/Personetta/blob/main/LICENSE) © 2026 Edward Fry", "url": "https://wpnews.pro/news/personetta-one-yaml-persona-for-cursor-copilot-claude-and-cline", "canonical_source": "https://github.com/EdwardAF-IT/Personetta", "published_at": "2026-08-19 01:07:49+00:00", "updated_at": "2026-08-19 01:40:41.302919+00:00", "lang": "en", "topics": ["developer-tools", "ai-tools", "ai-agents"], "entities": ["Personetta", "Cursor", "GitHub Copilot", "Claude Code", "Cline", "pip", "pipx"], "alternates": {"html": "https://wpnews.pro/news/personetta-one-yaml-persona-for-cursor-copilot-claude-and-cline", "markdown": "https://wpnews.pro/news/personetta-one-yaml-persona-for-cursor-copilot-claude-and-cline.md", "text": "https://wpnews.pro/news/personetta-one-yaml-persona-for-cursor-copilot-claude-and-cline.txt", "jsonld": "https://wpnews.pro/news/personetta-one-yaml-persona-for-cursor-copilot-claude-and-cline.jsonld"}}