Permissions from .claude/settings.json not taken into account (also in v1.0.12!)
- Dominant language
- Shell
- Stars
- 11.2k
- Forks
- 1.9k
- Avg merge
- 14h 16m
- Merged PRs (30d)
- 6
Description
### Describe the bug
Release notes for v1.0.12 say:
> Read .claude/settings.json and .claude/settings.local.json as additional repo config sources
With following `.claude/settings.json`:
```json
{
"$schema": "https://json.schemastore.org/claude-code-settings.json",
"permissions": { "allow": ["Bash(npx eslint)"] }
}
```
Asking copilot to run npx eslint still pops up a permission question to the user.
Running `copilot --allow-tool='shell(npx eslint)'` does work as expected however.
### Affected version
GitHub Copilot CLI 1.0.12
### Steps to reproduce the behavior
1. Put following json in `.claude/settings.json`:
```json
{
"$schema": "https://json.schemastore.org/claude-code-settings.json",
"permissions": { "allow": ["Bash(npx eslint)"] }
}
```
2. Run `copilot`
3. Ask "please run npx eslint"
4. Observe that copilot asks the user for permission
### Expected behavior
Copilot should not ask the user for permission, just like when running `copilot --allow-tool='shell(npx eslint)'`
### Additional context
OS: Windows
Terminal: Windows Terminal
Shell: Git Bash and Powershell (both tested)
Contributor guide
Research direction
Start by tracing how .claude/settings.json and .claude/settings.local.json are loaded and how their permissions.allow entries are mapped to Copilot CLI tool permissions. Reproduce with the shown Bash(npx eslint) setting, then verify that asking Copilot to run npx eslint no longer prompts for permission, matching --allow-tool='shell(npx eslint)'.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- shell
- Domain
- authorization, cli
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100