Boris Cherny 是 Claude Code 的核心工程师,他最近分享了一个观察:开发者爱上 Claude Code,很大程度上是因为它的可定制性。这个判断很准确,因为它触及了一个被长期忽视的真相:工程师选择工具的终极标准,从来都是“这个东西能不能长成我的形状”。
Claude Code 提供了 37 项配置和 84 个环境变量,覆盖了从终端主题、快捷键、状态栏到权限系统的几乎所有层面。但真正有意思的,是这些定制能力背后的设计哲学。
先说几个实用的定制方向。
终端层面,你可以设置明暗主题、通知方式、换行快捷键,甚至开启 Vim 模式。这些看似琐碎,但终端是开发者每天盯着最久的界面,细节的舒适度直接影响心流状态。
努力程度可调,分低、中、高三档。低档省 token、快响应,高档多思考、更聪明。Boris 本人全程开高档,这倒也符合直觉:既然用了最强的工具,为什么要让它省力气?
插件系统是重头戏。Claude Code 支持安装 LSP(主流语言全覆盖)、MCP、技能包、自定义代理和钩子。你可以从官方市场安装,也可以为自己的公司搭建私有市场,然后把配置文件提交到代码仓库,团队成员自动同步。这意味着工具的定制成果可以像代码一样版本管理和团队共享。
自定义代理的设计尤其值得关注。只需在 .claude/agents 目录下放入 Markdown 文件,就能创建拥有独立名称、配色、工具集、权限模式和模型的专属代理。你甚至可以指定默认代理来接管主对话。这本质上是让每个开发者拥有了一个可编程的 AI 协作者,而且编程方式是写自然语言文档。
权限系统的设计体现了安全与效率的平衡术。Claude Code 底层结合了提示注入检测、静态分析、沙盒隔离和人工审核,默认只预批准一小组安全命令。你可以通过通配符语法扩展白名单,比如允许所有“bun run”开头的命令,或允许编辑 /docs 目录下的所有文件。沙盒功能支持文件和网络双重隔离,在本地运行,兼顾了安全性和低延迟。
钩子机制是高阶玩法。它允许你在 Claude 的生命周期中插入确定性逻辑:把权限请求自动转发到 Slack,在一轮对话结束时判断是否需要继续,对工具调用做预处理或后处理。这实际上把 Claude Code 从一个对话工具变成了一个可编排的工作流引擎。
还有一些让人会心一笑的小设计:自定义加载动画的动词、自定义状态栏显示内容、输出风格切换。比如“解释型”风格适合熟悉新代码库时使用,Claude 会边工作边解释框架和设计模式;“学习型”风格则让 Claude 扮演教练角色,引导你自己完成代码修改。
有人质疑说“无限的可配置性往往掩盖了缺乏主见的设计”,Boris 的回应很简洁:Claude Code 有主见的默认值,你可以改,但不是必须改。这恰好是优秀工具设计的黄金法则。默认值体现品味,可定制性体现尊重。一个工具如果只有好的默认值,它是好产品;如果同时还能被深度定制,它就变成了每个人手中不同的武器。
所有配置都可以通过 settings.json 提交到代码仓库,支持代码库级、子目录级、个人级和企业级四个层次的配置粒度。这意味着团队的最佳实践可以像代码规范一样沉淀和传承。
工具的终极价值从来不在于功能列表的长度,而在于它能多大程度上消失在使用者的工作流中,成为思维的自然延伸。Claude Code 正在朝这个方向走。
x.com/bcherny/status/2021699851499798911