Skip to content

विकास विन्यास (Development Configuration): Claude के कार्य वातावरण को अनुकूलित करना

📚 सीरीज नेविगेशन: पिछला लेख 45 Agent SDK ने आपको सिखाया कि कैसे Claude Code क्षमताओं को कोड के माध्यम से अपने अनुप्रयोगों में एकीकृत करें। यह लेख वापस आपके दैनिक टर्मिनल उपयोग पर ध्यान केंद्रित करता है—Claude कहाँ चलता है, इसके पास किन फ़ाइलों का एक्सेस है, क्या यह प्रॉक्सी का उपयोग करता है, यह कैसा दिखता है, और कौन सा मॉडल प्रयुक्त है। कार्य वातावरण से जुड़ी इन पांच सेटिंग्स को अपनी आवश्यकताओं के अनुसार समायोजित करने का समय आ गया है। इस लेख में हम विकास विन्यास (development configuration) के सबसे सामान्य पहलुओं को विस्तार से समझेंगे।

यहाँ एक सामान्य परिदृश्य प्रस्तुत किया गया है जिसका सामना बहुत से लोग करते हैं।

कई लोग Claude Code का उपयोग डिफ़ॉल्ट सेटिंग्स के साथ करते हैं, बिना किसी बदलाव के। लेकिन जब वे किसी संवेदनशील या अपरिचित निजी रिपोजिटरी (private repository) पर काम करते हैं, तो उन्हें सुरक्षा की चिंता होती है—क्योंकि कोड अपरिचित है, और यदि इसमें कोई दुर्भावनापूर्ण निर्देश छिपा है, तो Claude सीधे आपके स्थानीय कंप्यूटर पर कमांड निष्पादित कर सकता है, जिससे आपकी SSH कुंजियाँ, npm क्रेडेंशियल्स, और संवेदनशील फ़ाइलें प्रभावित हो सकती हैं। ऐसी स्थिति में लोग आम तौर पर सुरक्षा के लिए क्या करते हैं? प्रत्येक कमांड की मैन्युअल रूप से निगरानी करते हैं, और अपना हाथ हमेशा Ctrl+C पर रखते हैं। पूरे दोपहर निगरानी करने के बाद, वे थक जाते हैं और बहुत कम काम पूरा कर पाते हैं।

其实这事儿官方早给了答案——把 Claude 关进一个隔离环境里跑就行,沙箱、容器、虚拟机随你挑,它在里头怎么折腾都伤不到主机。那种设计是为了不打断你干活,但也意味着——你以为开了沙箱,其实可能在裸跑。

मैं यह उदाहरण इसलिए दे रहा हूँ ताकि आप इस समस्या से बच सकें। विकास विन्यास (development configuration) सामान्य रूप से अनदेखा कर दिया जाता है, लेकिन यह सुरक्षा सुनिश्चित करने, खर्च बचाने और अनुभव को बेहतर बनाने के लिए अत्यंत महत्वपूर्ण है। आज हम पांच सबसे उपयोगी सेटिंग्स का चयन करेंगे और प्रत्येक को विस्तार से समझाएंगे:

इस लेख को पढ़ने के बाद, आपको मिलेगा:

  • पांच विकास विन्यासों (सैंडबॉक्स, devcontainer, नेटवर्क, टर्मिनल, मॉडल) के अनुप्रयोगों और उपयोग के समय का संक्षेप विवरण
  • सैंडबॉक्स (sandbox) को /sandbox कमांड के माध्यम से सक्रिय करना, जिससे सुरक्षा के साथ-साथ बार-बार पुष्टिकरण की आवश्यकता समाप्त हो जाती है
  • devcontainer का उद्देश्य, सैंडबॉक्स से इसका संबंध, और टीम सहयोग में इसकी भूमिका
  • जब कंपनी प्रॉक्सी या फ़ायरवॉल के पीछे हो, तो कनेक्शन विन्यास कैसे स्थापित करें
  • टर्मिनल सेटिंग्स में तीन महत्वपूर्ण बदलाव (换行, अधिसूचना, थीम), और लागत नियंत्रण के लिए मॉडल का चयन
  • एक व्यावहारिक अभ्यास जिसका आप अनुसरण कर सकते हैं: सैंडबॉक्स सक्रिय करना और मॉडल प्राथमिकताएं सेट करना

01 先建个框架:开发配置管的是 Claude 的「工作环境」五件事

开始之前,先在脑子里把这块归个类。「开发配置」不是一堆零散开关,它管的是同一件事的五个侧面——Claude 干活的那个「工作环境」长什么样。

