# `Codex.AgentRunner`
[🔗](https://github.com/nshkrdotcom/codex_sdk/blob/v0.18.1/lib/codex/agent_runner.ex#L1)

Multi-turn runner that orchestrates agent execution over Codex threads.

# `get_handoffs`

```elixir
@spec get_handoffs(Codex.Agent.t(), map()) :: {:ok, [Codex.Handoff.t()]}
```

Resolves and filters handoffs configured on the agent, returning only enabled entries.

# `run`

```elixir
@spec run(Codex.Thread.t(), String.t() | [map()], map() | keyword()) ::
  {:ok, Codex.Turn.Result.t()} | {:error, term()}
```

# `run_streamed`

```elixir
@spec run_streamed(Codex.Thread.t(), String.t() | [map()], map() | keyword()) ::
  {:ok, Codex.RunResultStreaming.t()} | {:error, term()}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
