On this page
Reference for the c permission command group — subcommands, flags, arguments, and usage details for the permission group in the c CLI.
#c permission
add, remove, and list permission rules across Claude profiles
#permission add
Add a permission rule to a profile's settings.json. Takes a category (allow, deny, or ask) and a rule string such as Bash or Read(//home/**). Writes the rule into the specified category array. Use --profile to target a single profile or --all-profiles to apply the rule across every registered profile. Skips duplicates if the rule already exists in the category.
Effect: mutating
#Flags
| Name | Short | Type | Presence | Env | Description |
|---|---|---|---|---|---|
target | choice | required | Selection (not typed as a flag). Elect exactly one of --profile, --all-profiles. which profiles the operation applies to | ||
--profile | str | required | Elects target = profile. target one profile, by name Its value: name of the profile to target (e.g. work, personal, research) | ||
--all-profiles | required | Elects target = all-profiles. target every registered profile at once |
#Arguments
| Name | Type | Presence | Description |
|---|---|---|---|
category | str | required | permission category to add the rule to: allow, deny, or ask |
rule | str | required | permission rule string to add (e.g. Bash, Read(//home/**), Edit) |
#permission remove
Remove a permission rule from a profile's settings.json. Takes a category (allow, deny, or ask) and the exact rule string to delete. The rule is removed from the specified category array and the file is saved. Use --profile to target a single profile or --all-profiles to remove the rule from every registered profile. Reports whether the rule was found.
Effect: mutating
#Flags
| Name | Short | Type | Presence | Env | Description |
|---|---|---|---|---|---|
target | choice | required | Selection (not typed as a flag). Elect exactly one of --profile, --all-profiles. which profiles the operation applies to | ||
--profile | str | required | Elects target = profile. target one profile, by name Its value: name of the profile to target (e.g. work, personal, research) | ||
--all-profiles | required | Elects target = all-profiles. target every registered profile at once |
#Arguments
| Name | Type | Presence | Description |
|---|---|---|---|
category | str | required | permission category to remove the rule from: allow, deny, or ask |
rule | str | required | exact permission rule string to remove (must match an existing entry) |
#permission list
List permission rules from a profile's settings.json. Displays rules in grouped or flat format controlled by --format. Use --category to filter output to a single category (allow, deny, or ask). Use --profile to inspect a single profile or --all-profiles to show rules from every registered profile, with each profile's rules displayed under a header. The framework-owned --json answers a machine instead: one envelope carrying every listed profile, whatever --format the human form would have used.
Effect: read_only
#Flags
| Name | Short | Type | Presence | Env | Description |
|---|---|---|---|---|---|
--format | str | required | output format: grouped (indented tree) or flat (tsv) Values: grouped (one indented block per category, one rule per line), flat (one tab-separated category-and-rule pair per line). | ||
--category | str | optional | restrict output to a single permission category (allow, deny, or ask) | ||
target | choice | required | Selection (not typed as a flag). Elect exactly one of --profile, --all-profiles. which profiles the operation applies to | ||
--profile | str | required | Elects target = profile. target one profile, by name Its value: name of the profile to target (e.g. work, personal, research) | ||
--all-profiles | required | Elects target = all-profiles. target every registered profile at once |