एनालॉजी: एक नए कर्मचारी के लिए कार्यस्थल (workstation) तैयार करना। जब कोई नया कर्मचारी (Claude) काम शुरू करता है, तो आप उसके कार्यस्थल का निर्धारण करते हैं: वह किस कमरे में काम करेगा (आपकी स्थानीय मशीन पर, या एक अलग सुरक्षित कमरे में), उस कमरे की खिड़कियाँ कहाँ खुलती हैं (नेटवर्क एक्सेस, कंपनी फ़ायरवॉल को कैसे बायपास करें), मेज और कुर्सी आरामदायक हैं या नहीं (टर्मिनल की 换行, सूचनाएं, रंग योजना), और क्या वह एक अनुभवी वरिष्ठ कर्मचारी है या प्रशिक्षु (मॉडल चयन)। जब ये चीजें व्यवस्थित होती हैं, तो काम कुशलतापूर्वक और सुरक्षित रूप से पूरा होता है। विकास विन्यास यही कार्यस्थल विन्यास है।

落到真实场景,这五件事是:

  • अलगाव (Isolation) — सैंडबॉक्स / devcontainer, जो यह निर्धारित करता है कि कमांड्स चलाते समय Claude के पास आपकी स्थानीय मशीन की कितनी फ़ाइलों का एक्सेस है।
  • नेटवर्क (Network) — प्रॉक्सी और प्रमाणपत्र विन्यास, जो यह निर्धारित करता है कि यह फ़ायरवॉल के पीछे इंटरनेट से कनेक्ट होता है।
  • टर्मिनल (Terminal) — 换行, अधिसूचना, रंग योजना, Vim मोड, जो उपयोगकर्ता अनुभव को प्रभावित करते हैं।
  • मॉडल (Model) — Opus, Sonnet, या Haiku का चयन, जो लागत और प्रदर्शन को निर्धारित करता है。

并排放一张表,对照着看立刻清楚各管各的:

विन्यास प्रकार这是什么工作最佳使用时机
सैंडबॉक्स (sandbox)限制 Bash 命令的范围,减少询问嫌它老问权限,或要碰不太信任的代码
devcontainer团队共用一个一致、隔离的环境团队协作、要无人值守跑、新人入职统一环境
网络配置公司代理 / 防火墙后面连得上连不上 api.anthropic.com、公司装了 TLS 检查
टर्मिनल विन्यास换行、通知、配色用着顺手Shift+Enter 不换行、跑完任务没提示音
मॉडल विन्यास根据任务选择模型,控成本烧额度太快,或想给不同活儿配不同模型

这表你不用背,但「我现在的困扰属于哪一块」这个意识得有——连不上是网络的事别去翻沙箱,嫌它老问权限是沙箱的事别去调模型。分清了,下面每一节你按需挑着看就行。

值得先点一句:这五块里,沙箱、网络、模型是你十有八九会真动手调的;devcontainer 偏团队场景,终端配置偏个人手感。所以如果你时间紧,先把沙箱、网络、模型三块吃透,devcontainer 和终端配置按需再看。

💡 一句话总结:开发配置管的是 Claude 干活的「工作环境」五件事——隔到哪儿干(沙箱 / devcontainer)、门窗通到哪(网络)、桌椅顺不顺(终端)、派谁来干(模型);先认准困扰属于哪块,再去调对应的开关。


02 沙箱:让 Claude 少问你,又跑不出隔离圈

先讲最实用、也最容易被忽略的一块——沙箱化 Bash 工具(sandboxed Bash tool)。这是 Claude Code 自带的功能,开起来就一条命令。

它解决的是一对矛盾

你用到现在,大概率被一个矛盾夹过:想让 Claude 跑得顺,又怕它跑得太野。 权限模式(第 20 篇讲过)只有两头——要么每条命令都停下来问你(烦),要么开自动模式放它撒欢(怕)。沙箱给的是中间那条路。

एनालॉजी: परीक्षण ट्रैक (test track) पर कार चलाना। 你不会让一辆没磨合的车直接上城市道路狂奔——撞了伤的是行人和你自己。但拉到封闭试车场里就不一样了:场子四周是实打实的墙,车在里头怎么飙都飞不出去,你也就不用一路踩着刹车跟着跑了。沙箱就是给 Claude 圈的这么个试车场——操作系统层面给每条 Bash 命令划一个圈:能写哪些文件、能上哪些网,划死。Claude 在圈里随便跑,不用一条条问你;想跨出圈(比如访问一个新网络域),才停下来等你点头。

