Skip to content

Adding codex cli support #330

@akshan-main

Description

@akshan-main

Problem or use case

following with the new contributing.md

From my research, Codex already emits a JSONL event stream (thread/turn/item/error events), which seems like the cleanest integration surface to start with.

Proposed scope for an initial PR: support non-interactive runs via codex exec --json.

If we can ingest that stream and write it into the existing session/checkpoint format, we get real value without needing interactive hook support. (Codex stores local state under CODEX_HOME if we ever need to reference per-session artifacts.)

Steps:
Add entire codex exec -- <codex args/prompt> that runs codex exec --json ...
Stream-parse JSONL, ignore unknown event types, and persist:
normalized session/checkpoint data (same place/branch as other agents)
raw JSONL as an artifact for debugging and future mapping improvements
Will include tests

Caveat: This is for non-interactive codex exec flow only (not interactive TUI hooks).

Desired behavior

$ entire codex exec [flags] -- with --model and --sandbox flags

Proposed solution

Use wrapper command (entire codex exec) rather than hooks. The wrapper runs codex exec --json, tees the JSONL event stream to capture it, then creates a checkpoint through the existing strategy.SaveChanges() pipeline.

Register a codexcli agent package following the same pattern as claudecode and geminicli (self-registration via init(), full Agent interface, TranscriptAnalyzer, TranscriptChunker)

Streaming JSONL parser that extracts thread ID, messages, commands, file changes, and token usage, make it tolerant of unknown event types, so it won't break when Codex adds new ones

entire codex exec [flags] -- with --model and --sandbox flags
Uses the shared DetectFileChanges, FilterAndNormalizePaths, cleanPromptForCommit, and GetGitAuthor, no new abstractions

Alternatives or workarounds

No response

Looking for maintainer response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions