setperms
Claude Codeのツール権限を設定し、許可されたコマンドやルール、設定を構成するためのSkillです。
📜 元の英語説明(参考)
Set tool permissions for Claude Code. Configures allowed commands, rules, and preferences in .claude/ directory. Triggers on: setperms, init tools, configure permissions, setup project, set permissions, init claude.
🇯🇵 日本人クリエイター向け解説
Claude Codeのツール権限を設定し、許可されたコマンドやルール、設定を構成するためのSkillです。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o setperms.zip https://jpskill.com/download/5937.zip && unzip -o setperms.zip && rm setperms.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/5937.zip -OutFile "$d\setperms.zip"; Expand-Archive "$d\setperms.zip" -DestinationPath $d -Force; ri "$d\setperms.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
setperms.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
setpermsフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-17
- 取得日時
- 2026-05-17
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
[スキル名] setperms
/setperms
快適な開発体験のために、最新のdev-shell-toolsでClaude Codeを初期化します。
この機能について
完全な開発環境セットアップをインストールします。
- パーミッション (
.claude/settings.local.json) - 事前承認されたCLIツール - ルール (
.claude/rules/cli-tools.md) - 最新のツールを優先する指示
dev-shell-toolsからのツール:
コアツール:
- Git: 完全なgitアクセス、lazygit、gh (GitHub CLI)、delta、difft
- ファイル操作: ls、mkdir、cat、wc、tree、eza、bat、chmod
- 検索: rg (ripgrep)、fd、fzf、ast-grep/sg
- ナビゲーション: zoxide/z、broot/br
- データ処理: jq、yq、sd、xargs
- 分析: tokei、procs、hyperfine、dust
開発ツール:
- パッケージマネージャー: npm、node、python、uv、pip、brew
- タスクランナー: just、bash
- ネットワーク: curl、http (httpie)、firecrawl
- ドキュメンテーション: tldr
- Windows: powershell
AI CLIツール:
- gemini: Google Gemini CLI (2Mコンテキスト)
- claude: Anthropic Claude CLI
- codex: OpenAI Codex CLI
- perplexity: Perplexity CLI (ウェブ検索)
実行フロー
/setperms
|
+-- 既存の.claude/ファイルのチェック
| +-- 存在する場合: 上書きまたはスキップを尋ねる
| +-- 存在しない場合: 続行
|
+-- .claudeディレクトリの作成
+-- .claude/rulesディレクトリの作成
|
+-- settings.local.json (パーミッション)の書き込み
+-- rules/cli-tools.md (ツール設定)の書き込み
手順
ステップ1: 既存の設定の確認
ls -la .claude/settings.local.json 2>/dev/null
ls -la .claude/rules/cli-tools.md 2>/dev/null
ファイルが存在する場合、ユーザーに尋ねます:
- 上書き: 全体を置き換える
- スキップ: 既存のものを保持し、何もしない
ステップ2: ディレクトリの作成
mkdir -p .claude/rules
ステップ3: パーミッションファイルの書き込み
.claude/settings.local.jsonに書き込みます:
{
"permissions": {
"allow": [
"Bash(git:*)",
"Bash(ls:*)",
"Bash(mkdir:*)",
"Bash(cat:*)",
"Bash(wc:*)",
"Bash(tree:*)",
"Bash(curl:*)",
"Bash(rg:*)",
"Bash(fd:*)",
"Bash(fzf:*)",
"Bash(z:*)",
"Bash(zoxide:*)",
"Bash(br:*)",
"Bash(broot:*)",
"Bash(ast-grep:*)",
"Bash(sg:*)",
"Bash(bat:*)",
"Bash(eza:*)",
"Bash(delta:*)",
"Bash(difft:*)",
"Bash(jq:*)",
"Bash(yq:*)",
"Bash(sd:*)",
"Bash(lazygit:*)",
"Bash(gh:*)",
"Bash(tokei:*)",
"Bash(uv:*)",
"Bash(just:*)",
"Bash(http:*)",
"Bash(procs:*)",
"Bash(hyperfine:*)",
"Bash(npm:*)",
"Bash(node:*)",
"Bash(python:*)",
"Bash(pip:*)",
"Bash(powershell -Command:*)",
"Bash(powershell.exe:*)",
"Bash(bash:*)",
"Bash(chmod:*)",
"Bash(xargs:*)",
"Bash(command -v:*)",
"Bash(brew:*)",
"Bash(tldr:*)",
"Bash(dust:*)",
"Bash(btm:*)",
"Bash(bottom:*)",
"Bash(firecrawl:*)",
"Bash(gemini:*)",
"Bash(claude:*)",
"Bash(codex:*)",
"Bash(perplexity:*)"
],
"deny": [],
"ask": [
"Bash(git reset --hard:*)",
"Bash(git checkout -- :*)",
"Bash(git clean -f:*)",
"Bash(git stash drop:*)",
"Bash(git stash clear:*)",
"Bash(git restore --worktree:*)",
"Bash(git push --force:*)",
"Bash(git push -f:*)",
"Bash(git push origin --force:*)",
"Bash(git push origin -f:*)",
"Bash(git branch -D:*)"
]
},
"hooks": {}
}
ステップ4: ルールファイルの書き込み
.claude/rules/cli-tools.mdに書き込みます:
# CLIツール設定 (dev-shell-tools)
従来の代替手段よりも常に最新のCLIツールを優先してください。
## ファイル検索とナビゲーション
| 代わりに | 使用 | 理由 |
|------------|-----|-----|
| `find` | `fd` | 5倍高速、.gitignoreを尊重 |
| `grep` | `rg` (ripgrep) | 10倍高速、.gitignoreを尊重 |
| `ls` | `eza` | Gitステータス、ツリービュー |
| `cat` | `bat` | 構文ハイライト |
| `cd` + 手動 | `z`/`zoxide` | 頻繁にアクセスするディレクトリ |
| `tree` | `eza --tree` | インタラクティブ |
## データ処理
| 代わりに | 使用 |
|------------|-----|
| `sed` | `sd` |
| 手動JSON | `jq` |
| 手動YAML | `yq` |
## Git操作
| 代わりに | 使用 |
|------------|-----|
| `git diff` | `delta` または `difft` |
| 手動git | `lazygit` |
| GitHubウェブ | `gh` |
## コード分析
- 行数: `tokei`
- AST検索: `ast-grep` / `sg`
- ベンチマーク: `hyperfine`
- ディスク使用量: `dust`
## システム監視
| 代わりに | 使用 |
|------------|-----|
| `du -h` | `dust` |
| `top`/`htop` | `btm` (bottom) |
## ドキュメンテーション
| 代わりに | 使用 |
|------------|-----|
| `man <cmd>` | `tldr <cmd>` |
## Python
| 代わりに | 使用 |
|------------|-----|
| `pip` | `uv` |
| `python -m venv` | `uv venv` |
## タスク実行
Makefilesよりも`just`を優先してください。
## ウェブフェッチ
| 優先度 | ツール | 使用するタイミング |
|----------|------|-------------|
| 1 | `WebFetch` | 最初の試行 - 高速、組み込み |
| 2 | `r.jina.ai/URL` | JSレンダリングされたページ、よりクリーンな抽出 |
| 3 | `firecrawl <url>` | アンチボットバイパス、ブロックされたサイト |
## AI CLIツール
マルチモデル分析の場合:
| ツール | モデル | 最適な用途 |
|------|-------|----------|
| `gemini` | Gemini 2.5 | 2Mコンテキスト、大規模なコードベース |
| `claude` | Claude | コーディング、分析 |
| `codex` | OpenAI | 深い推論 |
| `perplexity` | Perplexity | ウェブ検索、最新情報 |
## Gitの安全性
破壊的なコマンドには確認が必要です("ask"リスト内):
| コマンド | リスク | 安全な代替手段 |
|---------|------|------------------|
| `git reset --hard` | コミットされていない変更を失う | 最初に`git stash` |
| `git checkout -- <file>` | ファイルの変更を破棄する | 最初に`git stash`または`git diff` |
| `git clean -fd` | トラッキングされていないファイルを削除する | 最初に`git clean -n` (ドライラン) |
| `git stash drop` | スタッシュを完全に削除する | 最初に`git stash list`を確認 |
| `git push --force` | リモート履歴を上書きする | `git push --force-with-lease` |
| `git branch -D` | マージされていないブランチを削除する | `git branch -d` (安全な削除) 📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
/setperms
Initialize Claude Code with modern dev-shell-tools for a comfortable development experience.
What This Does
Installs complete dev environment setup:
- Permissions (
.claude/settings.local.json) - Pre-approved CLI tools - Rules (
.claude/rules/cli-tools.md) - Instructions to prefer modern tools
Tools from dev-shell-tools:
Core Tools:
- Git: Full git access, lazygit, gh (GitHub CLI), delta, difft
- File ops: ls, mkdir, cat, wc, tree, eza, bat, chmod
- Search: rg (ripgrep), fd, fzf, ast-grep/sg
- Navigation: zoxide/z, broot/br
- Data processing: jq, yq, sd, xargs
- Analysis: tokei, procs, hyperfine, dust
Dev Tools:
- Package managers: npm, node, python, uv, pip, brew
- Task runners: just, bash
- Network: curl, http (httpie), firecrawl
- Documentation: tldr
- Windows: powershell
AI CLI Tools:
- gemini: Google Gemini CLI (2M context)
- claude: Anthropic Claude CLI
- codex: OpenAI Codex CLI
- perplexity: Perplexity CLI (web search)
Execution Flow
/setperms
|
+-- Check for existing .claude/ files
| +-- If exists: Ask to overwrite or skip
| +-- If not: Proceed
|
+-- Create .claude directory
+-- Create .claude/rules directory
|
+-- Write settings.local.json (permissions)
+-- Write rules/cli-tools.md (tool preferences)
Instructions
Step 1: Check for existing settings
ls -la .claude/settings.local.json 2>/dev/null
ls -la .claude/rules/cli-tools.md 2>/dev/null
If files exist, ask user:
- Overwrite: Replace entirely
- Skip: Keep existing, do nothing
Step 2: Create directories
mkdir -p .claude/rules
Step 3: Write permissions file
Write to .claude/settings.local.json:
{
"permissions": {
"allow": [
"Bash(git:*)",
"Bash(ls:*)",
"Bash(mkdir:*)",
"Bash(cat:*)",
"Bash(wc:*)",
"Bash(tree:*)",
"Bash(curl:*)",
"Bash(rg:*)",
"Bash(fd:*)",
"Bash(fzf:*)",
"Bash(z:*)",
"Bash(zoxide:*)",
"Bash(br:*)",
"Bash(broot:*)",
"Bash(ast-grep:*)",
"Bash(sg:*)",
"Bash(bat:*)",
"Bash(eza:*)",
"Bash(delta:*)",
"Bash(difft:*)",
"Bash(jq:*)",
"Bash(yq:*)",
"Bash(sd:*)",
"Bash(lazygit:*)",
"Bash(gh:*)",
"Bash(tokei:*)",
"Bash(uv:*)",
"Bash(just:*)",
"Bash(http:*)",
"Bash(procs:*)",
"Bash(hyperfine:*)",
"Bash(npm:*)",
"Bash(node:*)",
"Bash(python:*)",
"Bash(pip:*)",
"Bash(powershell -Command:*)",
"Bash(powershell.exe:*)",
"Bash(bash:*)",
"Bash(chmod:*)",
"Bash(xargs:*)",
"Bash(command -v:*)",
"Bash(brew:*)",
"Bash(tldr:*)",
"Bash(dust:*)",
"Bash(btm:*)",
"Bash(bottom:*)",
"Bash(firecrawl:*)",
"Bash(gemini:*)",
"Bash(claude:*)",
"Bash(codex:*)",
"Bash(perplexity:*)"
],
"deny": [],
"ask": [
"Bash(git reset --hard:*)",
"Bash(git checkout -- :*)",
"Bash(git clean -f:*)",
"Bash(git stash drop:*)",
"Bash(git stash clear:*)",
"Bash(git restore --worktree:*)",
"Bash(git push --force:*)",
"Bash(git push -f:*)",
"Bash(git push origin --force:*)",
"Bash(git push origin -f:*)",
"Bash(git branch -D:*)"
]
},
"hooks": {}
}
Step 4: Write rules file
Write to .claude/rules/cli-tools.md:
# CLI Tool Preferences (dev-shell-tools)
ALWAYS prefer modern CLI tools over traditional alternatives.
## File Search & Navigation
| Instead of | Use | Why |
|------------|-----|-----|
| `find` | `fd` | 5x faster, respects .gitignore |
| `grep` | `rg` (ripgrep) | 10x faster, respects .gitignore |
| `ls` | `eza` | Git status, tree view |
| `cat` | `bat` | Syntax highlighting |
| `cd` + manual | `z`/`zoxide` | Frecent directories |
| `tree` | `eza --tree` | Interactive |
## Data Processing
| Instead of | Use |
|------------|-----|
| `sed` | `sd` |
| Manual JSON | `jq` |
| Manual YAML | `yq` |
## Git Operations
| Instead of | Use |
|------------|-----|
| `git diff` | `delta` or `difft` |
| Manual git | `lazygit` |
| GitHub web | `gh` |
## Code Analysis
- Line counts: `tokei`
- AST search: `ast-grep` / `sg`
- Benchmarks: `hyperfine`
- Disk usage: `dust`
## System Monitoring
| Instead of | Use |
|------------|-----|
| `du -h` | `dust` |
| `top`/`htop` | `btm` (bottom) |
## Documentation
| Instead of | Use |
|------------|-----|
| `man <cmd>` | `tldr <cmd>` |
## Python
| Instead of | Use |
|------------|-----|
| `pip` | `uv` |
| `python -m venv` | `uv venv` |
## Task Running
Prefer `just` over Makefiles.
## Web Fetching
| Priority | Tool | When to Use |
|----------|------|-------------|
| 1 | `WebFetch` | First attempt - fast, built-in |
| 2 | `r.jina.ai/URL` | JS-rendered pages, cleaner extraction |
| 3 | `firecrawl <url>` | Anti-bot bypass, blocked sites |
## AI CLI Tools
For multi-model analysis:
| Tool | Model | Best For |
|------|-------|----------|
| `gemini` | Gemini 2.5 | 2M context, large codebases |
| `claude` | Claude | Coding, analysis |
| `codex` | OpenAI | Deep reasoning |
| `perplexity` | Perplexity | Web search, current info |
## Git Safety
Destructive commands require confirmation (in "ask" list):
| Command | Risk | Safe Alternative |
|---------|------|------------------|
| `git reset --hard` | Loses uncommitted changes | `git stash` first |
| `git checkout -- <file>` | Discards file changes | `git stash` or `git diff` first |
| `git clean -fd` | Deletes untracked files | `git clean -n` (dry run) first |
| `git stash drop` | Permanently deletes stash | Check `git stash list` first |
| `git push --force` | Overwrites remote history | `git push --force-with-lease` |
| `git branch -D` | Deletes unmerged branch | `git branch -d` (safe delete) |
**Before destructive operations:**
1. Check status: `git status`
2. Check for uncommitted changes: `git diff`
3. Consider stashing: `git stash`
4. Use dry-run flags when available
Reference: https://github.com/0xDarkMatter/dev-shell-tools
Step 5: Confirm
Report to user:
Initialized Claude Code with dev-shell-tools:
Created:
.claude/settings.local.json (51 tool permissions, 11 guardrails)
.claude/rules/cli-tools.md (modern tool preferences)
Claude will now:
- Auto-approve dev-shell-tools commands
- Prefer fd over find, rg over grep, bat over cat, etc.
- Use AI CLIs for multi-model analysis
- Ask before destructive git commands (reset --hard, push --force, etc.)
To customize: edit files in .claude/
To add to git: git add .claude/
Options
| Flag | Effect |
|---|---|
--force |
Overwrite existing without asking |
--perms-only |
Only install permissions, skip rules |
--rules-only |
Only install rules, skip permissions |
--minimal |
Minimal permissions (git, ls, cat, mkdir only) |
--full |
Add cloud/container tools (docker, kubectl, terraform, etc.) |
--no-guardrails |
Skip git safety guardrails (empty "ask" list) |
Full Template (--full)
Adds to permissions:
"Bash(docker:*)",
"Bash(docker-compose:*)",
"Bash(podman:*)",
"Bash(kubectl:*)",
"Bash(helm:*)",
"Bash(terraform:*)",
"Bash(pulumi:*)",
"Bash(aws:*)",
"Bash(gcloud:*)",
"Bash(az:*)",
"Bash(wrangler:*)",
"Bash(flyctl:*)",
"Bash(railway:*)"
Notes
- Permissions are project-local (don't affect other projects)
- Rules instruct Claude to prefer modern tools
- Global settings in
~/.claude/still apply - Changes take effect on next tool use (no restart needed)
- Tools from: https://github.com/0xDarkMatter/dev-shell-tools