diff --git a/codex-rs/exec/src/cli.rs b/codex-rs/exec/src/cli.rs index 7f3563370a..d9d577ebe6 100644 --- a/codex-rs/exec/src/cli.rs +++ b/codex-rs/exec/src/cli.rs @@ -22,6 +22,15 @@ pub struct Cli { #[arg(long = "full-auto", default_value_t = false)] pub full_auto: bool, + /// Skip all confirmation prompts and execute commands without sandboxing. + /// EXTREMELY DANGEROUS. Intended solely for running in environments that are externally sandboxed. + #[arg( + long = "dangerously-bypass-approvals-and-sandbox", + default_value_t = false, + conflicts_with = "full_auto" + )] + pub dangerously_bypass_approvals_and_sandbox: bool, + /// Tell the agent to use the specified directory as its working root. #[clap(long = "cd", short = 'C', value_name = "DIR")] pub cwd: Option, diff --git a/codex-rs/exec/src/lib.rs b/codex-rs/exec/src/lib.rs index bd59e117a2..8603a753d9 100644 --- a/codex-rs/exec/src/lib.rs +++ b/codex-rs/exec/src/lib.rs @@ -31,6 +31,7 @@ pub async fn run_main(cli: Cli, codex_linux_sandbox_exe: Option) -> any model, config_profile, full_auto, + dangerously_bypass_approvals_and_sandbox, cwd, skip_git_repo_check, color, @@ -85,6 +86,8 @@ pub async fn run_main(cli: Cli, codex_linux_sandbox_exe: Option) -> any let sandbox_policy = if full_auto { Some(SandboxPolicy::new_workspace_write_policy()) + } else if dangerously_bypass_approvals_and_sandbox { + Some(SandboxPolicy::DangerFullAccess) } else { None }; diff --git a/codex-rs/tui/src/cli.rs b/codex-rs/tui/src/cli.rs index 7e5a8175e9..cb6bb92318 100644 --- a/codex-rs/tui/src/cli.rs +++ b/codex-rs/tui/src/cli.rs @@ -29,6 +29,15 @@ pub struct Cli { #[arg(long = "full-auto", default_value_t = false)] pub full_auto: bool, + /// Skip all confirmation prompts and execute commands without sandboxing. + /// EXTREMELY DANGEROUS. Intended solely for running in environments that are externally sandboxed. + #[arg( + long = "dangerously-bypass-approvals-and-sandbox", + default_value_t = false, + conflicts_with_all = ["approval_policy", "full_auto"] + )] + pub dangerously_bypass_approvals_and_sandbox: bool, + /// Tell the agent to use the specified directory as its working root. #[clap(long = "cd", short = 'C', value_name = "DIR")] pub cwd: Option, diff --git a/codex-rs/tui/src/lib.rs b/codex-rs/tui/src/lib.rs index 78fc283461..156951fff4 100644 --- a/codex-rs/tui/src/lib.rs +++ b/codex-rs/tui/src/lib.rs @@ -51,6 +51,11 @@ pub fn run_main(cli: Cli, codex_linux_sandbox_exe: Option) -> std::io:: Some(SandboxPolicy::new_workspace_write_policy()), Some(AskForApproval::OnFailure), ) + } else if cli.dangerously_bypass_approvals_and_sandbox { + ( + Some(SandboxPolicy::DangerFullAccess), + Some(AskForApproval::Never), + ) } else { let sandbox_policy = None; (sandbox_policy, cli.approval_policy.map(Into::into))