diff --git a/packages/opencode/src/cli/cmd/run.ts b/packages/opencode/src/cli/cmd/run.ts index f7787e9705..3927f615a0 100644 --- a/packages/opencode/src/cli/cmd/run.ts +++ b/packages/opencode/src/cli/cmd/run.ts @@ -240,11 +240,20 @@ export const RunCommand = effectCmd({ default: false, }) .option("auto", { - alias: ["yolo", "dangerously-skip-permissions"], type: "boolean", describe: "auto-approve permissions that are not explicitly denied (dangerous!)", default: false, }) + .option("yolo", { + type: "boolean", + hidden: true, + default: false, + }) + .option("dangerously-skip-permissions", { + type: "boolean", + hidden: true, + default: false, + }) .option("demo", { type: "boolean", default: false, @@ -262,6 +271,7 @@ export const RunCommand = effectCmd({ yield* Effect.promise(async () => { const rawMessage = [...args.message, ...(args["--"] || [])].join(" ") const interactive = args.mini + const auto = args.auto || args.yolo || args["dangerously-skip-permissions"] const thinking = interactive ? (args.thinking ?? true) : (args.thinking ?? false) const die = (message: string): never => { UI.error(message) @@ -787,7 +797,7 @@ export const RunCommand = effectCmd({ const permission = event.properties if (permission.sessionID !== sessionID) continue - if (args.auto) { + if (auto) { await client.permission.reply({ requestID: permission.id, reply: "once", diff --git a/packages/opencode/src/cli/cmd/tui.ts b/packages/opencode/src/cli/cmd/tui.ts index 7b92919d61..6a9af10040 100644 --- a/packages/opencode/src/cli/cmd/tui.ts +++ b/packages/opencode/src/cli/cmd/tui.ts @@ -106,11 +106,20 @@ export const TuiThreadCommand = cmd({ describe: "agent to use", }) .option("auto", { - alias: ["yolo", "dangerously-skip-permissions"], type: "boolean", describe: "auto-approve permissions that are not explicitly denied (dangerous!)", default: false, }) + .option("yolo", { + type: "boolean", + hidden: true, + default: false, + }) + .option("dangerously-skip-permissions", { + type: "boolean", + hidden: true, + default: false, + }) .option("mini", { type: "boolean", describe: "start the minimal interactive interface", @@ -278,7 +287,7 @@ export const TuiThreadCommand = cmd({ model: args.model, prompt, fork: args.fork, - auto: args.auto, + auto: args.auto || args.yolo || args["dangerously-skip-permissions"], }, }), ) diff --git a/packages/opencode/test/cli/help/__snapshots__/help-snapshots.test.ts.snap b/packages/opencode/test/cli/help/__snapshots__/help-snapshots.test.ts.snap index e734e3f82c..e9d3ad2338 100644 --- a/packages/opencode/test/cli/help/__snapshots__/help-snapshots.test.ts.snap +++ b/packages/opencode/test/cli/help/__snapshots__/help-snapshots.test.ts.snap @@ -76,46 +76,34 @@ Positionals: message message to send [array] [default: []] Options: - -h, --help show help [boolean] - -v, --version show version number [boolean] - --print-logs print logs to stderr [boolean] - --log-level log level - [string] [choices: "DEBUG", "INFO", "WARN", "ERROR"] - --pure run without external plugins [boolean] - --command the command to run, use message for args - [string] - -c, --continue continue the last session [boolean] - -s, --session session id to continue [string] - --fork fork the session before continuing (requires - --continue or --session) [boolean] - --share share the session [boolean] - -m, --model model to use in the format of provider/model - [string] - --agent agent to use [string] - --format format: default (formatted) or json (raw JSON - events) + -h, --help show help [boolean] + -v, --version show version number [boolean] + --print-logs print logs to stderr [boolean] + --log-level log level [string] [choices: "DEBUG", "INFO", "WARN", "ERROR"] + --pure run without external plugins [boolean] + --command the command to run, use message for args [string] + -c, --continue continue the last session [boolean] + -s, --session session id to continue [string] + --fork fork the session before continuing (requires --continue or --session) [boolean] + --share share the session [boolean] + -m, --model model to use in the format of provider/model [string] + --agent agent to use [string] + --format format: default (formatted) or json (raw JSON events) [string] [choices: "default", "json"] [default: "default"] - -f, --file file(s) to attach to message [array] - --title title for the session (uses truncated prompt - if no value provided) [string] - --attach attach to a running opencode server (e.g., - http://localhost:4096) [string] - -p, --password basic auth password (defaults to - OPENCODE_SERVER_PASSWORD) [string] - -u, --username basic auth username (defaults to - OPENCODE_SERVER_USERNAME or 'opencode') + -f, --file file(s) to attach to message [array] + --title title for the session (uses truncated prompt if no value provided) [string] + --attach attach to a running opencode server (e.g., http://localhost:4096) [string] + -p, --password basic auth password (defaults to OPENCODE_SERVER_PASSWORD) [string] + -u, --username basic auth username (defaults to OPENCODE_SERVER_USERNAME or 'opencode') [string] - --dir directory to run in, path on remote server if - attaching [string] - --port port for the local server (defaults to random - port if no value provided) [number] - --variant model variant (provider-specific reasoning - effort, e.g., high, max, minimal) [string] - --thinking show thinking blocks [boolean] - -i, --interactive run in direct interactive split-footer mode - [boolean] [default: false] - --auto, --yolo, --dangerously-skip-permissions auto-approve permissions that are not - explicitly denied (dangerous!) + --dir directory to run in, path on remote server if attaching [string] + --port port for the local server (defaults to random port if no value provided) + [number] + --variant model variant (provider-specific reasoning effort, e.g., high, max, minimal) + [string] + --thinking show thinking blocks [boolean] + -i, --interactive run in direct interactive split-footer mode [boolean] [default: false] + --auto auto-approve permissions that are not explicitly denied (dangerous!) [boolean] [default: false]" `;