From 0d24339e75dac626513e4fa62e62b74351a7fa53 Mon Sep 17 00:00:00 2001 From: Dave Aitel Date: Fri, 6 Feb 2026 13:27:15 -0500 Subject: [PATCH] Add progress cursor flag --- codex-rs/exec/src/cli.rs | 4 ++++ codex-rs/exec/src/lib.rs | 13 +++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/codex-rs/exec/src/cli.rs b/codex-rs/exec/src/cli.rs index c27c39f010..9b77c33b7d 100644 --- a/codex-rs/exec/src/cli.rs +++ b/codex-rs/exec/src/cli.rs @@ -82,6 +82,10 @@ pub struct Cli { #[arg(long = "color", value_enum, default_value_t = Color::Auto)] pub color: Color, + /// Force cursor-based progress updates in exec mode. + #[arg(long = "progress-cursor", default_value_t = false)] + pub progress_cursor: bool, + /// Print events to stdout as JSONL. #[arg( long = "json", diff --git a/codex-rs/exec/src/lib.rs b/codex-rs/exec/src/lib.rs index f91add789d..13da3f3a06 100644 --- a/codex-rs/exec/src/lib.rs +++ b/codex-rs/exec/src/lib.rs @@ -112,6 +112,7 @@ pub async fn run_main(cli: Cli, codex_linux_sandbox_exe: Option) -> any prompt, output_schema: output_schema_path, config_overrides, + progress_cursor, } = cli; let (_stdout_with_ansi, stderr_with_ansi) = match color { @@ -122,10 +123,14 @@ pub async fn run_main(cli: Cli, codex_linux_sandbox_exe: Option) -> any supports_color::on_cached(Stream::Stderr).is_some(), ), }; - let cursor_ansi = match color { - cli::Color::Never => false, - cli::Color::Always => true, - cli::Color::Auto => stderr_with_ansi || std::io::stderr().is_terminal(), + let cursor_ansi = if progress_cursor { + true + } else { + match color { + cli::Color::Never => false, + cli::Color::Always => true, + cli::Color::Auto => stderr_with_ansi || std::io::stderr().is_terminal(), + } }; // Build fmt layer (existing logging) to compose with OTEL layer.