# ClaudeWrapper v0.12.0 - Table of Contents

> Elixir wrapper for the Claude Code CLI

## Pages

- [ClaudeWrapper](readme.md)
- [Changelog](changelog.md)

## Modules

- [ClaudeWrapper.Agents.Definition](ClaudeWrapper.Agents.Definition.md): Full agent definition returned by `ClaudeWrapper.Agents.get/2`.
- [ClaudeWrapper.Agents.Summary](ClaudeWrapper.Agents.Summary.md): Lightweight metadata for one agent definition, returned by
`ClaudeWrapper.Agents.list/1`.
- [ClaudeWrapper.Auth.Summary](ClaudeWrapper.Auth.Summary.md): Snapshot of auth-relevant environment state.
- [ClaudeWrapper.History.ProjectSummary](ClaudeWrapper.History.ProjectSummary.md): Summary of one project directory under the history root.
- [ClaudeWrapper.History.SessionLog](ClaudeWrapper.History.SessionLog.md): A fully parsed session: an ordered list of `t:ClaudeWrapper.History.entry/0`.

- [ClaudeWrapper.History.SessionSummary](ClaudeWrapper.History.SessionSummary.md): Summary of one session `.jsonl` file.
- [ClaudeWrapper.Jobs.Event](ClaudeWrapper.Jobs.Event.md): One timeline event from a job's `timeline.jsonl`.
- [ClaudeWrapper.Jobs.Job](ClaudeWrapper.Jobs.Job.md): Full job record returned by `ClaudeWrapper.Jobs.get/2`.
- [ClaudeWrapper.Jobs.Summary](ClaudeWrapper.Jobs.Summary.md): Cheap metadata view of one background job, returned by
`ClaudeWrapper.Jobs.list/1`. Stripped of the timeline.
- [ClaudeWrapper.Skills.Skill](ClaudeWrapper.Skills.Skill.md): Full skill record returned by `ClaudeWrapper.Skills.get/2`.
- [ClaudeWrapper.Skills.Summary](ClaudeWrapper.Skills.Summary.md): Lightweight metadata for one skill, returned by
`ClaudeWrapper.Skills.list/1`.
- [ClaudeWrapper.Worktrees.Worktree](ClaudeWrapper.Worktrees.Worktree.md): One git worktree as reported by `git worktree list --porcelain`.

- Driving claude
  - [ClaudeWrapper](ClaudeWrapper.md): Elixir wrapper for the Claude Code CLI.
  - [ClaudeWrapper.Conversation](ClaudeWrapper.Conversation.md): Host-side bookkeeping wrapper over a `ClaudeWrapper.DuplexSession`.
  - [ClaudeWrapper.DuplexIEx](ClaudeWrapper.DuplexIEx.md): Interactive helpers for driving `ClaudeWrapper.DuplexSession` from IEx.
  - [ClaudeWrapper.DuplexSession](ClaudeWrapper.DuplexSession.md): Long-lived `claude` session over the CLI's stream-json duplex protocol.
  - [ClaudeWrapper.IEx](ClaudeWrapper.IEx.md): Interactive helpers for conversational use in IEx.
  - [ClaudeWrapper.Query](ClaudeWrapper.Query.md): Query command -- the primary interface for executing prompts.
  - [ClaudeWrapper.Session](ClaudeWrapper.Session.md): Multi-turn session management.
  - [ClaudeWrapper.SessionServer](ClaudeWrapper.SessionServer.md): GenServer wrapper for long-running multi-turn sessions.

- Prompt building &amp; structured output
  - [ClaudeWrapper.Prompt](ClaudeWrapper.Prompt.md): Composable prompt builder with deferred file / git expansion.
  - [ClaudeWrapper.Stream](ClaudeWrapper.Stream.md): Lazy `Stream` combinators over a `ClaudeWrapper.DuplexSession` turn.
  - [ClaudeWrapper.Structured](ClaudeWrapper.Structured.md): Run a Claude call as a typed function.

- Config, results, support
  - [ClaudeWrapper.Auth](ClaudeWrapper.Auth.md): Detect which auth strategy the Claude Code CLI will use, and classify
auth-related CLI failures.
  - [ClaudeWrapper.Budget](ClaudeWrapper.Budget.md): Cumulative USD budget tracker with threshold callbacks.
  - [ClaudeWrapper.Bundled](ClaudeWrapper.Bundled.md): Opt-in bundled-binary resolution for the `claude` CLI.
  - [ClaudeWrapper.CliVersion](ClaudeWrapper.CliVersion.md): Parse and compare the `claude` CLI's reported version.
  - [ClaudeWrapper.Config](ClaudeWrapper.Config.md): Shared client configuration for the Claude CLI.
  - [ClaudeWrapper.DangerousClient](ClaudeWrapper.DangerousClient.md): Opt-in wrapper for permission-bypass queries.
  - [ClaudeWrapper.Error](ClaudeWrapper.Error.md): Canonical error type for ClaudeWrapper.
  - [ClaudeWrapper.McpConfig](ClaudeWrapper.McpConfig.md): Programmatic builder for `.mcp.json` configuration files.
  - [ClaudeWrapper.Result](ClaudeWrapper.Result.md): Result from a completed query execution.
  - [ClaudeWrapper.Retry](ClaudeWrapper.Retry.md): Retry policy with exponential backoff for query execution.
  - [ClaudeWrapper.StreamEvent](ClaudeWrapper.StreamEvent.md): A single event from the Claude CLI's NDJSON streaming output.
  - [ClaudeWrapper.Telemetry](ClaudeWrapper.Telemetry.md): `:telemetry` events emitted by ClaudeWrapper.
  - [ClaudeWrapper.Test](ClaudeWrapper.Test.md): Drive a `ClaudeWrapper.DuplexSession` against an in-process double, with
no `claude` binary and no network.
  - [ClaudeWrapper.ToolPattern](ClaudeWrapper.ToolPattern.md): Tool permission patterns for `--allowed-tools` / `--disallowed-tools`.

- Subprocess execution
  - [ClaudeWrapper.Runner](ClaudeWrapper.Runner.md): How `claude` subprocesses are executed.
  - [ClaudeWrapper.Runner.Forcola](ClaudeWrapper.Runner.Forcola.md): Leak-free runner backed by [forcola](https://hex.pm/packages/forcola).
  - [ClaudeWrapper.Runner.Port](ClaudeWrapper.Runner.Port.md): Default runner: `System.cmd/3` for one-shot calls and a `/bin/sh`
`Port` for NDJSON streaming.

- DuplexSession transport adapter
  - [ClaudeWrapper.DuplexSession.Adapter](ClaudeWrapper.DuplexSession.Adapter.md): Transport seam for `ClaudeWrapper.DuplexSession`.
  - [ClaudeWrapper.DuplexSession.Adapter.Forcola](ClaudeWrapper.DuplexSession.Adapter.Forcola.md): Leak-free `ClaudeWrapper.DuplexSession` transport backed by
`Forcola.Duplex`.
  - [ClaudeWrapper.DuplexSession.Adapter.Port](ClaudeWrapper.DuplexSession.Adapter.Port.md): Default `ClaudeWrapper.DuplexSession.Adapter`: a real `claude`
subprocess over an Erlang port.
  - [ClaudeWrapper.DuplexSession.Adapter.Test](ClaudeWrapper.DuplexSession.Adapter.Test.md): In-process test double for `ClaudeWrapper.DuplexSession.Adapter`.

- Read-side introspection of ~/.claude
  - [ClaudeWrapper.Agents](ClaudeWrapper.Agents.md): File-backed read/write access to Claude Code's on-disk **agent**
definitions.
  - [ClaudeWrapper.History](ClaudeWrapper.History.md): Read-side access to Claude Code's on-disk session history.
  - [ClaudeWrapper.Jobs](ClaudeWrapper.Jobs.md): Read-side access to Claude Code's on-disk **background-job** state.
  - [ClaudeWrapper.Settings](ClaudeWrapper.Settings.md): Read-side access to Claude Code's on-disk **settings** files.
  - [ClaudeWrapper.Skills](ClaudeWrapper.Skills.md): Read-side access to Claude Code's on-disk **skill** definitions.
  - [ClaudeWrapper.Worktrees](ClaudeWrapper.Worktrees.md): Read-side introspection for git worktrees.

- Command surface
  - [ClaudeWrapper.Command](ClaudeWrapper.Command.md): Behaviour for CLI commands.
  - [ClaudeWrapper.Commands.Agents](ClaudeWrapper.Commands.Agents.md): `claude agents` command -- lists configured agents.
  - [ClaudeWrapper.Commands.Auth](ClaudeWrapper.Commands.Auth.md): Authentication commands -- login, logout, status, token setup.

  - [ClaudeWrapper.Commands.AutoMode](ClaudeWrapper.Commands.AutoMode.md): Auto-mode classifier inspection commands.
  - [ClaudeWrapper.Commands.Doctor](ClaudeWrapper.Commands.Doctor.md): `claude doctor` command -- checks CLI health.

  - [ClaudeWrapper.Commands.Install](ClaudeWrapper.Commands.Install.md): Install a Claude Code native build.
  - [ClaudeWrapper.Commands.Marketplace](ClaudeWrapper.Commands.Marketplace.md): Plugin marketplace management commands.
  - [ClaudeWrapper.Commands.Mcp](ClaudeWrapper.Commands.Mcp.md): MCP (Model Context Protocol) server management commands.
  - [ClaudeWrapper.Commands.Plugin](ClaudeWrapper.Commands.Plugin.md): Plugin management commands.
  - [ClaudeWrapper.Commands.Project](ClaudeWrapper.Commands.Project.md): Project state management commands.
  - [ClaudeWrapper.Commands.Ultrareview](ClaudeWrapper.Commands.Ultrareview.md): `claude ultrareview` -- cloud-hosted multi-agent code review.
  - [ClaudeWrapper.Commands.Update](ClaudeWrapper.Commands.Update.md): Check for CLI updates and install if available.
  - [ClaudeWrapper.Commands.Version](ClaudeWrapper.Commands.Version.md): `claude --version` command.

## Mix Tasks

- [mix claude_wrapper.install](Mix.Tasks.ClaudeWrapper.Install.md): Install the opt-in bundled `claude` CLI, pinned to
`ClaudeWrapper.Bundled.pinned_version/0`, into the package's `priv/bin/`.
- [mix claude_wrapper.path](Mix.Tasks.ClaudeWrapper.Path.md): Print where the opt-in bundled `claude` binary lives, and whether it is
installed.
- [mix claude_wrapper.uninstall](Mix.Tasks.ClaudeWrapper.Uninstall.md): Remove the opt-in bundled `claude` binary installed by
`mix claude_wrapper.install`.