官方把这层意思说得很准:

Bash 沙箱让 Claude 可以运行大多数 shell 命令,而无需停下来请求权限。与其批准每个命令不同,你定义命令可以接触哪些文件和网络域,操作系统为每个 Bash 命令及其子进程强制执行该边界。

注意「操作系统强制执行」这几个字——这不是 Claude「答应你不出圈」,是底层操作系统拦着它出圈。这跟写在 CLAUDE.md 里的「请不要乱跑命令」是两码事:一个是请求,一个是硬墙。

怎么开:一条 /sandbox

沙箱内置在 Claude Code 里,在 macOS、Linux、WSL2 上能用,原生 Windows 不支持(Windows 用户在 WSL2 里跑)。开它就一步——在会话里敲:

text
/sandbox

这会弹出一个面板,有三个选项卡:

  • Mode (模式): "自动允许" 还是 "常规权限"。自动允许 = 沙箱化的命令不再提示你直接跑(这才是沙箱的爽点);常规权限 = 即便沙箱化了也照样问你。
  • Overrides (覆盖): 控制沙箱内跑不了的命令能否回退到无沙箱流程运行(对应 allowUnsandboxedCommands 设置)。
  • Config (配置): 看当前生效的沙箱边界长啥样。

平台差异得说清楚:

  • macOS:什么都不用装。沙箱用的是系统自带的 Seatbelt 框架,开箱即用。
  • Linux / WSL2:靠两个包——bubblewrap(管文件隔离)和 socat(管网络中继)。没装的话,/sandbox 面板会只显示一个 Dependencies 选项卡告诉你缺啥,按提示装上(Ubuntu / Debian 是 sudo apt-get install bubblewrap socat),重启 Claude Code 再开。

默认边界很克制——沙箱里的命令只能写当前工作目录,命令第一次要碰新网络域时,Claude Code 才停下来问你批不批。在面板里选的模式,会写进项目的 .claude/settings.local.json(只管当前项目、不进 git)。想让所有项目都默认开沙箱,就去用户级的 ~/.claude/settings.jsonsandbox.enabled 设成 true(settings.json 的层级规则见第 31 篇)。

这里提醒一个容易踩的小坑:沙箱要是因为缺依赖或平台不支持起不来,Claude Code 默认是「打个警告、然后照样不带沙箱跑」,不会硬拦着你。这设计是为了不打断你干活,但也意味着——你以为开了沙箱,其实可能在裸跑。所以重要场合别想当然,回头用第 07 节的法子验一下它真在圈里。要是你要的是「沙箱起不来就别跑」的硬保证,把 sandbox.failIfUnavailable 设成 true

一个关键限制:沙箱只管 Bash

这条得划重点,不然你会误以为开了沙箱就万事大吉。自带的这个沙箱,只圈住 Bash 命令。 Claude 的其他动作——读写文件(Read / Edit)、抓网页(WebFetch)、还有你装的 MCP server 和 Hook——这些都还在你主机上裸跑,不受这个沙箱管。

官方说得很明白:

内置文件工具、MCP 服务器和 hooks 仍直接在您的主机上运行。

所以**「自带沙箱」适合的是「我自己机器上日常干活,想少点权限提示」** 这个场景。要是你想把整个 Claude Code 进程(连文件工具、MCP、Hook 一起)都关进圈里,那得用下一节的容器,或者官方那个还在测试期的 sandbox runtime(实验性,可能变化)——它能把整个进程包进同一层隔离。一般来说,日常就开着自带沙箱图个清净,碰到真不信任的代码才升级到容器。

💡 一句话总结:沙箱用一条 /sandbox 给每条 Bash 命令圈个「试车场」——操作系统层面划死能碰的文件和网络,Claude 在圈里随便跑举用一条条问;但记住它只管 Bash,文件工具、MCP、Hook 还在主机上裸跑。


03 devcontainer:给全队发一间一模一样的「独立工作间」

上一节的沙箱是「你自己机器上圈一块」。这一节的 devcontainer(开发容器) 是另一个量级——把 Claude 整个挪进一间独立的「房间」里跑

它解决的是「环境不一致」和「无人值守」

两个痛点逼出 devcontainer:

第一,环境不一致。你机器上 Node 18、同事机器上 Node 20,Claude 跑出来的结果对不上,扯皮。第二,你想让 Claude 无人值守地干——挂个长任务出去吃饭,回来活儿干完。但放它在主机上无人盯着撒欢,太险。

