---
title: "Session Event Coverage"
description: "What appears in your session transcript for each agent."
icon: "table"
---

Each coding agent outputs events in its own native format. The sandbox-agent converts these into a [universal event schema](/docs/universal-schema), giving you a consistent session transcript regardless of which agent you use.

This page shows which agent capabilities appear in the universal event stream. All agents retain their full native capabilities—this only reflects what's normalized into the universal schema.

## Coverage Matrix

| Feature            | Claude | Codex | OpenCode     | Amp          |
|--------------------|:------:|:-----:|:------------:|:------------:|
| Stability          | Stable | Stable| Experimental | Experimental |
| Text Messages      |   ✓    |   ✓   |      ✓       |      ✓       |
| Tool Calls         |   ✓    |   ✓   |      ✓       |      ✓       |
| Tool Results       |   ✓    |   ✓   |      ✓       |      ✓       |
| Questions (HITL)   |   ✓    |       |      ✓       |              |
| Permissions (HITL) |   ✓    |   ✓   |      ✓       |      -       |
| Images             |   -    |   ✓   |      ✓       |      -       |
| File Attachments   |   -    |   ✓   |      ✓       |      -       |
| Session Lifecycle  |   -    |   ✓   |      ✓       |      -       |
| Error Events       |   -    |   ✓   |      ✓       |      ✓       |
| Reasoning/Thinking |   -    |   ✓   |      -       |      -       |
| Command Execution  |   -    |   ✓   |      -       |      -       |
| File Changes       |   -    |   ✓   |      -       |      -       |
| MCP Tools          |   -    |   ✓   |      -       |      -       |
| Streaming Deltas   |   ✓    |   ✓   |      ✓       |      -       |

Agents: [Claude Code](https://docs.anthropic.com/en/docs/agents-and-tools/claude-code/overview) · [Codex](https://github.com/openai/codex) · [OpenCode](https://github.com/opencode-ai/opencode) · [Amp](https://ampcode.com)

- ✓ = Appears in session events
- \- = Agent supports natively, schema conversion coming soon
- (blank) = Not supported by agent

## Feature Descriptions

### Text Messages

Basic message exchange between user and assistant.

### Tool Calls & Results

Visibility into tool invocations (file reads, command execution, etc.) and their results. When not natively supported, tool activity is embedded in message content.

### Questions (HITL)

Interactive questions the agent asks the user. Emits `question.requested` and `question.resolved` events.

### Permissions (HITL)

Permission requests for sensitive operations. Emits `permission.requested` and `permission.resolved` events.

### Images

Support for image attachments in messages.

### File Attachments

Support for file attachments in messages.

### Session Lifecycle

Native `session.started` and `session.ended` events. When not supported, the daemon emits synthetic lifecycle events.

### Error Events

Structured error events for runtime failures.

### Reasoning/Thinking

Extended thinking or reasoning content with visibility controls.

### Command Execution

Detailed command execution events with stdout/stderr.

### File Changes

Structured file modification events with diffs.

### MCP Tools

Model Context Protocol tool support.

### Streaming Deltas

Native streaming of content deltas. When not supported, the daemon emits a single synthetic delta before `item.completed`.

## Synthetic Events

For features not natively supported, the daemon generates synthetic events to maintain a consistent event stream. Synthetic events have:

- `source: "daemon"`
- `synthetic: true`

This lets you build UIs that work with any agent without special-casing each provider.

## Request Support

Want support for another agent? [Open an issue](https://github.com/rivet-dev/sandbox-agent/issues/new) to request it.
