anthropics / anthropics/claude-code-action

[BUG] Multiline claude_args with Bash tools containing spaces parsed incorrectly

Open
#844 2 comments 0 reactions 0 assignees View on GitHub
bug p2
Dominant language
TypeScript
Stars
8.9k
Forks
2.1k
Avg merge
3d 9h
Merged PRs (30d)
10

Description

## Bug Description

When using multiline YAML for `claude_args` with Bash tool patterns that contain spaces (like `Bash(git diff --name-only HEAD~1)`), the SDK incorrectly parses the `--allowedTools` argument by splitting on spaces.

## Reproduction

```yaml
claude_args: |
--max-turns 15
--allowedTools Bash(git diff --name-only HEAD~1),Bash(git diff HEAD~1),Read,Glob,Grep
```

## Expected Behavior

SDK should parse `allowedTools` as:
```json
["Bash(git diff --name-only HEAD~1)", "Bash(git diff HEAD~1)", "Read", "Glob", "Grep"]
```

## Actual Behavior

SDK parses `allowedTools` as:
```json
["Bash", "git", "diff"]
```

From the logs:
```
SDK options: {
"allowedTools": [
"Bash",
"git",
"diff"
],
...
"extraArgs": {
"max-turns": "15",
"name-only": "HEAD~1"
},
...
}
```

Note that `--name-only HEAD~1` is also incorrectly parsed as a separate extraArg.

## Evidence

Full error:
```
SDK execution error: error: Claude Code process exited with code 1
```

## Workaround

Put everything on a single line with quotes:
```yaml
claude_args: --max-turns 15 --allowedTools "Bash(git diff --name-only HEAD~1),Bash(git diff HEAD~1),Read,Glob,Grep"
```

## Environment

- Action version: `anthropics/claude-code-action@v1`
- Runner: `ubuntu-latest`
- Event: `pull_request`

## Notes

The [migration guide](https://github.com/anthropics/claude-code-action/blob/main/docs/migration-guide.md) shows multiline `claude_args` examples, but they don't include Bash tools with spaces:
```yaml
claude_args: |
--max-turns 15
--allowedTools Edit,Read,Write,Bash
```

The issue appears to be that `shell-quote` (or whatever parser is used) doesn't handle the multiline + spaces-in-arguments combination correctly.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.