# `Codex.Events`
[🔗](https://github.com/nshkrdotcom/codex_sdk/blob/v0.16.1/lib/codex/events.ex#L1)

Typed event structs emitted during Codex turn execution.

Provides helpers to parse JSON-decoded maps into strongly typed structs and to
convert structs back into protocol maps for encoding.

# `t`

```elixir
@type t() ::
  Codex.Events.ThreadStarted.t()
  | Codex.Events.ThreadStatusChanged.t()
  | Codex.Events.ThreadArchived.t()
  | Codex.Events.ThreadUnarchived.t()
  | Codex.Events.SkillsChanged.t()
  | Codex.Events.ThreadNameUpdated.t()
  | Codex.Events.TurnStarted.t()
  | Codex.Events.TurnContinuation.t()
  | Codex.Events.TurnCompleted.t()
  | Codex.Events.ThreadTokenUsageUpdated.t()
  | Codex.Events.TurnDiffUpdated.t()
  | Codex.Events.TurnPlanUpdated.t()
  | Codex.Events.TurnCompaction.t()
  | Codex.Events.ItemAgentMessageDelta.t()
  | Codex.Events.ItemInputTextDelta.t()
  | Codex.Events.ItemCompleted.t()
  | Codex.Events.ItemStarted.t()
  | Codex.Events.ItemUpdated.t()
  | Codex.Events.CommandOutputDelta.t()
  | Codex.Events.FileChangeOutputDelta.t()
  | Codex.Events.TerminalInteraction.t()
  | Codex.Events.ReasoningDelta.t()
  | Codex.Events.ReasoningSummaryDelta.t()
  | Codex.Events.ReasoningSummaryPartAdded.t()
  | Codex.Events.AppServerNotification.t()
  | Codex.Events.McpToolCallProgress.t()
  | Codex.Events.McpServerOauthLoginCompleted.t()
  | Codex.Events.McpServerStartupStatusUpdated.t()
  | Codex.Events.HookStarted.t()
  | Codex.Events.HookCompleted.t()
  | Codex.Events.AccountUpdated.t()
  | Codex.Events.AccountRateLimitsUpdated.t()
  | Codex.Events.AccountLoginCompleted.t()
  | Codex.Events.WindowsWorldWritableWarning.t()
  | Codex.Events.DeprecationNotice.t()
  | Codex.Events.AppListUpdated.t()
  | Codex.Events.ModelRerouted.t()
  | Codex.Events.FuzzyFileSearchSessionUpdated.t()
  | Codex.Events.FuzzyFileSearchSessionCompleted.t()
  | Codex.Events.ThreadRealtimeStarted.t()
  | Codex.Events.ThreadRealtimeItemAdded.t()
  | Codex.Events.ThreadRealtimeOutputAudioDelta.t()
  | Codex.Events.ThreadRealtimeError.t()
  | Codex.Events.ThreadRealtimeClosed.t()
  | Codex.Events.RawResponseItemCompleted.t()
  | Codex.Events.Error.t()
  | Codex.Events.TurnFailed.t()
  | Codex.Events.ToolCallRequested.t()
  | Codex.Events.ToolCallCompleted.t()
  | Codex.Events.SessionConfigured.t()
  | Codex.Events.Warning.t()
  | Codex.Events.ContextCompacted.t()
  | Codex.Events.ThreadRolledBack.t()
  | Codex.Events.RequestUserInput.t()
  | Codex.Events.McpElicitationRequested.t()
  | Codex.Events.CommandApprovalRequested.t()
  | Codex.Events.FileApprovalRequested.t()
  | Codex.Events.PermissionsApprovalRequested.t()
  | Codex.Events.GuardianApprovalReviewStarted.t()
  | Codex.Events.GuardianApprovalReviewCompleted.t()
  | Codex.Events.ServerRequestResolved.t()
  | Codex.Events.DynamicToolCallRequested.t()
  | Codex.Events.ChatgptAuthTokensRefreshRequested.t()
  | Codex.Events.McpStartupUpdate.t()
  | Codex.Events.McpStartupComplete.t()
  | Codex.Events.ElicitationRequest.t()
  | Codex.Events.UndoStarted.t()
  | Codex.Events.UndoCompleted.t()
  | Codex.Events.TurnAborted.t()
  | Codex.Events.ShutdownComplete.t()
  | Codex.Events.EnteredReviewMode.t()
  | Codex.Events.ExitedReviewMode.t()
  | Codex.Events.ConfigWarning.t()
  | Codex.Events.CollabAgentSpawnBegin.t()
  | Codex.Events.CollabAgentSpawnEnd.t()
  | Codex.Events.CollabAgentInteractionBegin.t()
  | Codex.Events.CollabAgentInteractionEnd.t()
  | Codex.Events.CollabWaitingBegin.t()
  | Codex.Events.CollabWaitingEnd.t()
  | Codex.Events.CollabCloseBegin.t()
  | Codex.Events.CollabCloseEnd.t()
  | Codex.Events.CollabResumeBegin.t()
  | Codex.Events.CollabResumeEnd.t()
```

# `parse!`

```elixir
@spec parse!(map()) :: t()
```

Parses a JSON-decoded map into a typed event struct, raising on unknown event types.

# `to_map`

```elixir
@spec to_map(t()) :: map()
```

Converts a typed event struct back into the JSON-serializable map representation.

---

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