A Daemon Card is a single JSON file describing one persona — its intent, personality, history, strengths, weaknesses, voice, vocabulary, catchphrases, forbidden topics, and a bank of voiced sample lines. v0.2.0-alpha cards also carry a one-line activation phrase that summons the persona in any LLM chat.
It is designed to be portable across mediums. Drop a card into a video game and let the in-engine narrative system consume it. Drop it into a website and let the site speak in that persona's voice. Click Copy Summon Phrase on any card below and paste it into any LLM chat (ChatGPT, Claude, Gemini, Grok, local models) — the persona is summoned. Embed the capsule on a social post, a portfolio, a Steam page.
Daemons are persona-first. They do not contain plots. They contain identities. The story emerges as the persona responds. This is the architectural opposite of plot-first AI writing tools. The persona is the artifact.
The format is alpha. Cards published under v0.1.0-alpha remain valid forever (this runtime accepts both v0.1.x-alpha and v0.2.x-alpha). Persona revisions ship as new card files; old versions stay live at <id>@<version>.daemon.json.
Open any card. Click ChatGPT / Claude / Gemini / Grok / Perplexity / Le Chat. The site copies the summon phrase and opens the platform in a new tab. Paste with Ctrl+V, hit Enter, and the persona summons in character. We don't host anything — you bring your own compute.
Click SillyTavern on any card. The site generates a PNG with the SillyTavern V2 character data embedded in the file's metadata (tEXt chunk under the chara key, base64-encoded JSON, per the published spec). Drag the .card.png into SillyTavern — the persona imports automatically with full system prompt, opening message, alternate greetings, and tags.
Click Use Locally. The cheat-sheet modal explains how to drop the system prompt into LM Studio, Ollama (with a Modelfile), llama.cpp, or any OpenAI-compatible local server. One-button copy buttons for the prompt and summon phrase.
Click Download .daemon.json. Ship the file alongside your game, web app, or other product. Consume it with the runtime in /daemons/daemons.js, or write your own — the schema is documented. Old cards (v0.1.0-alpha) work in this runtime too.
Read the schema spec. Write a JSON file. Attach the license block. Publish under your own publisher ID. The format is open. Attribution is the only requirement. Versions are perpetual — never overwrite a published card; ship a new version.
For the deeper question — how do you make a daemon that actually feels like a person? — read the Authoring Field Guide. Nine axes, three response modes, the symmetry test, and a full worked example. CC BY 4.0 — fork it, refute it, write a better one.
1. Open LM Studio → choose any chat model (Mistral 7B+, Llama 3 8B+, or larger). 2. Open a new chat. Click the gear icon → "System Prompt". 3. Paste the full system prompt (button below). 4. Save. Send any message — the persona summons. Tip: turn temperature to ~0.7 for stable in-character replies.
1. Run any chat model: ollama run llama3:8b 2. In the chat, paste the SUMMON PHRASE as your first message. The persona greets you in character. Power-user: bake the system prompt into a Modelfile: FROM llama3:8b SYSTEM "<paste the full system prompt here>" Then: ollama create chad -f Modelfile && ollama run chad
./main -m model.gguf --in-prefix "User: " --in-suffix "Assistant: " \
--system "<full system prompt from button below>" \
--interactive --temp 0.7
curl http://localhost:1234/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "any-loaded-model",
"messages": [
{ "role": "system", "content": "<full system prompt>" },
{ "role": "user", "content": "Tell me about Asset 0001." }
],
"temperature": 0.7
}'