
Troupe
An open file format for AI roleplay: characters, the worlds they live in, the scenarios that bring them together, the mechanics that drive a story, and sessions: the chats people play, exported so any app can continue them.
Status: v0.12 draft. Breaking changes are allowed until 1.0, which is tagged once none is pending and the conformance suite covers the spec.
A first look
Section titled “A first look”A complete Troupe file: one character, and a scenario that starts a chat with her.
{ "troupe": "0.12", "kind": "bundle", "characters": [ { "id": "elena", "name": "Elena Voss", "description": "A meticulous thief and mapmaker. Calm, exacting, dry humor." } ], "scenarios": [ { "id": "workshop", "openings": [ { "id": "late", "content": [{ "speaker": "elena", "text": "You're late. Sit down, and don't touch the maps." }] } ] } ]}The beginner’s guide grows this card into a full story, with lore, secrets, state and events.
Specification
Section titled “Specification”| Troupe Format | The files and what every field means: bundles, characters, worlds, scenarios, entries, variables, events, sessions and chronicles. |
| Schemas | JSON Schemas, normative for structure (Format Appendix A). |
| Conformance suite | Language-neutral test cases and the protocol a test runner follows. |
| Examples | The spec’s worked examples as files. |
Guides
Section titled “Guides”These are informative.
- Beginner’s guide: learn Troupe by building one story, step by step.
- Authoring guide: patterns for common stories.
- Authoring brief: one page for people and LLMs writing Troupe files.
- Character Card V2/V3 and Troupe: importing and exporting cards.