From 532497b3d19c7051928eac12e213cc9108d279a8 Mon Sep 17 00:00:00 2001 From: Roy Binux Date: Fri, 19 Sep 2025 14:50:59 -0700 Subject: [PATCH] Correctly support comma-separated values for `--allowed-tools` (#8386) Co-authored-by: anthony bushong --- packages/cli/src/config/config.test.ts | 11 +++++++++++ packages/cli/src/config/config.ts | 3 +++ 2 files changed, 14 insertions(+) diff --git a/packages/cli/src/config/config.test.ts b/packages/cli/src/config/config.test.ts index fec2dacdb3..4ec05b6c7d 100644 --- a/packages/cli/src/config/config.test.ts +++ b/packages/cli/src/config/config.test.ts @@ -296,6 +296,17 @@ describe('parseArguments', () => { mockExit.mockRestore(); mockConsoleError.mockRestore(); }); + + it('should support comma-separated values for --allowed-tools', async () => { + process.argv = [ + 'node', + 'script.js', + '--allowed-tools', + 'read_file,ShellTool(git status)', + ]; + const argv = await parseArguments({} as Settings); + expect(argv.allowedTools).toEqual(['read_file', 'ShellTool(git status)']); + }); }); describe('loadCliConfig', () => { diff --git a/packages/cli/src/config/config.ts b/packages/cli/src/config/config.ts index eaace7b074..a801510af6 100755 --- a/packages/cli/src/config/config.ts +++ b/packages/cli/src/config/config.ts @@ -233,6 +233,9 @@ export async function parseArguments(settings: Settings): Promise { type: 'array', string: true, description: 'Tools that are allowed to run without confirmation', + coerce: (tools: string[]) => + // Handle comma-separated values + tools.flatMap((tool) => tool.split(',').map((t) => t.trim())), }) .option('extensions', { alias: 'e',