pub enum ThreadItem {
UserMessage(UserMessageItem),
AgentMessage(AgentMessageItem),
Reasoning(ReasoningItem),
CommandExecution(CommandExecutionItem),
FileChange(FileChangeItem),
McpToolCall(McpToolCallItem),
WebSearch(WebSearchItem),
TodoList(TodoListItem),
Error(ErrorItem),
}Expand description
All possible thread item types emitted by the Codex CLI.
Items are the core building blocks of a turn. Each variant represents
a different kind of work the agent performed. Items arrive via
item/started and item/completed notifications and are collected
in the final Turn.
Accepts both snake_case (agent_message) and camelCase (agentMessage)
type tags for compatibility with the exec and app-server protocols.
Variants§
UserMessage(UserMessageItem)
The user’s prompt for the turn (app-server protocol only).
AgentMessage(AgentMessageItem)
Text output from the agent.
Reasoning(ReasoningItem)
Chain-of-thought reasoning from the model.
CommandExecution(CommandExecutionItem)
A shell command the agent executed.
FileChange(FileChangeItem)
File modifications the agent applied.
McpToolCall(McpToolCallItem)
An MCP tool call to an external server.
WebSearch(WebSearchItem)
A web search the agent performed.
TodoList(TodoListItem)
A todo list the agent maintains.
Error(ErrorItem)
An error that occurred during processing.
Trait Implementations§
Source§impl Clone for ThreadItem
impl Clone for ThreadItem
Source§fn clone(&self) -> ThreadItem
fn clone(&self) -> ThreadItem
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ThreadItem
impl Debug for ThreadItem
Source§impl<'de> Deserialize<'de> for ThreadItem
impl<'de> Deserialize<'de> for ThreadItem
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for ThreadItem
impl PartialEq for ThreadItem
Source§fn eq(&self, other: &ThreadItem) -> bool
fn eq(&self, other: &ThreadItem) -> bool
self and other values to be equal, and is used by ==.