
不难其实就两步我给你一套最省心的方案。之前折腾来折腾去是因为命令行参数又长又容易写错那个\就是坑你的把权限全扔给配置文件启动命令简化到最短就顺了。第一步配置文件搞定自动授权一次配置永久生效mkdir-p~/.claudecat~/.claude/settings.jsonEOF { permissions: { allow: [ Read, Write, Edit, Glob, Grep, Bash(git:*), Bash(ls:*), Bash(cd:*), Bash(pwd), Bash(mkdir:*), Bash(npm:*), Bash(node:*), Bash(python3:*), WebFetch, WebSearch ], deny: [ Bash(git push --force:*), Bash(sudo:*), Bash(rm -rf:*), Read(./.env), Read(./.env.*) ] } } EOF说明Bash(git:*)一条顶十条——放行所有 git 常用操作不用再一条条列git statusgit diff……那些了deny 里保住底线强推、sudo、删库deny 优先级最高所以这样放行是安全的日常开发基本零弹窗但推送/合并这种你想把关的动作可以之后按需加到ask第二步启动就是一条命令claude就这一个词。裸启动claude时会正常显示模型选择界面选你的模型就行。这就是你之前感觉“没模型可选”的原因——--continue会跳过选择界面直接恢复旧会话续行符又写错了两件事叠一起了。进入会话后想换模型随时/model最终效果你的需求怎么实现的自动授权settings.json 里的allow不用再传一堆--allowedTools能选模型裸claude启动 → 出现模型选择界面进去后/model随时切恢复上次对话需要时claude -c想看到选择界面就用claude --resume安全兜底deny 列表挡住 sudo / 强推 / rm -rf唯一要注意的改完 settings.json 后要退出当前会话重新启动才会加载。如果你说的“选自己的模型”是指用ccr 路由到第三方模型GLM、DeepSeek 之类那模型列表是在~/.claude-code-router/config.json里配的——把你ccr code用的那份配置检查一下就行。是这个情况的话告诉我我给你看那份配置怎么写。这就要说清楚/model的工作机制了/model列表里永远只显示 Anthropic 官方那几个名字opus / sonnet / haiku / opusplan 之类。它不是“模型商店”只是个选择器。你的自定义模型到底是谁是由后端路由配置决定的——尤其你走的是 ccr。原理名字是壳路由是里你输入 /model sonnet ↓ Claude Code 发请求: model claude-sonnet-... ↓ ccr 拦截 → 查 ~/.claude-code-router/config.json 的 Router 规则 ↓ 实际转发给你配的模型比如 GLM / DeepSeek / Qwen所以/model里看不到 “glm-4.6” 这类名字是正常的。你要做的是在 ccr 配置里把这几个“壳名字”映射到你自己的模型。配置方法编辑~/.claude-code-router/config.json或者直接跑ccr ui图形化改{Providers:[{name:glm,api_base_url:https://open.bigmodel.cn/api/anthropic/v1/messages,api_key:你的key,models:[glm-4.6]}],Router:{default:glm,glm-4.6,think:glm,glm-4.6,background:glm,glm-4.6,longContext:glm,glm-4.6}}Router 格式是提供商名,模型名。四个场景的含义路由项什么时候用default普通对话你在/model里选 sonnet 之类走这里think你选了 opus推理加强场景background后台小任务摘要、起标题longContext超长上下文时改完执行ccr restart然后ccr code启动/model里随便选一个比如 sonnet实际用的就是glm-4.6。快速验证是不是真的路由到了你的模型会话里直接问一句你现在实际是什么模型你的 system prompt 里怎么写的或者看 ccr 日志ccr log能看到请求实际转发到了哪个 provider/model。如果你没走 ccr是直连第三方 API那就是环境变量的事把模型写死即可加到~/.bashrc或~/.zshrcexportANTHROPIC_BASE_URLhttps://open.bigmodel.cn/api/anthropicexportANTHROPIC_AUTH_TOKEN你的keyexportANTHROPIC_MODELglm-4.6但是 claude 启动后 /model 看不到自己的模型啊可以加一个additionalDirectories配置就行。Claude Code 默认只允许在当前工作目录里读写你列的这几个路径在项目目录之外所以需要显式授权。在原配置基础上加上这些目录cat~/.claude/settings.jsonEOF { permissions: { additionalDirectories: [ /tmp, /home, /usr/local/Ascend ], allow: [ Read, Write, Edit, Glob, Grep, Bash(git:*), Bash(ls:*), Bash(cd:*), Bash(pwd), Bash(mkdir:*), Bash(npm:*), Bash(node:*), Bash(python3:*), WebFetch, WebSearch ], deny: [ Bash(git push --force:*), Bash(sudo:*), Bash(rm -rf:*), Read(./.env), Read(./.env.*) ] } } EOF几点说明additionalDirectories的作用把这些目录加入“工作区”Read/Write/Edit/Glob 等文件操作在这些目录内自动放行不再弹窗。路径支持~、*通配符和 gitignore 风格语法比如~/projects/*。注意路径拼写你写的是/usr/local/Ascendc华为昇腾的目录通常是/usr/local/Ascend——我按后者写的如果你机器上确实叫别的名字以实际为准可以先ls /usr/local/确认。权限生效范围在additionalDirectories内的文件编辑会自动授权但 Bash 命令不受它约束——Bash 走的是allow列表里的命令前缀规则。所以cd /tmp git status这类复合命令里带cd已经放行了就没事。提醒一下范围有点大/home和/tmp整个放进去意味着 Claude 可以不经确认改写这两个目录下任何你能访问的文件包括你 home 里的配置文件。如果只是想授权某几个项目更稳妥的写法是additionalDirectories:[/tmp,~/projects/*,/usr/local/Ascend]验证重启 claude 后输入/permissions应该能看到这些目录规则已加载。然后让它读一下/usr/local/Ascend下的文件如果不再弹确认就说明生效了。改完记得重启会话退出再进才能加载新配置。这样启动后默认就用你的模型/model列表虽然还是官方名字但不用管它。总结/model看不到自己模型 ≠ 配置失败而是它本来就不显示第三方模型。真名在 ccr 的config.json里ccr ui改最方便。你现在的启动方式是ccr code还是直连环境变量告诉我具体哪种我帮你核对对应的配置。