pub struct Thread {Show 23 fields
pub agent_nickname: Option<String>,
pub agent_role: Option<String>,
pub cli_version: String,
pub created_at: i64,
pub cwd: AbsolutePathBuf,
pub ephemeral: bool,
pub extra: Option<ThreadExtra>,
pub forked_from_id: Option<String>,
pub git_info: Option<GitInfo>,
pub history_mode: ThreadHistoryMode,
pub id: String,
pub model_provider: String,
pub name: Option<String>,
pub parent_thread_id: Option<String>,
pub path: Option<String>,
pub preview: String,
pub recency_at: Option<i64>,
pub session_id: String,
pub source: SessionSource,
pub status: ThreadStatus,
pub thread_source: Option<ThreadSource>,
pub turns: Vec<Turn>,
pub updated_at: i64,
}Expand description
Thread
JSON schema
{
"type": "object",
"required": [
"cliVersion",
"createdAt",
"cwd",
"ephemeral",
"id",
"modelProvider",
"preview",
"sessionId",
"source",
"status",
"turns",
"updatedAt"
],
"properties": {
"agentNickname": {
"description": "Optional random unique nickname assigned to an AgentControl-spawned sub-agent.",
"type": [
"string",
"null"
]
},
"agentRole": {
"description": "Optional role (agent_role) assigned to an AgentControl-spawned sub-agent.",
"type": [
"string",
"null"
]
},
"cliVersion": {
"description": "Version of the CLI that created the thread.",
"type": "string"
},
"createdAt": {
"description": "Unix timestamp (in seconds) when the thread was created.",
"type": "integer",
"format": "int64"
},
"cwd": {
"description": "Working directory captured for the thread.",
"allOf": [
{
"$ref": "#/definitions/AbsolutePathBuf"
}
]
},
"ephemeral": {
"description": "Whether the thread is ephemeral and should not be materialized on disk.",
"type": "boolean"
},
"extra": {
"description": "Optional implementation-specific thread data.",
"anyOf": [
{
"$ref": "#/definitions/ThreadExtra"
},
{
"type": "null"
}
]
},
"forkedFromId": {
"description": "Source thread id when this thread was created by forking another thread.",
"type": [
"string",
"null"
]
},
"gitInfo": {
"description": "Optional Git metadata captured when the thread was created.",
"anyOf": [
{
"$ref": "#/definitions/GitInfo"
},
{
"type": "null"
}
]
},
"historyMode": {
"description": "Persisted thread history contract selected when this thread was created.",
"default": "legacy",
"allOf": [
{
"$ref": "#/definitions/ThreadHistoryMode"
}
]
},
"id": {
"description": "Identifier for this thread. Codex-generated thread IDs are UUIDv7.",
"type": "string"
},
"modelProvider": {
"description": "Model provider used for this thread (for example, 'openai').",
"type": "string"
},
"name": {
"description": "Optional user-facing thread title.",
"type": [
"string",
"null"
]
},
"parentThreadId": {
"description": "The ID of the parent thread. This will only be set if this thread is a subagent.",
"type": [
"string",
"null"
]
},
"path": {
"description": "[UNSTABLE] Path to the thread on disk.",
"type": [
"string",
"null"
]
},
"preview": {
"description": "Usually the first user message in the thread, if available.",
"type": "string"
},
"recencyAt": {
"description": "Unix timestamp (in seconds) used for thread recency ordering.",
"type": [
"integer",
"null"
],
"format": "int64"
},
"sessionId": {
"description": "Session id shared by threads that belong to the same session tree.",
"type": "string"
},
"source": {
"description": "Origin of the thread (CLI, VSCode, codex exec, codex app-server, etc.).",
"allOf": [
{
"$ref": "#/definitions/SessionSource"
}
]
},
"status": {
"description": "Current runtime status for the thread.",
"allOf": [
{
"$ref": "#/definitions/ThreadStatus"
}
]
},
"threadSource": {
"description": "Optional analytics source classification for this thread.",
"anyOf": [
{
"$ref": "#/definitions/ThreadSource"
},
{
"type": "null"
}
]
},
"turns": {
"description": "Only populated on `thread/resume`, `thread/rollback`, `thread/fork`, and `thread/read` (when `includeTurns` is true) responses. For all other responses and notifications returning a Thread, the turns field will be an empty list.",
"type": "array",
"items": {
"$ref": "#/definitions/Turn"
}
},
"updatedAt": {
"description": "Unix timestamp (in seconds) when the thread was last updated.",
"type": "integer",
"format": "int64"
}
}
}Fields§
§agent_nickname: Option<String>Optional random unique nickname assigned to an AgentControl-spawned sub-agent.
agent_role: Option<String>Optional role (agent_role) assigned to an AgentControl-spawned sub-agent.
cli_version: StringVersion of the CLI that created the thread.
created_at: i64Unix timestamp (in seconds) when the thread was created.
cwd: AbsolutePathBufWorking directory captured for the thread.
ephemeral: boolWhether the thread is ephemeral and should not be materialized on disk.
extra: Option<ThreadExtra>Optional implementation-specific thread data.
forked_from_id: Option<String>Source thread id when this thread was created by forking another thread.
git_info: Option<GitInfo>Optional Git metadata captured when the thread was created.
history_mode: ThreadHistoryModePersisted thread history contract selected when this thread was created.
id: StringIdentifier for this thread. Codex-generated thread IDs are UUIDv7.
model_provider: StringModel provider used for this thread (for example, ‘openai’).
name: Option<String>Optional user-facing thread title.
parent_thread_id: Option<String>The ID of the parent thread. This will only be set if this thread is a subagent.
path: Option<String>[UNSTABLE] Path to the thread on disk.
preview: StringUsually the first user message in the thread, if available.
recency_at: Option<i64>Unix timestamp (in seconds) used for thread recency ordering.
session_id: StringSession id shared by threads that belong to the same session tree.
source: SessionSourceOrigin of the thread (CLI, VSCode, codex exec, codex app-server, etc.).
status: ThreadStatusCurrent runtime status for the thread.
thread_source: Option<ThreadSource>Optional analytics source classification for this thread.
turns: Vec<Turn>Only populated on thread/resume, thread/rollback, thread/fork, and thread/read (when includeTurns is true) responses. For all other responses and notifications returning a Thread, the turns field will be an empty list.
updated_at: i64Unix timestamp (in seconds) when the thread was last updated.