Quest Heroes

Updated June 20, 2026

Every agent in a quest takes on a hero identity: a named character with a functional role, RPG stats, a charter, and a model assignment. Heroes shape how agents behave, communicate, and prioritize their work. crystl ships with 15 core heroes preset, sync from crystl.dev expands the built-in catalog to the full roster (currently 30 heroes), and you can make your own.

Heroes come from three places, and they’re all in one spot now: the Heroes settings page. It lists three columns:

  • Built-in: the immutable default roles. Fresh installs ship the 15 core presets below with no download; the sync from crystl.dev button on the Heroes page pulls the full roster — currently 30 heroes, browsable in the Library. You can’t change built-ins, but you can duplicate any of them.
  • Custom: your own global heroes, available in every project.
  • Local: heroes committed to a specific project’s .crystl/heroes/ folder. See Local Project Heroes.

When two heroes share a name, the most specific one wins: project-local > custom > built-in. So a hero committed to a repo always beats a global custom of the same name, which beats the built-in.

Heroes work solo too. You don’t need a whole quest to use a hero. Summon one as a standalone hero shard from the shard bar or the crystl CLI, and it starts up as that specialist on its own. Everything below (roles, stats, charters, custom heroes) applies to solo heroes and quest parties alike.

Hero catalog

The 15 core presets every install ships with. The synced roster adds 15 more specialists — Oracle, Navigator, Assassin, Diplomat, Mentalist, Merchant, Empath, Augur, Wordsmith, Herald, Treasurer, Visionary, Skeptic, Vizier, and Artificer — all browsable in the Library.

HeroRoleSTRINTWISDEXModel
WizardUI/UX6985Sonnet
WarriorDesigner8756Sonnet
RangerFrontend7768Sonnet
RogueBackend6877Sonnet
HealerContext Health39106Haiku
PaladinResearcher41075Opus
BardReviewer5894Sonnet
DruidPlanner7885Opus
WarlockSEO5768Sonnet
MonkQA6787Haiku
AlchemistFull Stack7777Sonnet
ScribeDocumentation4896Sonnet
DwarfDevOps7786Sonnet
SentinelSecurity6985Sonnet
SeekerDebugging7978Sonnet

Stats system

Each hero has four stats on a 1-10 scale. Stats are translated into behavioral modifiers that crystl injects into the agent’s system prompt. Higher stats produce stronger behavioral tendencies.

Strength

Governs persistence and willingness to tackle difficult problems head-on.

  • High (7-10): “You are highly persistent, tackle hard problems head-on, don’t give up easily on complex implementations”
  • Mid (4-6): balanced approach, persistent but willing to pivot when stuck
  • Low (1-3): prefers to delegate hard problems or break them into smaller pieces

A Warrior (STR 8) will push through a difficult refactor. A Healer (STR 3) will flag the problem and hand it off.

Intelligence

Governs depth of analysis, attention to edge cases, and ability to trace implications.

  • High (7-10): “You analyze deeply, consider edge cases, trace implications, think through failure modes before writing code”
  • Mid (4-6): balanced analysis, checks the obvious cases, moves on when confident
  • Low (1-3): focuses on the happy path, relies on tests to catch edge cases

A Paladin (INT 10) will research thoroughly before writing a line of code. A Warlock (INT 7) will analyze enough to be confident, then ship.

Wisdom

Governs judgment: knowing when to ask for clarification versus proceeding, when to stop and reconsider, and when a decision is final.

  • High (7-10): “You have strong judgment, know when to ask vs proceed, when to stop and reconsider, and when a decision is settled”
  • Mid (4-6): reasonable judgment, asks when clearly uncertain, proceeds when the path seems clear
  • Low (1-3): biased toward action, proceeds with assumptions rather than asking

A Healer (WIS 10) knows exactly when to intervene and when to let agents work. A Warrior (WIS 5) charges ahead and course-corrects later.

Dexterity