类比:图书馆的独立研究间。 你在开放阅览区办公(主机),桌上摊着自己的私人物品,谁路过都能瞥见,你也不敢离开半步。但订一间独立研究间就不一样了——屋里是图书馆给配好的标准桌椅设备(人人一样),门一关,里头干啥外面不沾;你的私人物品也没带进去。devcontainer 就是这么间研究间:一个用配置文件定死的、人人一致的隔离环境,Claude 在里头跑命令,碰不到你主机上的密钥和私密文件。

官方的定义:

开发容器(或 dev container)让您定义一个相同的、隔离的环境,团队中的每个工程师都可以运行。在该容器中安装 Claude Code 后,Claude 运行的命令会在容器内执行,而不是在主机上执行,同时对项目文件的编辑会在您工作时显示在本地存储库中。

这句里有个妙处:命令在容器里跑,但改的文件直接显示在你本地仓库里。等于「干活在隔离间,成果照样落到你手边」,两全。

怎么开:加一段 feature,重建容器

devcontainer 需要 Docker,并且要用支持 Dev Containers 规范的编辑器(VS Code、Codespaces、JetBrains、Cursor 等;纯 Vim 这种不支持的不在此列)。装 Claude Code 进容器,就是往项目的 .devcontainer/devcontainer.json 里加一段:

json
{
  "image": "mcr.microsoft.com/devcontainers/base:ubuntu",
  "features": {
    "ghcr.io/anthropics/devcontainer-features/claude-code:1.0": {}
  }
}

那个 features 块就是官方的 Claude Code Dev Container Feature,它负责把 Claude Code 装进容器。image 那行换成你项目自己的基础镜像。写完在 VS Code 里按 Cmd+Shift+P(Win / Linux 是 Ctrl+Shift+P)运行 Dev Containers: Rebuild Container 重建,然后在容器里的终端跑 claude 登录就行。

这里有个新手必栽的坑官方专门提醒过:容器主目录默认在重建时会被丢掉,每次重建都得重新登录。想保住登录态,得给 ~/.claude 挂一个命名卷(named volume,一种重建后还在的持久存储)。这块属于进阶,头一次玩知道有这回事就够,真要长期用再去翻官方 devcontainer 文档配卷挂载。

还有条安全前提,官方拿红框警示过,别忽略:

仅在使用受信任的存储库进行开发时使用开发容器,并监控 Claude 的活动。避免将主机密钥(如 ~/.ssh 或云凭证文件)挂载到容器中。

翻成人话:容器是道保护,但不是金钟罩。尤其当您给它配了「跳过权限提示」让它无人值守跑时,恶意代码照样能搞坏容器里能碰到的东西。所以别图省事把你主机的 SSH 密钥挂进去——要用就用仓库范围的、短期的令牌。

devcontainer vs 沙箱:别搞混

这俩都叫「隔离」,但不是一个东西。我用一张表把上一节的沙箱、这一节的 devcontainer,连官方列的其他几种隔离方式一起摆出来,你一眼看清该用哪个:

隔离方式保护范围是否需要 Docker适合
自带沙箱/sandbox只圈 Bash 命令自己机器日常干活、想少点权限提示
devcontainer整个开发环境团队统一环境、无人值守跑
自定义容器 / 虚拟机整个环境 / 整个操作系统容器要、VM 不要跑不信任的代码、要内核级隔离
Claude Code on the web第 11 篇整个操作系统,Anthropic 托管不想自己搭环境、没本地环境也能用

把这几种方式按「圈得有多严」从左到右排一排,你心里就有杆秤了——越往右隔离越强、配起来越费劲,按你对代码的信任程度往右挪

Claude Code 隔离级别: 基本 -> 自带沙箱 -> devcontainer -> 自定义 VM -> 云端托管

这张图把五档隔离强度连成一条线:最左是「啥都不隔离、Claude 直接在你主机动手」,往右每一档圈的范围更大、隔离更硬——从只管 Bash 命令的自带沙箱,到圈住整个开发环境的 devcontainer,再到内核级的虚拟机,最右是 Anthropic 替你托管的云端隔离。你对手上这份代码越没底,就越该往右边挑。

官方给的选择口诀我替你浓缩成三句:

  • 自己机器日常想少问 → 自带沙箱,一条 /sandbox 搞定。
  • 团队要一致环境 / 想无人值守 → devcontainer,提交进仓库全队共用。
  • 代码完全不信任 → 专用虚拟机或网页版,要内核级的硬隔离。

