← All @molecule/* packages · App templates

@molecule/api-agent-transcript-codex

Provider bond · agent-transcript · API (Node) · v1.0.0 · Apache-2.0

Reads Codex CLI sessions — the Markdown export and the rollout .jsonl — into a normalized agent session

npm install @molecule/api-agent-transcript-codex

npm · Source on GitHub · Implements @molecule/api-agent-transcript

How it works

@molecule/api-agent-transcript-codex is a provider bond on the API (Node) side: it implements the agent-transcript core interface (@molecule/api-agent-transcript) with a concrete vendor or library behind it.

Your code calls the core; you wire this provider once at startup. Swapping vendors later is one line in that wiring, not a rewrite.

import { readFileSync } from 'node:fs'
import { readTranscript, setProvider } from '@molecule/api-agent-transcript'
import { provider } from '@molecule/api-agent-transcript-codex'

setProvider(provider)
const session = readTranscript({
  text: readFileSync('codex-session.md', 'utf8'),
  fileName: 'codex-session.md',
})

Works with: @molecule/api-agent-transcript

Reference

Auto-generated, AI-first package reference for the molecule.dev ecosystem. It is written to be read by coding agents as much as by people, and is generated from this package's source — edit src/index.ts JSDoc, not this file.

Codex CLI transcript reader for @molecule/api-agent-transcript.

Reads both forms of a Codex CLI session into a normalized AgentSession: the rollout log Codex keeps at ~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl (per-turn model, timestamps, and every file its apply_patch wrote), and the Markdown file its /export → "Save to file" writes (# Codex conversation, then ## User / ## Assistant / ## Activity sections).

Quick Start

import { readFileSync } from 'node:fs'
import { readTranscript, setProvider } from '@molecule/api-agent-transcript'
import { provider } from '@molecule/api-agent-transcript-codex'

setProvider(provider)
const session = readTranscript({
  text: readFileSync('codex-session.md', 'utf8'),
  fileName: 'codex-session.md',
})

Type

provider

Installation

npm install @molecule/api-agent-transcript-codex @molecule/api-agent-transcript

API

Functions

findPatches(input)

Every patch in a tool call's input, whether the input is the raw patch, a JSON arguments object, or source code that passes the patch as a string.

function findPatches(input: string): string[]
  • input — The tool call's input or arguments string.

Returns: The patch texts, in order.

looksLikeMarkdownExport(text)

Whether a text is a Codex Markdown export.

function looksLikeMarkdownExport(text: string): boolean
  • text — The file's text.

Returns: True when it opens with the export's title and has a role section.

looksLikeRollout(text)

Whether a text is a Codex rollout.

function looksLikeRollout(text: string): boolean
  • text — The file's text.

Returns: True when its first JSON line is a session_meta record.

readMarkdownExport(text)

Read a Codex Markdown export.

function readMarkdownExport(text: string): AgentSession
  • text — The export's text.

Returns: The normalized session.

readRollout(text)

Read a Codex rollout.

function readRollout(text: string): AgentSession
  • text — The .jsonl text.

Returns: The normalized session.

writesOfPatch(patch)

The files a patch writes: an added file's whole text, an updated file's added lines.

function writesOfPatch(patch: string): AgentFileWrite[]
  • patch — One *** Begin Patch … *** End Patch block.

Returns: The writes.

Constants

provider

Reads Codex CLI sessions: the rollout log (.jsonl) and the Markdown export.

const provider: AgentTranscriptReader

Core Interface

Implements @molecule/api-agent-transcript interface.

Bond Wiring

Setup function to register this provider with the core interface:

import { setProvider } from '@molecule/api-agent-transcript'
import { provider } from '@molecule/api-agent-transcript-codex'

export function setupAgentTranscriptCodex(): void {
  setProvider(provider)
}

Injection Notes

Requirements

Peer dependencies:

  • @molecule/api-agent-transcript ^1.0.0

Runtime Dependencies

  • @molecule/api-agent-transcript

  • The Markdown export names no model and no times; the rollout does (turn_context.model, per-line timestamps). Use the rollout when a per-paragraph model matters.

  • Only the section headers ## User, ## Assistant and ## Activity split the export; the assistant's own ## headings stay part of its reply.

  • Dropped from user turns: the context Codex injects as whole-tag blocks (<environment_context>, <user_instructions> …) and developer messages.

  • Files: an Add (export) / *** Add File (patch) is the whole file; an Update contributes the lines it added. Patches are found wherever the call carries them — a raw apply_patch input, JSON arguments, or the string passed to tools.apply_patch(...) in code mode.

  • Verified against Codex CLI 0.156.1's own files.