广告位联系
返回顶部
分享到

claude配置文件搞定自动授权,用第三方model

Ai 来源:互联网 作者:佚名 发布时间:2026-09-03 21:55:28 人浏览
摘要

不难,其实就两步,我给你一套最省心的方案。之前折腾来折腾去,是因为命令行参数又长又容易写错(那个\就是坑你的),把权限全扔给配置文件,启动命令简化到最短就顺了。 第一步:配

不难,其实就两步,我给你一套最省心的方案。之前折腾来折腾去,是因为命令行参数又长又容易写错(那个 \ 就是坑你的),把权限全扔给配置文件,启动命令简化到最短就顺了。

第一步:配置文件搞定自动授权(一次配置,永久生效)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

mkdir -p ~/.claude

cat > ~/.claude/settings.json << 'EOF'

{

  "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 status git diff……那些了
  • deny 里保住底线(强推、sudo、删库),deny 优先级最高,所以这样放行是安全的
  • 日常开发基本零弹窗,但推送/合并这种你想把关的动作可以之后按需加到 ask

第二步:启动就是一条命令

1

claude

就这一个词。裸启动 claude 时会正常显示模型选择界面,选你的模型就行。这就是你之前感觉“没模型可选”的原因——--continue 会跳过选择界面直接恢复旧会话,续行符又写错了,两件事叠一起了。
进入会话后想换模型,随时:

1

/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。

原理:名字是壳,路由是里

1

2

3

4

5

6

7

你输入 /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 图形化改):

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

{

  "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 超长上下文时
改完执行:  

1

ccr restart

然后 ccr code 启动,/model 里随便选一个(比如 sonnet),实际用的就是 glm-4.6。

快速验证是不是真的路由到了你的模型

会话里直接问一句:

1

你现在实际是什么模型?你的 system prompt 里怎么写的?

或者看 ccr 日志:

1

ccr log

能看到请求实际转发到了哪个 provider/model。

如果你没走 ccr,是直连第三方 API

那就是环境变量的事,把模型写死即可(加到 ~/.bashrc 或 ~/.zshrc):

1

2

3

export ANTHROPIC_BASE_URL="https://open.bigmodel.cn/api/anthropic"

export ANTHROPIC_AUTH_TOKEN="你的key"

export ANTHROPIC_MODEL="glm-4.6"

但是 claude 启动后 /model 看不到自己的模型啊

可以,加一个 additionalDirectories 配置就行。Claude Code 默认只允许在当前工作目录里读写,你列的这几个路径在项目目录之外,所以需要显式授权。

在原配置基础上加上这些目录

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

cat > ~/.claude/settings.json << 'EOF'

{

  "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 里的配置文件)。如果只是想授权某几个项目,更稳妥的写法是:

1

2

3

4

5

"additionalDirectories": [

  "/tmp",

  "~/projects/*",

  "/usr/local/Ascend"

]

验证

重启 claude 后,输入/permissions应该能看到这些目录规则已加载。然后让它读一下/usr/local/Ascend下的文件,如果不再弹确认就说明生效了。改完记得重启会话(退出再进)才能加载新配置。这样启动后默认就用你的模型,/model列表虽然还是官方名字,但不用管它。

总结:/model 看不到自己模型 ≠ 配置失败,而是它本来就不显示第三方模型。真名在 ccr 的 config.json 里(ccr ui 改最方便)。你现在的启动方式是 ccr code 还是直连环境变量?告诉我具体哪种,我帮你核对对应的配置。


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计