Claude Code 本机配置手册
已验证(2026-07-08,John 本机 Ubuntu)。记录本机四项配置:①状态栏 ②中文输出 ③全局规则 ④密钥防护。命令均实跑过,真实输出已回填。
1 · 状态栏(statusline):底部显示会话信息
问题:底部只有 auto mode on… 操作提示,看不到模型 / 目录 / 分支 / 花费。
原因:Claude Code 没有"一键开关"——statusLine 的机制是"跑一个命令,把输出显示在底部",必须给它一个产生这行的命令。
方案(二选一):
| 方案 | 装法 | 说明 |
|---|---|---|
| ccstatusline(11.5k⭐) ✅ | npx 一条命令 + TUI 勾选 | 首选:star 最多、可视化配置、不需 Nerd Font |
/statusline 内置命令 | 输入框敲 /statusline 显示模型、目录、分支、花费 | 官方原生,Claude 自动生成脚本;可控性一般 |
安装 ccstatusline(已验证)
node 由 nvm 管理,普通终端可能没加载 nvm(会 npx: 未找到命令),命令前统一加 . ~/.nvm/nvm.sh &&。TUI 要在你自己的终端跑(手敲别粘贴,避免 ^[[200~ 括号粘贴残留)。
. ~/.nvm/nvm.sh && npx -y ccstatusline@latestTUI 内:选 📦 Install to Claude Code → 选 Pinned global install(直接跑二进制,快)→ Ctrl+S 保存 → 🚪 Exit。导航:↑↓ 移动、Enter 选、Esc 返回、Ctrl+S 存。
核对写入:
jq '.statusLine' ~/.claude/settings.json
# → {"type":"command","command":"ccstatusline","padding":0,"refreshInterval":10}新开会话,底部出现 Model: Opus 4.8 | Ctx: … | ⎇ 分支。想加花费/用时:回 TUI 📝 Edit Lines 加 Session Cost / Duration。
- 日后改配置:
. ~/.nvm/nvm.sh && ccstatusline(已全局装,无需再 npx)→ Edit Lines / Edit Colors → Ctrl+S → 重开会话。 - 回滚:
jq 'del(.statusLine)' ~/.claude/settings.json > /tmp/s.json && mv /tmp/s.json ~/.claude/settings.json。
2 · 中文输出:修好断掉的全局指令
问题:跟 Claude 聊天动不动输出英文 / 日文 / 韩文。
原因:~/.claude/CLAUDE.md 曾是指向 dotfiles/agents.md(不存在、大小写还对不上)的坏软链接,且本机没装 chezmoi,全局指令实际为空 → Claude 无语言约束,跟着读到的素材语言跑偏。
修复:改成独立实体文件(不绕 dotfiles/chezmoi,更稳),首条即"默认简体中文":
rm ~/.claude/CLAUDE.md # 删坏软链接
cp /home/john/dotfiles/home/.chezmoitemplates/ai-agents.md ~/.claude/CLAUDE.md隐患:dotfiles 里
home/dot_claude/CLAUDE.md.tmpl还在;哪天装了 chezmoi 并chezmoi apply,会用模板覆盖这份手工文件——届时需决定二者留哪个。
3 · 全局规则:~/.claude/CLAUDE.md 的内容
对所有会话生效的缺省基线。原则:越短越好,别写 Claude 默认就会做的事(优先用 rg、优先改文件不新建、没要求不提交、回复简洁——这些是默认行为,写了只浪费上下文额度)。
当前分节:
- 输出语言 —— 默认简体中文,API/CLI/SDK 等术语保留原文
- 沟通 —— 直接、不谄媚,有更优方案直接指出
- 编码原则 —— 通用 / PHP / Python
- 执行原则 —— 先明确、最小改动、简洁、阻塞才问、验证收尾、破坏性操作先确认、临时文件卫生
优先级:项目自带的
CLAUDE.md/AGENTS.md> 这份全局。冲突时以项目为准。
4 · 密钥防护:settings.json 硬拦截
文字规则 Claude 只"大致遵守",敏感文件要靠机制挡。~/.claude/settings.json 的 permissions.deny(工具层直接拒绝读取,任何项目通用):
"deny": [
"Read(**/.env)", "Read(**/.env.*)", "Read(**/secrets.env)",
"Read(**/secrets/**)", "Read(**/credentials)", "Read(**/credentials.json)",
"Read(**/*.pem)", "Read(**/*.key)", "Read(**/id_rsa)", "Read(**/id_ed25519)"
]- 硬拦截:确需让 Claude 读某个
.env,得先临时删掉对应 deny 条(deny 不能靠授权临时放行)。 .env.*会连.env.example一起挡;常看示例配置就加例外。
排错表(statusline)
| 现象 | 原因 | 解决 |
|---|---|---|
npx: 未找到命令 | 该 shell 没加载 nvm(加载块在 .bashrc,登录/粘贴场景可能没生效) | 命令前加 . ~/.nvm/nvm.sh &&;或用绝对路径 ~/.nvm/versions/node/v22.22.3/bin/npx … |
行首出现 ^[[200~ | 终端"括号粘贴"控制符漏出,可能弄脏命令 | 手敲别粘贴;或粘完删掉行首那串再回车 |
| 状态栏没出现 | 没重开会话;或用 nvm 切了 node 版本导致全局包不在新版本里 | 新开会话;切了版本就重跑一次安装 |
| 图标显示成方块 | 选了需 Nerd Font 的组件但终端字体不对 | 换纯文本组件,或装 Nerd Font |
出处
- ccstatusline:https://github.com/sirmalloc/ccstatusline(11.5k ⭐)
- awesome-claude-code(资源汇总):https://github.com/hesreallyhim/awesome-claude-code
- 官方 memory / CLAUDE.md 文档:https://code.claude.com/docs/en/memory