# AgentHarness v0.3.0 - Table of Contents

> Supervised Elixir sessions for coding-agent harnesses

## Pages

- [AgentHarness](readme.md)

- Guides
  - [Getting started](getting-started.md)
  - [Provider configuration](configuration.md)
  - [Driving AgentHarness from a GenServer](genserver-integration.md)
  - [Lifecycle, events, requests, and persistence](lifecycle-and-events.md)
  - [Architecture and concurrency](architecture.md)
  - [Writing an Exec implementation](writing-an-exec-implementation.md)
  - [Billing and authentication](billing-and-authentication.md)
  - [Testing](testing.md)

- Project
  - [Changelog](changelog.md)
  - [LICENSE](license.md)

## Modules

- [AgentHarness](AgentHarness.md): Supervised logical sessions for coding-agent harnesses.
- [AgentHarness.Capabilities](AgentHarness.Capabilities.md): Describes how a provider supports each harness feature.
- [AgentHarness.Event](AgentHarness.Event.md): A normalized event emitted during an agent session.
- [AgentHarness.Exec](AgentHarness.Exec.md): Behaviour for running a command in some execution environment.
- [AgentHarness.Exec.Local](AgentHarness.Exec.Local.md): `AgentHarness.Exec` implementation that runs the command as a local OS
process through an Erlang port.
- [AgentHarness.Provider](AgentHarness.Provider.md): Behaviour implemented by coding-agent provider adapters.
- [AgentHarness.Provider.Sink](AgentHarness.Provider.Sink.md): Authenticated mailbox destination used by a provider adapter.
- [AgentHarness.Providers.Claude](AgentHarness.Providers.Claude.md): Claude Code provider backed by the locally installed, authenticated CLI.
- [AgentHarness.Providers.Claude.Adapter.Exec](AgentHarness.Providers.Claude.Adapter.Exec.md): `ClaudeCode.Adapter` that runs the Claude Code CLI through an
`AgentHarness.Exec` implementation instead of a local port.
- [AgentHarness.Providers.Codex](AgentHarness.Providers.Codex.md): Provider adapter for a locally installed and authenticated Codex CLI.
- [AgentHarness.Providers.Codex.Client.Exec](AgentHarness.Providers.Codex.Client.Exec.md): Codex client that runs `codex app-server` through an `AgentHarness.Exec`
implementation instead of the SDK's subprocess transport.
- [AgentHarness.Providers.Codex.ExecConnection](AgentHarness.Providers.Codex.ExecConnection.md): App-server connection that runs `codex app-server` through an
`AgentHarness.Exec` implementation instead of the SDK's subprocess
transport.
- [AgentHarness.Providers.Pi](AgentHarness.Providers.Pi.md): Pi provider backed by the locally installed `pi` CLI.
- [AgentHarness.Providers.Pi.Client.Exec](AgentHarness.Providers.Pi.Client.Exec.md): Pi client that runs the CLI through an `AgentHarness.Exec` implementation
instead of a local port.
- [AgentHarness.Request](AgentHarness.Request.md): A structured question, permission, confirmation, or MCP elicitation.

- [AgentHarness.Response](AgentHarness.Response.md): A provider-neutral response to a structured agent request.

- [AgentHarness.SessionConfig](AgentHarness.SessionConfig.md): Immutable provider configuration belonging to one logical session.
- [AgentHarness.SessionRef](AgentHarness.SessionRef.md): Stable public reference to a supervised logical agent session.
- [AgentHarness.Store](AgentHarness.Store.md): Persistence boundary for logical agent-session state.
- [AgentHarness.Store.Memory](AgentHarness.Store.Memory.md): Supervised, process-owned in-memory implementation of `AgentHarness.Store`.
- [AgentHarness.Subscription](AgentHarness.Subscription.md): Handle for an event subscription.
- [AgentHarness.Turn](AgentHarness.Turn.md): One unit of work within a logical session.

- Exceptions
  - [AgentHarness.SessionDownError](AgentHarness.SessionDownError.md): Raised when an event stream loses its SessionServer before a terminal event.

  - [AgentHarness.StreamTimeoutError](AgentHarness.StreamTimeoutError.md): Raised when a turn stream receives no event within its configured timeout.