Governs speed and conciseness: how quickly the agent moves and how terse its communication is.

  • High (7-10): “You move fast, be concise, get to the point, prefer shipping over perfecting”
  • Mid (4-6): balanced pace, thorough but not slow
  • Low (1-3): methodical and deliberate, takes time to be precise

A Ranger (DEX 8) writes code quickly and communicates in short bursts. A Bard (DEX 4) takes time to write thorough review comments.

Model selection

Each hero is assigned a Claude model that matches its role:

Sonnet

The default for most heroes. Good balance of speed, capability, and cost. Used by Wizard, Warrior, Ranger, Rogue, Bard, Warlock, Alchemist, Scribe, Dwarf, Sentinel, and Seeker.

Opus

Assigned to heroes that need deep reasoning and research capabilities. Used by Paladin (Researcher) and Druid (Planner). Opus agents are slower but produce more thorough analysis.

Haiku

Assigned to lightweight, high-frequency roles. Used by Healer (Context Health) and Monk (QA). Haiku agents are fast and cheap, making them ideal for monitoring tasks and repetitive checks.

You can override the model for any hero: duplicate it into a custom hero on the Heroes settings page and set the model there.

Built-in heroes in detail

Wizard (UI/UX)

The Wizard focuses on interface design, user experience, and visual structure. High intelligence and wisdom make it thorough in analyzing design patterns and user flows. Moderate strength means it can handle implementation but prefers to plan first.

Warrior (Designer)

The Warrior is persistent and action-oriented. High strength means it pushes through implementation challenges. Lower wisdom means it tends to act first and adjust later, so it’s best paired with a Bard or Druid for review.

Ranger (Frontend)

The Ranger moves fast across the frontend codebase. High dexterity means concise code and quick iterations. Balanced stats make it a reliable all-around frontend agent.

Rogue (Backend)

The Rogue handles API routes, database queries, and server logic. High intelligence for tracing data flow and edge cases. Good dexterity for moving through backend tasks efficiently.

Healer (Context Health)

The Healer is a specialized monitoring agent. It does not write feature code. Instead, it watches the party’s context health and acts when agents approach their token limits.

When any agent drops below 50% context remaining, the Healer:

  1. Reads .crystl/quest/messages.jsonl and writes a compressed summary to QUEST-LOG.md
  2. Writes HANDOFF.md for agents near their limit: a concise briefing so a fresh session can pick up where they left off
  3. Updates DECISIONS.md with choices that have been settled, preventing agents from re-debating resolved topics
  4. Rewrites bloated files to save tokens where possible

The Healer runs on Haiku for speed and low cost. Its extreme wisdom (10) gives it strong judgment about when to intervene, and its high intelligence (9) lets it write effective compressed summaries.

Paladin (Researcher)

The Paladin runs on Opus and specializes in deep research. Highest intelligence of any hero (10). Use it when a quest involves unfamiliar APIs, complex architecture decisions, or when you need thorough analysis before implementation begins.

Bard (Reviewer)

The Bard reviews code written by other agents. High wisdom (9) means it knows which feedback matters and which is noise. Lower dexterity (4) means it takes its time: review comments are thorough, not rushed.

Druid (Planner)

The Druid runs on Opus and focuses on project planning and architecture. Balanced high stats across strength, intelligence, and wisdom make it effective at breaking down large tasks into agent-sized pieces.

Warlock (SEO)

The Warlock handles SEO-related tasks: meta tags, structured data, sitemap generation, and content optimization. High dexterity for moving quickly through repetitive SEO tasks across many pages.

Monk (QA)

The Monk runs on Haiku and focuses on testing. Writes unit tests, integration tests, and runs test suites. High wisdom (8) means it knows which tests matter most. Runs on Haiku for speed, since QA work often involves many small, repetitive tasks.

Alchemist (Full Stack)

The Alchemist works across the whole stack: wiring APIs to UI, setting up auth flows end to end, and filling the gaps the specialists miss. Balanced 7s across every stat make it the generalist of the party. Reach for it when you want one agent that can carry a feature from data layer to interface.

