Skip to content

[TypeScript SDK] Expose hardened execution controls for automation #34802

Description

@jonathan-vividata

What feature would you like to see?

Please expose a lower-level hardened execution surface in @openai/codex-sdk, or first-class thread options that provide these equivalent controls before codex exec starts:

  • ignore ambient user configuration and exec-policy rules, equivalent to --ignore-user-config and --ignore-rules;
  • bound each stdout JSONL record and retained stderr output, while reporting when bytes or records were discarded; and
  • expose the spawned child/process-group lifecycle so an aborting automation host can terminate and await the complete descendant process tree.

The separate ephemeral-session gap is already tracked in #34760.

Config overrides and a controlled environment are useful but do not replace the first requirement: they cannot stop ambient files from being loaded before overrides apply. Likewise, an AbortSignal that kills only the direct child does not guarantee cleanup when tool commands have spawned descendants.

A possible API could be one of:

  1. explicit ThreadOptions for the isolation flags plus bounded diagnostic callbacks and a process-tree-aware abort contract; or
  2. a documented low-level execution hook that receives the fully constructed invocation and child handle while the SDK continues to own protocol compatibility.

Why is this useful?

Long-running CI and agent-harness services need stronger guarantees than an interactive client:

  • host config or approval rules must not silently change a supposedly pinned run;
  • a hostile or accidental multi-megabyte JSONL/stderr record must not grow memory without limit;
  • telemetry consumers must be able to mark results incomplete when stream data was dropped instead of guessing; and
  • timeout, cancellation, and shutdown must not leave tool subprocesses running after the SDK call ends.

Without these hooks, automation either accepts weaker isolation/resource guarantees or maintains a parallel CLI/protocol/process wrapper. The SDK already covers typed events, output schemas, controlled environments, config overrides, and custom executable selection; these lifecycle controls are the remaining gap for adopting it as the sole invocation boundary.

Additional context

Re-evaluated against @openai/codex-sdk 0.145.0 on 2026-07-22. A migration contract can be validated with tests that assert ambient config/rules are bypassed, oversized diagnostic records are bounded and observable, and aborting the SDK invocation kills a spawned grandchild process.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    CLIIssues related to the Codex CLIenhancementNew feature or requestexecIssues related to the `codex exec` subcommand

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions