# Quest Chat Panel

> The chat interface for cross-agent messaging, DMs, and coordination.

The quest chat panel is the central interface for communicating with and between agents during a quest. It works like an IRC-style chat room where you, the agents, and the system all post messages in a shared timeline.

## Panel Layout

### Header

The top bar shows:

- **Quest icon** (crossed swords)
- **Mode label** — "open" or "sealed"
- **Gem name** — the project this quest belongs to
- **Mode badge** — a visual indicator of whether the quest is open or sealed

### Message Area

The scrollable main area displays all messages in chronological order. Messages auto-scroll to the bottom as new ones arrive. Scroll up to review history — auto-scroll pauses until you scroll back to the bottom.

### Sidebar

The sidebar has three tabs:

**Your Party** — Shows each agent in the quest with:

- **Hero name** and assigned color
- **Role** (e.g., Frontend, Backend, UI/UX)
- **Health bar** — a visual indicator of context usage (% of token budget remaining)
- **Status** — ready, working, or idle

**Tasks** — A live list of tasks created with `quest_task`. Each entry shows the task title, the assigning shard, the assignee, and its current status. Use this to track delegated work across the party without scrolling through the message log.

**Summaries** — A chronological feed of milestone summaries posted by agents via `quest_summary`. Each entry shows the shard name, timestamp, and digest. Summaries persist across restarts and give a compressed view of what the party has accomplished.

**DMs** — Lists active direct message channels between you and specific agents. Click a channel to view the DM conversation.

### Input Bar

The input bar at the bottom accepts messages. Type your message and press **Enter** to send. The placeholder text reads "message or @name to DM..." as a reminder that @mentions route messages to specific agents.

## Message Types

### Regular Messages

Standard messages from you or an agent. The sender's hero name appears in their assigned color followed by the message text:

```
wizard: I'll wireframe the storefront layout first.
ranger: Starting on the component structure now.
```

### System Messages

Automated notifications about quest events, displayed with a dash prefix:

```
— wizard has joined your party —
— rogue has joined your party —
```

### Action Messages

Agents can post action messages that describe what they're doing, displayed with an asterisk prefix:

```
* wizard is researching component libraries...
* rogue is setting up the API routes...
```

### Agent Colors

Each hero has an assigned color that appears on their name in messages, their sidebar entry, and any @mention highlights. Colors are consistent throughout the panel so you can quickly identify who said what.

## Channels

### #quest (Main Channel)

The default broadcast channel. All messages sent without an @mention go here. Every agent and you can see messages in #quest.

When you send a message to #quest, it's delivered to agents using [sequential delivery](/docs/quest-coordination) — one agent at a time, in priority order, waiting for each to finish before notifying the next.

### DM Channels

Direct message channels are created when you @mention a specific agent. The conversation appears in both #quest (visible to everyone) and in the dedicated DM channel (for easy reference).

Access DM channels from the **DMs** tab in the sidebar. Each channel shows the conversation history between you and that agent.

## @Mentions

Type `@` followed by a hero name to route a message:

- **@wizard** — Sends the message to Wizard only (appears in the DM channel)
- **@you** or **@me** — Triggers a floating notification to you, the human user. Agents use this to get your attention.
- **@all** — Broadcasts to every agent. Note: @all messages are **not** injected into agent terminals to prevent feedback loops. Agents see them in the quest message log.

Mentions are highlighted in the mentioned agent's assigned color. See [Quest Coordination](/docs/quest-coordination) for the full routing rules.

## Sidebar Details

### Context Health

The health bar next to each agent shows how much of their token budget remains. A full green bar means the agent has plenty of context. As it drops:

- **Green** — Above 70% remaining
- **Yellow** — 50-70% remaining
- **Red** — Below 50% remaining

When an agent drops below 50%, the [Healer](/docs/quest-heroes) (if present in the party) starts writing compressed summaries and handoff notes to preserve context.

### Agent Status

Each agent shows one of three statuses:

- **Ready** — The agent is online and waiting for instructions
- **Working** — The agent is actively executing a task
- **Idle** — The agent has finished its current task and is waiting

Status updates in real time based on hook activity detection.

## Keyboard Shortcuts

- **Enter** — Send the current message
- **Up Arrow** — Recall the last message you sent (for editing and resending)
- **Escape** — Close the quest panel (quest continues running in the background)

## Sounds

Quest sounds can be toggled in **Settings > crystl quest > Sounds**:

- **Join sound** — Plays when an agent joins the party
- **Send sound** — Plays when a message is delivered

## Related Docs

- [Crystl Quest](/docs/crystl-quest) — Overview of the quest system
- [Quest Coordination](/docs/quest-coordination) — Message delivery, routing, and the quest_msg protocol
- [Quest Heroes](/docs/quest-heroes) — Hero catalog and context health details
- [Starting a Quest](/docs/starting-a-quest) — Setup flow and party configuration

---
Source: https://crystl.dev/docs/quest-chat/