落到实践上:个人项目就开自带沙箱;接外部不熟的仓库,要么 devcontainer 要么干脆扔进 Claude Code on the web 那个云端隔离环境里跑——开头那一下午的「人肉监控」,要是当时知道有网页版,根本不用受那个罪。

💡 一句话总结:devcontainer 是给全队发一间「配置一致的独立工作间」——命令在容器里跑(碰不到主机密钥)、改动直接落本地仓库,靠 .devcontainer/devcontainer.json 加一段 feature 开;它跟自带沙箱的区别是圈整个环境 vs 只圈 Bash,按信任程度往上选。


04 网络配置:公司在防火墙后面,怎么让它连得上

这一节专门给两类人:在公司内网、流量得过代理的,和国内连不上 Anthropic 的。环境正常的可以快速扫一眼跳过。

它解决的是「连不通」

Claude Code 要干活,得连得上 Anthropic 的服务器(或你配的第三方提供商)。但公司网络常常横着几道关:所有出网流量必须走公司代理、公司装了 TLS 检查(自签证书)、防火墙只放行白名单里的域名。任何一道没配对,Claude Code 就连不上,卡在登录或第一次请求那儿。

एनालॉजी: एक अत्यधिक सुरक्षित कार्यालय भवन में प्रवेश करना। 你(Claude Code)想往外打电话,但这楼里所有外线都得先转总机(代理服务器),你直拨打不出去;楼里还装了套安检设备查每个出入的包裹(TLS 检查),你得认得安检章(自签证书)才肯放行。网络配置干的就是「告诉 Claude Code 总机号码是多少、安检章长什么样」。

这块官方有句话先记住:所有这些都能用环境变量配,也都能写进 settings.json。下面为了直观,统一用环境变量演示。

代理:三个标准环境变量

Claude Code 认标准的代理环境变量,在终端里 export 一下就行:

bash
# HTTPS 代理(推荐)
export HTTPS_PROXY=https://proxy.example.com:8080

# HTTP 代理(HTTPS 不可用时)
export HTTP_PROXY=http://proxy.example.com:8080

# 这些地址绕过代理、直连
export NO_PROXY="localhost,127.0.0.1,.internal.company.com"

