2.1 KiB
| title | contributor | tags |
|---|---|---|
| Update Agent Permissions | @grantcarthew |
Task: Update Agent Permissions
Please analyse our entire conversation and identify all specific commands used.
Update permissions for both Claude Code and Gemini CLI.
Reference Files
- Claude: ~/.claude/settings.json
- Gemini policy: ~/.gemini/policies/tool-permissions.toml
- Gemini settings: ~/.gemini/settings.json
- Gemini trusted folders: ~/.gemini/trustedFolders.json
Instructions
- Audit: Compare the identified commands against the current allowed commands in both config files.
- Filter: Only include commands that provide read-only access to resources.
- Restrict: Explicitly exclude any commands capable of modifying, deleting, or destroying data.
- Update: Add only the missing read-only commands to both config files.
- Constraint: Do not use wildcards. Each command must be listed individually for granular security.
Show me the list of commands under two categories: Read-Only, and Write
We are mostly interested in the read-only commands here that fall under the categories: Read, Get, Describe, View, or similar.
Once I have approved the list, update both config files.
Claude Format
File: ~/.claude/settings.json
Claude uses a JSON permissions object with allow, deny, and ask arrays.
Allow format: Bash(command subcommand:*)
Insert new commands in alphabetical order within the allow array.
Gemini Format
File: ~/.gemini/policies/tool-permissions.toml
Gemini uses a TOML policy engine with rules at different priority levels.
Rule types and priorities:
decision = "deny"atpriority = 200for destructive operationsdecision = "ask_user"atpriority = 150for write operations needing confirmationdecision = "allow"atpriority = 100for read-only operations
For allow rules, use commandPrefix (provides word-boundary matching).
For deny and ask rules, use commandRegex (catches flag variants).
New read-only commands should be added to the appropriate existing [[rule]] block by category, or a new block if no category fits.
Example allow rule: