Claude Codeのパーミッション設定をTUIで管理できる「ccperm」を作った
Claude Codeを使っていると、こんな経験はありませんか?
- 「このコマンド、前に許可したはずなのにまた聞かれる...」
- 「今どんな権限を許可してるんだっけ?」
- 「全部まとめて確認・編集したい」
そんな悩みを解決するために、ccpermというTUIツールを作りました。
ccpermとは
ccpermは、Claude Codeのパーミッション設定(~/.claude/settings.json)をターミナル上で視覚的に確認・編集できるツールです。
Rustで書かれており、ratauiを使ったインタラクティブなTUIを提供します。
インストール
Cargoで一発インストール:
主な機能
1. パーミッションのツリー表示
許可されているコマンドがカテゴリ別に整理されて表示されます:
自動的に以下のカテゴリに分類されます:
- Git - git関連コマンド
- NPM - npm, npx, bun, yarn, pnpm
- GCloud - gcloud, gsutil
- GitHub - gh CLI
- FileSystem - cat, ls, rm, mkdir等
- Web - WebFetch
- Python - python, pip
- Cargo - cargo, rustup
- Docker - docker, docker-compose
- Other - その他
2. Allow / Deny / Ask の切り替え
Tabキーで3つのパーミッションタイプを切り替えられます:
- Allow - 自動で許可されるコマンド
- Deny - 拒否されるコマンド
- Ask - 毎回確認されるコマンド
3. その場で編集
パーミッションの追加・編集・削除がTUI上で完結します:
a- 新規追加e- 選択中のルールを編集d- 削除s- 保存
4. Global / Local設定の切り替え
Claude Codeには2つの設定ファイルがあります:
~/.claude/settings.json- グローバル設定~/.claude/settings.local.json- ローカルオーバーライド
gキーとLキーで切り替えて、それぞれ独立して管理できます。
キーバインド一覧
| キー | 機能 |
|---|---|
j / ↓ | 下に移動 |
k / ↑ | 上に移動 |
h / ← | カテゴリを折りたたむ |
l / → / Enter | カテゴリを展開 |
Tab | タブ切り替え (Allow/Deny/Ask) |
a | 新規パーミッション追加 |
e | 編集 |
d | 削除 |
s | 保存 |
r | 再読み込み |
g | Global設定に切り替え |
L | Local設定に切り替え |
? | ヘルプ表示 |
q | 終了 |
パーミッションの書式
Claude Codeのパーミッションは以下の形式で記述されます:
例:
Bash(npm install:*)- npm installで始まるすべてのコマンドを許可Bash(git commit)- git commitを完全一致で許可WebFetch(domain:github.com)- github.comへのアクセスを許可
:*をつけるとワイルドカードとして機能し、そのプレフィックスで始まるすべてのバリエーションが許可されます。
なぜTUIなのか
JSONファイルを直接編集することもできますが、ccpermを使うメリットは:
- 視認性 - カテゴリ別に整理されて見やすい
- 安全性 - JSON構文エラーを防げる
- 効率性 - 大量のパーミッションも素早くナビゲート
- 発見性 - 「こんなの許可してたの?」に気づける
技術スタック
- Rust - 高速で安全な実行
- ratatui - モダンなTUIフレームワーク
- crossterm - クロスプラットフォーム対応
- serde - JSON処理
リンク
- GitHub:
- crates.io:
まとめ
Claude Codeを日常的に使っている方は、ぜひcargo install ccpermで試してみてください。自分がどんな権限を許可しているか把握できると、より安心してClaude Codeを使えるようになります。
フィードバックやPRも歓迎です!