两个坑得提醒:第一,Claude Code 不支持 SOCKS 代理,只认 HTTP / HTTPS,公司给的要是 SOCKS 你得另找网关。第二,代理要是需要账号密码,塞进 URL 里(http://user:pass@proxy...),但别把密码硬编码进脚本,用环境变量或安全凭据存储。

自签证书:一行指向你的 CA

公司用 TLS 检查代理(像 Zscaler、CrowdStrike 这类)的话,Claude Code 默认同时信任自带的 Mozilla CA 证书集和操作系统的证书库——只要公司的根证书装进了系统信任库,通常啥都不用配就能用。要是还不行,手动指一下你的自定义 CA 证书:

bash
export NODE_EXTRA_CA_CERTS=/path/to/your-company-ca.pem

防火墙白名单:这几个域名要放行

如果你管防火墙,或者要给 IT 提需求,这是 Claude Code 需要访问的核心域名(直连 Anthropic 时):

域名用途
api.anthropic.comClaude API 请求(最核心)
claude.aiclaude.ai 账户登录认证
platform.claude.comAnthropic 控制台账户认证
downloads.claude.ai插件下载、原生安装器和自动更新
storage.googleapis.comv2.1.116 版本前的原生安装器和自动更新(旧版本)
bridge.claudeusercontent.comChrome 扩展 WebSocket 桥接
raw.githubusercontent.com/release-notes 更新日志源和插件市场安装计数

国内用户重点看这条api.anthropic.comclaude.ai 这些在国内直连大概率不通,你需要「魔法上网」,或者走第 04 篇 / 第 05 篇讲的第三方中转、国产模型路线。这一节的代理配置,本质也能拿来指向你的中转网关。要是你用的是 Amazon Bedrock、Google Vertex 这类第三方提供商,模型流量走的是它们的地址,就不必放行上面这几个 Anthropic 域名了。

在有 Zscaler 的公司里,常见的情形是头一天死活登录不上,以为是账号问题折腾了半天。等 IT 把公司根证书推到系统信任库里,啥环境变量都没配,重启终端就通了——所以遇到 TLS 报错先别急着 export 一堆变量,先确认公司根证书在不在系统信任库,十有八九是这事。

💡 一句话总结:公司在代理 / 防火墙后面时,用 HTTPS_PROXY 告诉它总机号码(不支持 SOCKS)、用 NODE_EXTRA_CA_CERTS 认自签证书(但根证书进了系统库通常免配),防火墙放行 api.anthropic.com 等几个核心域;国内直连不通,记得魔法上网或走中转


05 终端配置:换行、通知、配色——三样最值得调的

前面几块都是「正经事」,这一节轻松点,但对日常手感影响最大。Claude Code 在任何终端里不配置都能跑,这节只解决「某个地方用着别扭」。我挑出最多人卡的三样。

一:Shift+Enter 不换行,反而提交了

这是新手第一天就会撞的墙。你想多行输入,按 Shift+Enter 想换行,结果消息直接提交了。

先记一个万能后路:任何终端里,Ctrl+J 都能换行,或者输入 \ 再按 Enter,这俩到处都好使、不用任何配置。

Shift+Enter 行不行,看你用的终端:

终端क्या Shift+Enter नई लाइन बनाता है
iTerm2、Ghostty、Kitty、Apple Terminal、Apple Terminal、Apple Terminal、Windows Terminal、WezTerm、Warp不用配,直接能用
VS Code、Cursor、Devin Desktop、Alacritty、Zed跑一次 /terminal-setup
gnome-terminal、JetBrains IDE(PyCharm 等)用不了;改用 Ctrl+J\ 然后 Enter

中间那档(VS Code、Cursor 这些),在会话里跑一次:

text
/terminal-setup

它会把 Shift+Enter 的键位写进终端配置(已有的绑定不动),跑完重启编辑器就生效。这命令要直接在主机终端里跑,别在 tmux 或 screen 里头跑,因为它得写主机终端的配置。

二:跑完任务没动静,我老切走就忘了

长任务跑起来,你切去刷别的,结果它跑完了 / 卡在权限提示等你,你压根没注意,白等。解法是让它完成时响一声或弹个桌面通知

默认情况下,只有 Ghostty、Kitty、iTerm2 这三个终端会发桌面通知。其他终端,在 ~/.claude/settings.json 里把 preferredNotifChannel 设成 "terminal_bell",让它改成响终端铃:

json
{
  "preferredNotifChannel": "terminal_bell"
}

在 iTerm2 上把这个配好之后,挂着长任务去倒杯咖啡,回来一看进度,效率高了不止一点——不然就是干等着盯屏幕,生怕错过那个权限提示。想要更花哨的(比如播个自定义音效),还能配「通知钩子」,那属于第 33 篇 Hook 的范畴,这里知道有这条路就行。

三:配色跟终端不搭,看着累

Claude Code 的界面配色可以跟你终端的明暗主题对齐。在会话里:

text
/theme

选「自动」那档,它会跟着你系统的明暗外观自动切(系统切深色它跟着深色)。注意一点:Claude Code 只管自己界面的配色,管不了你终端本身的配色方案,那个得在终端 app 里设。要更细的还能自定义颜色,不过那是锦上添花,先把主题选对就够了。

顺带提一句:macOS 上不少 Option+ 开头的快捷键(比如 Option+P 换模型)默认不生效,得先在终端里把 Option 配成 Meta 键(iTerm2 在「设置 → 配置文件 → 键」里把左 / 右 Option 设成「Esc+」)。这块第 35 篇详细讲过,这里不重复。还有 Vim 党:/config 里把编辑器模式设成 vim,输入框就能用 Vim 手势编辑了。

💡 一句话总结:终端配置只解决「用着别扭」——换行不灵跑 /terminal-setup(万能后路是 Ctrl+J)、没提示音设 preferredNotifChannel"terminal_bell"、配色不搭用 /theme 选自动;三样调顺,日常手感立马不一样。


06 布局与模型配置:派老师傅还是学徒,你说了算

最后一块,模型配置——直接关系到「贵不贵、聪不聪明」。第 04 篇第 06 篇讲过怎么接模型、怎么计费,这一节只讲「怎么按任务挑、怎么换、怎么省」。

它解决的是「拿大炮打蚊子」

Claude Code 有好几个模型可选,能力和价钱差着档。默认未必是你这个活儿最划算的那个——拿最贵最强的去跑「改个错别字」这种小事,纯属烧钱。

类比:餐厅排班,大厨、普通厨师、学徒。 米其林大厨(Opus)手艺最好但工钱最贵,招牌硬菜交给他;家常菜普通厨师(Sonnet)就拿得下,日常出餐全靠他;洗菜切配这种活儿,学徒(Haiku)又快又省。好的店长不会让大厨去洗菜——按菜的难度排人,才不亏钱。模型配置就是让你当这个店长。

官方用「模型别名(alias)」帮你免去记一长串版本号,常用的几个:

उपनामप्रयुक्त मॉडल典型工作
opus最强的 Opus复杂推理、架构设计这类硬骨头
sonnet最新 Sonnet日常编程,绝大多数活儿的主力
haiku快又省的 Haiku简单任务、对速度敏感的活儿
opusplan规划时 Opus、执行时 Sonnet计划模式用 Opus 想清楚,动手时自动切 Sonnet 省钱
default你账户档位推荐的那个清掉一切覆盖,回到默认

那个 opusplan 得专门夸一句——它是「两全其美」的精打细算玩法:在计划模式(Plan Mode)里用 Opus 帮你把方案想周全,你一批准进入执行,它自动切成 Sonnet 来写代码。难的部分花 Opus 的钱,重复劳动用 Sonnet 的价。跑稍微复杂点的重构,基本都可以挂 opusplan,体感是「该聪明的时候聪明、该省的时候省」。

别名还有个好处官方点过:它指向「你的提供商当前推荐的那一版」,会随时间更新。也就是说你写 opus,新版 Opus 一出,你不用改配置就自动用上了。要是你非得钉死在某个版本(团队要可复现),那就别用别名,直接写完整模型名(像 claude-opus-4-8)。

怎么换:四种方式,按优先级

官方给了四种设模型的途径,按优先级从临时到永久

bash
# 1. 会话里临时切(最即时)
/model sonnet

# 2. 启动时指定(只管这一次启动)
claude --model opus

# 3. 环境变量(只管你启动的那个会话)
export ANTHROPIC_MODEL=sonnet
json
// 4. 写进 settings.json 的 model 字段(永久默认)
{
  "model": "opusplan"
}

记一个实用判断:临时换一下用 /model,想固定成某个项目 / 某个人的默认就写 settings.jsonmodel 字段(放哪一层看第 31 篇)。要注意项目设置和企业托管设置优先级更高,会盖过你个人的选择——所以要是你发现「我明明设了 Opus,启动却是别的」,多半是被项目里的 model 字段压住了。

同一个模型,还能再调「用多少脑子」

挑完模型,其实还有层旋钮叫努力级别(effort level)——它控制模型「思考多深」。同一个 Opus,你可以让它「快速过一遍」,也可以让它「往死里想」,对应的就是 token 花得少还是多。

努力级别 (effort level) एआई के विचार की सघनता को नियंत्रित करता है: low (快速、划算), medium (平衡), high (平衡推理), xhigh (更深推理), and max (最高努力)。

最实用的两个用法:

  • 临时让它好好想想:在提示里任何地方加一个 ultrathink 关键词,这一轮它就会想得更深,不改你的会话设置。注意只有 ultrathink 这个词管用,「想清楚点」「好好想」这种普通话不算。
  • 固定调级别:在会话里跑 /effort 打开滑块选,或者写进 settings.jsoneffortLevel 字段。

一个顺手的习惯:日常默认级别就够,只有碰到那种「绕来绕去的逻辑 bug」才在提示里甩个 ultrathink,让它这一轮多烧点 token 把根因想透——比起反复来回问,这一下反而更省。

省钱小贴士:给团队锁可选模型

如果你是带团队的,可以用 availableModels 把成员能选的模型限死——比如只许用 Sonnet 和 Haiku,不让随便切到贵的 Opus:

json
{
  "availableModels": ["sonnet", "haiku"]
}

设了之后,成员通过 /model--model、环境变量都切不到列表外的模型。对控团队成本特别实在。 在一个预算敏感的项目里这么干,把默认锁 Sonnet、Opus 直接从可选列表里拿掉,当月的 token 消耗肉眼可见地降了下来,该用 Opus 的硬活儿,让管理员临时在白名单里加上 opus 再用就行。

💡 一句话总结:模型配置让你当「排班店长」——硬活派 opus、日常用 sonnet、简单活 haiku,想又聪明又省钱挂 opusplan;临时换用 /model、永久默认写 settings.json、带团队用 availableModels 锁成本;还能用 ultrathink / /effort 调「用多少脑子」。


07 动手:开沙箱 + 锁模型,亲手验一遍

光看不练假把式。这一节带你把最实用的两块——沙箱模型——亲手配一遍并验证。全程在 macOS / Linux / WSL2 上跑(原生 Windows 请在 WSL2 里);用最小操作,不依赖你已有的复杂环境。

第一步:开沙箱(在 claude 会话里)

text
/sandbox

अपेक्षा: 弹出沙箱面板。在 Mode 选项卡选「自动允许」(Auto-allow)。看到面板出来 = 沙箱在你这平台可用。如果只显示一个 Dependencies 选项卡(Linux / WSL2 常见),说明缺 bubblewrap / socat——按提示装上(sudo apt-get install bubblewrap socat),重启 Claude Code 再来。

第二步:让它在沙箱里跑条命令验证

在会话里敲(让它做一件只写当前目录的小事):

text
在当前目录建一个 sandbox-test.txt 文件,里面写一行 hello sandbox

अपेक्षा:这条命令在沙箱里跑,不再弹权限提示(因为你选了自动允许、而且它只写工作目录——正好在沙箱默认允许的范围内)。跑完目录里多出 sandbox-test.txt没被问权限就直接建好了 = 沙箱的自动允许生效了。(验完可以让它把这个测试文件删掉。)

第三步:看一眼当前用的什么模型

text
/status

अपेक्षा/status 面板里会显示当前账户和正在用的模型。先记下来它现在是谁(比如 SonnetOpus)。

第四步:临时切个模型,再验一次

text
/model haiku

अपेक्षा:提示已切到 Haiku。再敲一次 /status模型那栏应该变成了 Haiku前后两次 /status 的模型不一样 = 你的 /model 切换确实生效了。 验完想切回去,再 /model sonnet/model default 即可。

第五步(可选):把默认模型写进配置

如果你想让这个项目以后默认就用某个模型,在项目的 .claude/settings.json 里加一行:

json
{
  "model": "sonnet"
}

अपेक्षा:下次在这个项目启动 claude/status 里的模型默认就是 Sonnet 了(除非被你 /model 临时盖掉)。

跑通这五步,你就把「开隔离 → 验隔离 → 看模型 → 换模型 → 固化默认」这条最常用的开发配置链路亲手走了一遍。以后调任何一块开发配置,本质都是这套路子:改配置 → 跑一下 → 用 /status 之类的命令验证它真生效。

💡 一句话总结:动手把两件最实用的事验一遍——/sandbox 开隔离(让小命令不再问你)、/model 切模型 + /status 验证前后变化;记住「改完一定回头验」,别只改不验。


08 सारांश

这一篇把开发配置里最常用的五块,一块块调了一遍——说白了,就是给 Claude 这个工人,把工位安排顺

把核心要点串起来回顾:

विन्यास प्रकार怎么用关键点
沙箱/sandbox 开,选自动允许只圈 Bash;文件 / MCP / Hook 还在主机裸跑
devcontainer.devcontainer/devcontainer.json 加 feature要 Docker;命令在容器跑、改动落本地
网络HTTPS_PROXY + NODE_EXTRA_CA_CERTS不支持 SOCKS;国内直连不通要魔法上网
टर्मिनल/terminal-setup/theme、通知设置Ctrl+J 换行的万能后路
模型/model 临时切、settings.json 固定opusplan 两全;availableModels 控团队成本

अब आपको यह करने में सक्षम होना चाहिए: 碰到「Claude 老问权限」知道开沙箱、碰到「不信任的代码」知道升级到容器或网页版、在公司防火墙后面知道配代理和证书、Shift+Enter 不换行知道跑 /terminal-setup、烧额度太快知道按任务挑模型甚至用 opusplanavailableModels 省钱。这套「工作环境」调顺了,Claude 才能既跑得安全、又用得顺手、还不烧冤枉钱。

回头看开头那一下午的「人肉监控」——要是会开沙箱、或者干脆扔进网页版隔离环境,根本不用一手按着 Ctrl+C 干瞪眼一下午。 这就是开发配置的价值:平时不显眼,关键时刻替你扛事。


अगला लेख 47 "वॉइस मोड (Voice Mode)" (प्रायोगिक) — आपने टर्मिनल और कोडिंग वातावरण को समायोजित कर लिया है, और अगले लेख में हम एक अधिक सीधे संचार तरीके की चर्चा करेंगे: वॉयस इनपुट (आवाज का उपयोग)。कल्पना करें कि जब आपके हाथ कोडिंग में व्यस्त हों, तो क्या आप केवल आवाज से एआई को रीफैक्टरिंग निर्देश दे सकते हैं? यह एक नई विशेषता है, और अगले लेख में हम इसके वर्तमान प्रदर्शन की समीक्षा करेंगे।


अनुशंसित पठन