用途
setperms 用于初始化 Claude Code 的工具权限与偏好配置,把它配置为一套「现代 dev-shell-tools」开发环境。它会在当前项目的 .claude/ 目录中生成权限文件与规则文件,使 Claude Code 自动批准常用命令行工具,并按规则优先使用现代替代工具。
主要能力
- 权限配置(.claude/settings.local.json) 写入 permissions.allow 白名单,预批准一组命令行工具;permissions.ask 为危险 git 操作设置确认门;permissions.deny 默认为空。hooks 默认为空对象。 默认白名单涵盖:
- Git 与代码托管:git、lazygit、gh、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、npx、node、pnpm、yarn、bun、python、uv、pip、cargo、go、brew
- 构建:just、make、bash、rustc
- 网络:curl、http(httpie)、firecrawl、markitdown
- 容器:docker、docker-compose
- 压缩:tar、zip、unzip
- 测试:pytest
- 文本数据:sort、uniq、cut、tr、xargs、tee、head、tail、diff
- 文档:tldr
- Windows:powershell -Command、powershell.exe
- AI CLI:gemini、claude、codex、perplexity
-
git 安全护栏(ask 列表) 以下破坏性 git 命令需要先确认:git reset --hard、git checkout -- :、git clean -f、git stash drop、git stash clear、git restore --worktree、git push --force、git push -f、git push origin --force、git push origin -f、git branch -D。
-
强制保护 settings.local.json(secret-safety) 确保仓库根目录 .gitignore 排除 .claude/settings.local.json;若该文件已被 git 跟踪,则执行 git rm --cached 停止跟踪(保留本地文件)。若项目没有 git 仓库则静默跳过。
-
规则配置(.claude/rules/cli-tools.md) 写入工具偏好指令,要求 Claude 优先使用现代工具,例如:用 fd 代替 find、rg 代替 grep、eza 代替 ls、bat 代替 cat、z/zoxide 代替 cd、eza --tree 代替 tree;用 sd 代替 sed、jq 处理 JSON、yq 处理 YAML;用 delta/difft 代替 git diff、lazygit 代替手工 git、gh 代替 GitHub 网页;代码分析用 tokei、ast-grep/sg、hyperfine、dust;系统监控用 dust 代替 du -h、btm(bottom)代替 top/htop;文档用 tldr 代替 man;Python 用 uv 代替 pip、uv venv 代替 python -m venv;任务运行优先 just 而非 Makefile。 网页抓取优先级:1)WebFetch(内置、快速,首先尝试);2)r.jina.ai/URL(JS 渲染页面、提取更干净);3)firecrawl(绕过反爬、被封站点)。 AI CLI 工具用途:gemini(Gemini 2.5,2M 上下文,大体量代码库)、claude(编码与分析)、codex(深度推理)、perplexity(网页搜索与最新信息)。 规则文件还包含 git 安全说明及破坏性命令的安全替代建议: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。并建议破坏性操作前依次执行 git status、git diff、git stash,并优先使用 dry-run 参数。
使用方式
执行 /setperms 命令触发。执行流程:
- 检查是否存在 .claude/settings.local.json 与 .claude/rules/cli-tools.md;若存在则询问:Overwrite(完全替换)或 Skip(保留现有,不做操作)。
- 创建目录:mkdir -p .claude/rules。
- 写入 .claude/settings.local.json 权限文件。
- 确保 .gitignore 排除 settings.local.json,必要时停止 git 跟踪。
- 写入 .claude/rules/cli-tools.md 规则文件。
- 向用户报告:已创建两个文件(74 项工具权限、11 项护栏),Claude 将自动批准 dev-shell-tools 命令、优先现代工具、使用 AI CLI 做多模型分析、在执行破坏性 git 命令前询问。 自定义方式:编辑 .claude/ 下的文件;纳入 git:git add .claude/。
可用选项:
- --force:覆盖现有文件且不询问
- --perms-only:只安装权限,跳过规则
- --rules-only:只安装规则,跳过权限
- --minimal:最小权限(仅 git、ls、cat、mkdir)
- --full:增加云与容器工具(docker、kubectl、terraform 等),具体附加项:podman、kubectl、helm、terraform、pulumi、aws、gcloud、az、wrangler、flyctl、railway
- --no-guardrails:跳过 git 安全护栏(ask 列表置空)
适用场景
- 首次在项目中配置 Claude Code,希望一次性预批准常用开发命令。
- 希望 Claude Code 优先使用 fd、rg、bat、eza、sd、jq、yq、uv、just 等现代工具。
- 希望为破坏性 git 命令增加确认门,并防止 settings.local.json 泄露密钥。
- 需要在多 AI CLI(gemini、claude、codex、perplexity)之间进行多模型分析时统一工具入口。
限制与注意事项
- 权限为项目本地,不影响其它项目;全局设置 ~/.claude/ 仍然生效。
- 规则仅是「指示 Claude 优先使用现代工具」,不代表这些工具在系统上一定已安装。
- 变更在下次工具调用时生效,无需重启。
- 工具来源为 https://github.com/0xDarkMatter/dev-shell-tools。
- 关于具体收费、价格、平台支持范围等,资料未提供。