ccperm

Crates.ioccperm
lib.rsccperm
version0.1.0
created_at2026-01-14 11:44:19.616445+00
updated_at2026-01-14 11:44:19.616445+00
descriptionA TUI viewer/editor for Claude Code permission settings
homepage
repositoryhttps://github.com/nyanko3141592/ccperm
max_upload_size
id2042646
size71,988
Naoki Takahashi / 電電猫猫 (nyanko3141592)

documentation

README

ccperm

A TUI (Terminal User Interface) viewer and editor for Claude Code permission settings.

Rust License

Overview

ccperm provides an interactive terminal interface to view and manage Claude Code's permission settings stored in ~/.claude/settings.json. It helps you understand which tools and commands are allowed, denied, or require confirmation.

Features

  • Tree View: Permissions are automatically categorized and displayed in a collapsible tree structure
  • Categories: Git, NPM, GCloud, GitHub, FileSystem, Web, Python, Cargo, Docker, and Other
  • Edit Support: Add, edit, and delete permission rules
  • Dual Settings: Switch between global (settings.json) and local (settings.local.json) settings
  • Tab Navigation: Easily switch between Allow, Deny, and Ask permission types

Installation

From crates.io (coming soon)

cargo install ccperm

From source

git clone https://github.com/nyanko3141592/ccperm.git
cd ccperm
cargo install --path .

Usage

Simply run:

ccperm

Key Bindings

Key Action
j / Move down
k / Move up
h / Collapse category
l / / Enter Expand category
Tab Switch tab (Allow/Deny/Ask)
a Add new permission
e Edit selected permission
d Delete selected permission
s Save changes
r Reload from file
g Switch to Global settings
L Switch to Local settings
? Show help
q / Esc Quit

Screenshots

┌─────────────────────────────────────────────────────────────────┐
│ ccperm - Claude Code Permission Manager           [?] Help [q] │
├─────────────────────────────────────────────────────────────────┤
│ [Allow] [Deny] [Ask]                              Source: [G]   │
├─────────────────────────────────────────────────────────────────┤
│ ▼ Git (5)                                                       │
│   ├─ git commit:*                                               │
│   ├─ git push                                                   │
│   └─ git add:*                                                  │
│ ▼ NPM (4)                                                       │
│   ├─ npm install:*                                              │
│   └─ npm run build:*                                            │
│ ▶ GCloud (12)                                                   │
│ ▶ Web (2)                                                       │
├─────────────────────────────────────────────────────────────────┤
│ [a]dd [e]dit [d]elete [s]ave [r]eload             Total: 36     │
└─────────────────────────────────────────────────────────────────┘

Configuration Files

ccperm reads and writes to the following files:

  • ~/.claude/settings.json - Global Claude Code settings
  • ~/.claude/settings.local.json - Local overrides

Permission Format

Permissions follow the pattern:

Tool(command:pattern)

Examples:

  • Bash(npm install:*) - Allow npm install with any arguments
  • Bash(git commit) - Allow git commit (exact match)
  • WebFetch(domain:github.com) - Allow fetching from github.com

Requirements

  • Rust 1.70 or later
  • Claude Code installed (~/.claude/ directory must exist)

License

MIT License - see LICENSE for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Commit count: 2

cargo fmt