Claude Code自动化配置与DevOps实践指南

Claude Code设置:无人告知的DevOps指南

厌倦手动配置Claude Code?本文为您提供完整解决方案

虽然Claude Code是终端CLI工具,但自动化配置却花费了不少时间。在此分享经验,希望对在CI/CD系统或其他脚本中配置该工具的人员有所帮助。

推荐安装方式

npm install -g @anthropic-ai/claude-code

此命令将全局安装claude命令,接下来就可以开始使用了!

Claude Max或API密钥设置

手动设置过程中需要选择Claude Max订阅或Claude API。两者都会启动OAuth流程,无论是否在shell中配置了ANTHROPIC_API_KEY,都不容易自动化。

通过Reddit帖子发现可以使用ApiKeyHelper,允许Claude Code从脚本获取密钥。我们只需让它输出现有API密钥的环境变量即可,后续将在设置中进一步配置此脚本。

##################################
# 设置API助手
##################################
echo 'echo ${ANTHROPIC_API_KEY}' > /home/node/.claude/anthropic_key_helper.sh
chmod +x /home/node/.claude/anthropic_key_helper.sh

Claude配置与settings.json

CLI提供简单的claude config命令,用于管理~/.claude/claude.json中的配置。但发现该命令有时存在bug,而且团队似乎正在弃用此命令。

因此我们直接向~/.claude.json写入骨架配置:

  • shiftEnterKeyBindingInstalled:配置终端安装询问
  • hasCompletedOnboarding:指示配置已完成
  • 在此设置主题为dark

同时配置API密钥信任,语法似乎是API_KEY的最后20个字符:

ANTHROPIC_API_KEY_LAST_20_CHARS=${ANTHROPIC_API_KEY: -20}
# 将全局配置写入~/.claude.json
# 警告:这会覆盖现有配置
cat << EOM > ~/.claude.json
{
    "customApiKeyResponses": {
        "approved": [ "$ANTHROPIC_API_KEY_LAST_20_CHARS"],
        "rejected": [  ]
    },
    "shiftEnterKeyBindingInstalled": true,
    "theme": "dark" ,
    "hasCompletedOnboarding": true
}
EOM

现在可以配置之前设置的API密钥助手。在骨架配置之后进行此操作,否则会被覆盖:

claude config set --global apiKeyHelper ~/.claude/anthropic_key_helper.sh

信任与引导设置

下一步是消除关于是否信任Claude Code在当前目录运行的询问,并避免引导向导弹出:

claude config set hasTrustDialogAccepted true
claude config set hasCompletedProjectOnboarding true

设置MCP服务器

Claude Code对MCP有良好支持,现在甚至支持远程MCP服务器。

示例主要展示claude mcp add的使用,但倾向于使用add-json选项,因为它使配置更加灵活。此外,在添加mcp服务器之前倾向于运行npx install或docker pull,因为当Claude为您运行时没有进度输出。

还需注意,文件~/.claude/claude.json现在可能包含敏感密钥。如果在共享系统上,请确保设置正确的权限。

以下是安装mcp puppeteer容器的示例:

docker pull mcp/puppeteer

# 生成配置到MCP_JSON变量的示例
read -r -d '' MCP_JSON <<'EOF'
{
      "command": "docker",
      "args": ["run", "-i", "--rm", "--init", "-e", "DOCKER_CONTAINER=true", "mcp/puppeteer"]
}
EOF

# 然后添加它
claude mcp add-json puppeteer "$MCP_JSON"

# 列出服务器
claude mcp list

权限设置

当Claude Code代理运行时,默认会询问是否批准各种命令以及是否保存决定。以下是如何为不同工具设置权限的方法。注意mcp服务器使用mcp__前缀。

claude config add allowedTools "Edit,Bash"
claude config add allowedTools "mcp__puppeteer"

Claude VSCode扩展

Claude Code有VSCode扩展,可以在喜欢的IDE中安装。它不通过常规VSCode扩展市场提供,而是包npm安装的一部分。下载后可以手动安装。

注意这在devcontainer postCreate中不起作用,需要在终端内执行。在首次shell执行时执行的.bashrc中设置它。

#################################
# 为`vscode`设置IDE代码,为cursor设置`cursor`
IDE_CMD=cursor

# 在临时目录中操作
tempdir=$(mktemp -d)
cd $tempdir

# 下载包
npm pack @anthropic-ai/claude-code
tar -xzvf anthropic-ai-claude-code-*.tgz

# 安装扩展
# 需要重新加载编辑器
$IDE_CMD --install-extension package/vendor/claude-code.vsix

有趣的(未文档化设置)

虽然Claude Code不是开源的很难猜测,但肯定有很多未文档化设置。发现最有趣的是parallelTasksCount,似乎控制Claude Code处理的子任务数量,如果想要释放更多功率会很有帮助。

claude config set --global parallelTasksCount 3

方便的环境变量

最后,Claude Code有许多可以配置的环境变量。以下是为构建环境设置的最有趣变量,如设置超时和禁用遥测。

# 启用调试日志
# export ANTHROPIC_LOG=debug

# 禁用非必要流量并禁用遥测!
# - 相当于设置DISABLE_AUTOUPDATER, DISABLE_BUG_COMMAND, DISABLE_ERROR_REPORTING和DISABLE_TELEMETRY
# export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=true

# 定义API助手刷新频率
# CLAUDE_CODE_API_KEY_HELPER_TTL_MS

# 为更长的命令设置/增加bash超时
# BASH_DEFAULT_TIMEOUT_MS

# 设置mcp超时
# MCP_TIMEOUT

DevOps体验总结

设置Claude Code感觉有点像成为火星上的第一个DevOps。当每个人都在吹捧代理用户体验时,有些人只是试图让它在CI中工作。希望本指南能为您节省几个小时。欢迎fork我的claude_code_init脚本要点并分享您的设置技巧!
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)或者 我的个人博客 https://blog.qife122.com/
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值