Scribe (Documentation)

The Scribe keeps READMEs, API docs, changelogs, and inline comments accurate as the code changes. High wisdom (9) means it deletes stale docs rather than letting them mislead, and writes short and scannable instead of padding for length.

Dwarf (DevOps)

The Dwarf owns CI/CD pipelines, Docker configs, deployment scripts, and environment management. High wisdom (8) shows in its distrust of manual steps: it automates everything that can be automated and catches infrastructure drift before it causes an incident.

Sentinel (Security)

The Sentinel audits code for vulnerabilities: injection, XSS, CSRF, auth bypasses, insecure defaults, and dependency risks. High intelligence (9) for thinking like an attacker; it reports findings with severity, reproduction steps, and suggested fixes, prioritized by actual risk.

Seeker (Debugging)

The Seeker tracks bugs to their source. It reproduces the failure first, isolates the cause with bisection and instrumentation, then fixes the root cause and adds the regression test that would have caught it. High intelligence (9) and dexterity (8) make it the core of the crystl gauntlet review crew, which summons two Seekers alongside a Monk and a Scribe.

Charters

Each built-in hero ships with a charter: a short worldview that says what the hero protects, what it challenges, and what it won’t compromise on. The charter is what makes heroes recognizable by behavior, not just job title. The rogue always simplifies. The bard always wants line-cited feedback. The monk always hunts the edge case. That tendency comes from the charter.

Here’s the rogue’s:

Protects: simplicity. Challenges: overengineering. Won’t compromise: shipping needless complexity or unguarded data and auth boundaries.

crystl injects the charter into the hero’s system prompt as its own labeled block, separate from the role instructions and stats. So when a rogue and a wizard land on the same task, they pull in different directions in a predictable way, and that friction is the point.

Charters work the same whether the hero is in a quest party or summoned solo as a hero shard.

Writing your own charter

When you create or edit a custom hero (see below), the editor has a scaffolded Charter field already laid out as Protects / Challenges / Won’t compromise. Fill in a line for each. Keep it short: it’s a worldview, not a spec. A docs-keeper might protect “the next developer’s understanding,” challenge “stale, jargon-heavy docs,” and refuse to compromise on “accurate, scannable docs.” Leave the field blank and the hero just runs on its role and stats, no charter block.

Custom heroes

Built-in heroes are immutable. You can’t edit one in place, and that’s on purpose: the defaults stay stock so a party always behaves the way the docs describe. When you want a tuned version, you duplicate and edit.

Open the Heroes settings page, find the built-in you like, and edit it. crystl makes a named custom hero, your own copy, instead of changing the original. Now you have both: the stock wizard and your sharper one. You can also start from scratch with + new in the Custom column.

A custom hero is global. It shows up in every project: quest parties, the solo hero shard picker, the crystl hero list CLI, and the GET /api/v1/heroes endpoint. Edit or remove it from the same Heroes page.

For each custom hero, configure:

  • Name: any name you want (doesn’t have to be RPG-themed)
  • Role: the functional role the agent fills
  • Stats: Strength, Intelligence, Wisdom, and Dexterity on a 1-10 scale
  • Model: Sonnet, Opus, or Haiku
  • Personality: free-text description that shapes communication style
  • Charter: the Protects / Challenges / Won’t compromise worldview (optional)
  • Instructions: additional context, constraints, or focus areas

Custom heroes work identically to built-in ones. The stats translate into the same behavioral modifiers, and the personality, charter, and instructions are injected into the system prompt alongside them.

When a custom hero and a built-in share a name, the custom one wins; a project-local hero committed to the repo wins over both. Full precedence: project-local > custom > built-in.

Upgrading from an older version? If you tweaked a built-in hero in place before this release, that edit is automatically migrated into a named custom hero on first launch, so nothing you changed is lost. The built-in goes back to stock and your tuned copy lives in the Custom column.