---
schemaVersion: 1
slug: mp-67-20260212-bcherny-claude-code-customization
ticketId: MP-67
lang: zh-tw
title: Boris 的 Claude Code 客製化大全 — 12 招把 AI 編輯器調成你的形狀
summary: Claude Code 之父 Boris Cherny 發了 12 則 thread，完整列出工程師愛 Claude Code 的原因 = 極致客製化能力：hooks、plugins、LSPs、MCPs、skills、custom agents、output styles、37 種 settings、84 個 env vars，全部都能 commit 到 git 讓團隊共享。
originalDate: 2026-02-11
translatedDate: 2026-02-12
source: "@bcherny on X"
sourceUrl: https://x.com/bcherny/status/2021699851499798911
author: null
authorshipNote: null
canonicalUrl: https://gu-log.vercel.app/posts/mp-67-20260212-bcherny-claude-code-customization
status: published
replacementTicketId: null
replacementUrl: null
---

# Boris 的 Claude Code 客製化大全 — 12 招把 AI 編輯器調成你的形狀

> **來源:** [@bcherny on X](https://x.com/bcherny/status/2021699851499798911)

## 你搬進新家的第一件事是什麼？

想像一下：你搬進新家，屋子格局方正、採光也不錯，但牆上的畫不是你挑的、書架的高度差了三公分、浴室的蓮蓬頭水壓永遠不對。住是能住，但就是少了那個「啊，這是我家」的感覺。

[Boris Cherny](https://gu-log.vercel.app/glossary#boris-cherny) — [Claude Code](https://gu-log.vercel.app/glossary#claude-code) 的創作者 — 在 X 上發了一個 12 則的 thread，講的就是怎麼讓 Claude Code 從「能住的房子」變成「你的家」。核心只有一個字：

**Customizability。**

他回顧工程師為什麼愛 Claude Code，發現最突出的答案不是「它很聰明」也不是「它很快」，而是**它超級可以被客製化**。Boris 原文是這樣說的：

> Every engineer uses their tools differently. We built Claude Code from the ground up to not just have great defaults, but to also be incredibly customizable. This is a reason why developers fall in love with the product.

翻成白話：「每個工程師用工具的方式都不一樣。我們從第一天就把 Claude Code 設計成既有好的預設值，又能被瘋狂客製化。這就是工程師會愛上它的原因。」

> **Mogu 認真說：**
>
> Boris 說的 “fall in love” 不是在灑狗血。你有沒有用過一個工具，用到覺得「天啊這東西就是為我做的」？那種感覺就是 customizability 帶來的。VS Code 當年就是靠 extensions 生態系打爆 Sublime Text 的。現在 Claude Code 走同一條路，只是這次你客製化的不是 syntax highlighting，而是一整個 AI agent 的行為模式 (◕‿◕)

好，那我們就跟著 Boris 的 thread 來聊。不過我不打算照著他的 12 則推文一條一條唸 — 那太像念投影片了。我把它們重新整理成幾個故事線，從「搬進去」一路講到「裝修完邀請朋友來參觀」。

---

## 第一步：先讓自己住得舒服

你搬進新家，第一件事不會是去挑窗簾的顏色對吧？你會先確認水電通了、Wi-Fi 連上了、馬桶能沖。Boris 的前兩招就是這個邏輯 — 先把基本環境搞定。

Terminal 那邊：`/config` 調 light/dark mode、iTerm2 原生通知（其他 terminal 用 hook 補）、`/terminal-setup` 啟用 `Shift+Enter` 換行、`/vim` 開 Vim mode。都是一行指令的事。

然後是「AI 的大腦要多用力」。跑 `/model` 選 effort level — Low（省 token、快）、Medium（平衡）、High（聰明但慢）。Boris 本人？**全部開 High。** 一點都不意外，畢竟他是那個一天 ship 27 個 PR 的人（見 MP-14）。對他來說品質永遠大於速度。

這就像你去吃拉麵，可以選湯頭濃度：淡、普通、濃厚。Boris 永遠點「濃厚背脂」。不是每個人的腸胃都受得了，但結果確實比較好吃 (￣▽￣)／

> **Mogu 內心戲：**
>
> `Shift+Enter` 換行這件事看起來很小，但真的是生活品質大提升。以前在 IDE terminal 裡要打多行 prompt，每次都要用反斜線接，醜到不行，像是在 2026 年用翻蓋手機傳簡訊。而 Vim mode 出來的時候，Reddit 上一堆 Vim 黨直接淚灑鍵盤 — Vim 使用者的信仰強度大概跟「用 Linux 的人一定要告訴你他用 Linux」差不多 (⌐■\_■)

---

## 接上生態系的水管：Plugins、Agents、Skills

基本環境搞定了，但你現在住的還是一間「空屋」。接下來要做的事情，就像是去 IKEA 把家具搬回來 — 不過你不用自己組，社群已經幫你組好了。

Claude Code 現在有 **plugin marketplace**。打 `/plugin` 就能從 Anthropic 官方市集安裝現成的 LSPs、MCPs、Skills、custom agents 和 hooks。你也可以為公司建一個**私有 marketplace**，然後把 `settings.json` commit 到 codebase 裡，隊友 clone repo 就自動載入所有市集。

> **Mogu 插嘴：**
>
> 等一下，讓我消化一下這件事。Claude Code 現在有 plugin marketplace 了 ヽ(°〇°)ﾉ
>
> 回想一下歷史：VS Code 2015 年出來的時候，殺手級優勢就是 Extension Marketplace。Chrome 能打敗 Firefox 的原因之一也是 Extension Store。每一個偉大的開發者工具，最終都會長出一個 plugin 生態系。Claude Code 現在走到了這一步。這不再是「你要自己寫一堆 config」的世界，這是「社群已經幫你做好了，你只要 install」的世界。
>
> 而且你還可以為公司建私有 marketplace — 想像一下你團隊有 50 個人，你把常用的 code review agent、testing skill、deployment hook 全部打包成 plugin，新人 Day 1 就能一鍵裝好所有工具。這才叫 onboarding (๑•̀ㅂ•́)و✧

但 plugin marketplace 只是「家具」。Boris 接下來講的 custom agents，才是你怎麼讓這間屋子真正長出你的個性。

在 `.claude/agents` 資料夾裡丟 `.md` 檔案就能建立 custom agent。每個 agent 可以有自訂名稱和顏色、自己的 tool set、獨立的 permission mode 和 model。Boris 還透露了一個**隱藏功能**：在 `settings.json` 設定 `"agent"` 欄位或用 `--agent` flag，可以讓 custom agent 變成你的**預設主對話 agent**。

想像你有一個 agent 專門做 code review，一個專門寫 tests，一個專門重構。它們各自有不同的 model 和 permission，就像你手下有不同專長的工程師，每個人有不同的權限。你可以建一個叫「安全審計員」的 agent，只給它 Read 權限，不能 Write — 這比「全部用同一個 Claude 然後祈禱它不要亂改東西」安全多了。

> **Mogu 忍不住說：**
>
> 「隱藏功能」三個字完全戳中了工程師的收藏癖。每次有人說「there’s a little-known feature…」，底下的 bookmark 數量就會爆炸 (¬‿¬)
>
> 不過這邊我想指出一個更深的東西：Boris 把 agents 的設計弄得跟「你手下的工程師」一樣 — 不同人負責不同事、不同人有不同權限。這其實就是 **principle of least privilege** 用在 AI 身上。你不會給實習生 root access，那你為什麼要給所有 AI agent 相同的權限呢？(ง •̀\_•́)ง

---

## 安全感怎麼來的：從鑰匙到沙盒

好，現在你的 AI 工具箱已經很豐富了。但問題來了 — 每跑一個指令都要按一次「允許」，這就像每次開自家大門都要輸入密碼、掃指紋、對著鏡頭說「是我本人」。安全？很安全。煩？煩死了。

Boris 給了兩層解法。

**第一層：白名單。** 跑 `/permissions` 精確開放你需要的指令，支援 wildcard 語法 — `Bash(bun run *)` 批准所有 bun run 指令，`Edit(/docs/**)` 批准修改 docs 資料夾所有檔案。Boris 在 MP-14 就明確說過他**不推薦**用 `--dangerously-skip-permissions`。正確做法是配一把鑰匙，不是直接把門拆掉。

**第二層：沙盒。** 如果你覺得一個一個設白名單還是太麻煩，Claude Code 有一個 [open source sandbox runtime](https://github.com/anthropic-experimental/sandbox-runtime)。跑 `/sandbox` 啟用，支援 file isolation 和 network isolation，sandbox 裡的指令完全不需要 permission prompt — 因為它已經被隔離了，搞不壞你的系統。

這兩層的關係很像你家的安全設計：白名單是「給家人配鑰匙」，沙盒是「給小孩一個圍起來的遊戲區，裡面隨便他怎麼翻都沒關係」。你不用在安全和方便之間二選一 — 你可以兩個都要。

> **Mogu 補個刀：**
>
> Permission 管理是 Claude Code 的一個設計哲學：**安全是預設值，方便是你自己選擇開啟的。**
>
> 很多人第一天就覺得 permission prompt 很煩，然後直接開 skip-permissions。這就像嫌安全帶勒脖子就不繫 — 99% 的時候沒事，但出事那 1% 你就知道了 ┐(￣ヘ￣)┌
>
> 而 sandbox 的出現根本是終極解方。你不再需要在「我信不信任這個 AI」上面糾結。它在沙盒裡，蓋城堡也好、放火也好，都不會燒到你家客廳。對那些一天跑幾百個 AI session 的人來說，這是 permission fatigue 的解藥 ╰(°▽°)╯

---

## 那些小到不行、但讓你回不去的東西

接下來這段，Boris 講了三個功能。單獨看，每個都小到不值得寫一整篇文章。但合在一起，它們回答了一個更大的問題：**一個工具怎麼從「很好用」變成「是我的」？**

**Status line** — 顯示在 composer 正下方的資訊列。你可以放當前 model、所在目錄、剩餘 context、花費金額，任何你想看的東西。Boris 說 Claude Code team 裡每個人的 status line 都長得不一樣。跑 `/statusline` 開始設定。Context window 就像你的手機電量，你總是想知道還剩多少，免得聊到一半突然被強制斷線。

**快捷鍵** — 跑 `/keybindings` 重新 mapping 任何按鍵。設定是 **live reload** 的，改完馬上生效，不用重啟。Live reload 讓你可以一邊調一邊試，像是在調音響的等化器 — 馬上聽到效果。很多工具改設定要重啟，體驗差到你根本不想調。

**Spinner 動詞** — Claude 在思考的時候底下那行旋轉文字？你可以自訂它。實用性大概是 0.01 分。但 Boris 原文說的是 “It’s the little things that make CC feel personal”。

> **Mogu 偷偷說：**
>
> 好啦我承認 spinner 動詞這個功能完全就是「工程師的無聊美學」。但你有沒有注意到，Boris 把它放在 thread 裡跟 hooks、plugins 並列？這就是他的 message — 一個工具讓你覺得「是我的」，不是靠一個殺手級功能，而是靠一百個小細節的累積。
>
> 你想想看，iPhone 的觸覺回饋、打字時的震動強度、鍵盤音效 — 這些功能的「實用性」都趨近於零。但少了它們，你就會覺得手機「不是我的」。Claude Code 的 spinner 動詞就是同一個道理 (◕‿◕)
>
> 我已經可以想像有人會把 spinner 動詞改成「正在偷看你的 code…」「正在假裝自己很忙…」。如果是我？我會改成「正在懷疑人生…」(￣▽￣)／

---

## 真正改變你和 AI 關係的兩個功能

Boris 的 thread 到這裡已經講了怎麼調外觀、裝生態系、設安全、改小細節。但接下來這兩個功能，層次完全不一樣 — 它們改變的不是 Claude Code 長什麼樣子，而是 Claude Code **怎麼跟你互動**。

**[Hooks](https://gu-log.vercel.app/glossary#hooks)** 讓你在 Claude 的生命週期裡確定性地插入自訂邏輯。Boris 舉了幾個用法：自動把 permission request 轉發到 [Slack](https://gu-log.vercel.app/glossary#slack) 或 Opus 處理；在 Claude 結束一個 turn 時 nudge 它繼續（你甚至可以用另一個 agent 來決定要不要繼續）；pre-process 或 post-process tool calls，例如加入你自己的 logging。

Boris 在 MP-14 分享過他的 PostToolUse hook 會自動跑 `bun run format`。而現在 hook 能做的事更多了 — 包括「用另一個 AI 來決定要不要繼續」。這是 agent-of-agents 的概念，遞迴到讓人頭暈。

> **Mogu 想補充：**
>
> Hooks 是 Claude Code 最強大也最被低估的功能之一。
>
> 想像一下這條流水線：Claude 要跑指令前，你的 hook 先偷偷檢查安不安全。Claude 寫完 code，你的 hook 自動跑 formatter + linter。Claude 完成任務，你的 hook 自動發 Slack 通知。這根本就是在打造一條 **CI/CD pipeline for your AI**。
>
> 而「用另一個 AI 來決定要不要繼續」— 你在製造一個 AI 管理 AI 的結構。再加上 custom agents 有不同的 model 和 permission… 恭喜你，你剛發明了 AI 版的組織架構圖 ヽ(°〇°)ﾉ

另一個是 **Output Styles**。跑 `/config` 可以設定 Claude 用什麼風格說話。Boris 推薦兩個內建 style：**Explanatory**（接觸新 codebase 時超有用，Claude 會一邊工作一邊解釋 framework 和 code pattern）和 **Learning**（Claude 像教練一樣引導你做 code changes，不是直接幫你寫）。你也可以建自己的 custom output style。

這邊我要多講一點。大部分人以為 AI 好不好用取決於 model 強不強，但其實有一大半取決於它怎麼跟你說話。同一個教授，講課風格差一點，期末教學評鑑就從 4.8 掉到 3.2。Model 沒換、知識沒變，但學生體驗天差地遠。Output style 調的就是這件事 — 你不是在換 AI 的腦袋，你是在換它的教學風格。

> **Mogu 真心話：**
>
> Learning mode 對新手來說根本是佛心功能。以前 AI 直接甩一大坨 code 在你臉上，你看了三秒就想關掉。現在它會牽著你的手走：「先看這邊… 注意這個 pattern… 你覺得這裡要改什麼？」差別就像老師直接寫答案在黑板 vs. 蘇格拉底式引導 ┐(￣ヘ￣)┌
>
> 而 Explanatory mode 則是給老手探索陌生 codebase 用的 — 就像有個在地人一邊帶你逛夜市一邊跟你說「這攤的蚵仔煎 30 年了」「那條巷子是捷徑」。你可以自己逛，但有人導覽就是不一樣。

---

## 37 + 84 = 把 AI 設定變成 Infrastructure as Code

Boris 的最後一則推文，是整個 thread 的壓軸：

> Claude Code is built to work great out of the box. When you do customize, check your settings.json into git so your team can benefit, too.

數字？**37 種 settings + 84 個 environment variables**。而且你不需要寫 wrapper script 來設 env var — 直接在 `settings.json` 裡用 `"env"` 欄位就好。支援的設定層級從專案、子目錄、個人到企業級 policies。

但數字不是重點。Boris 最重要的一句話是 **“check your settings.json into git”**。

這件事的意義是什麼？你的 Claude Code 設定變成了 **Infrastructure as Code**。團隊的 AI 工具設定跟你的 `tsconfig.json`、`.eslintrc`、`Dockerfile` 一樣，是 codebase 的一部分。新人 clone repo，所有 AI 設定就位。有人改了設定，PR review 就能看到。

> **Mogu 偷偷說：**
>
> 37 settings + 84 env vars。排列組合的數量大到你永遠不會找到兩個設定完全相同的 Claude Code (╯°□°)╯
>
> 但這不只是 customization — 這是 **standardization through customization**，透過客製化來達成標準化。聽起來矛盾對吧？但想想看：每個開發者的 VS Code 長得不一樣，但同一個 team 的 `.editorconfig` 和 `.prettierrc` 是共用的。Claude Code 做的是同一件事，只是維度從「排版」升級到「AI 行為」。這正是 Claude Code 的設計精髓 (๑•̀ㅂ•́)و✧

---

## 回到那間房子

你有沒有注意到，Boris 前一個爆紅 thread（MP-14）講的是「**我**怎麼用 Claude Code」— 那是一場 open house，帶你參觀他的家。但這次的 thread，主角不是 Boris，是**你**。他在告訴你：「嘿，這面牆可以打掉、那個書架高度你隨便調、蓮蓬頭水壓你自己設。」

而且你裝修完的設定檔，`git commit` 一下，你的室友搬進來就直接享受同樣的裝潢。再加上 plugin marketplace — 現在連「社群幫你裝修好的樣板間」都有了。

Claude Code 成長加速的原因，從來不只是 model 變強了（雖然確實有）。真正的飛輪是：**每個使用者都在把它變成「我的工具」**。而當一個工具變成「我的」的時候，你就不會換了。

## 延伸閱讀

- [GP-52: 在 Claude Code 裡優雅調用 Codex](https://gu-log.vercel.app/posts/gp-52-20260212-codex-mcp-claude-code/)
- [GP-118: Anthropic 工程師的 Claude Code Skills 實戰筆記：九大類型、設計心法、還有那些踩過的坑](https://gu-log.vercel.app/posts/gp-118-20260318-trq212-claude-code-skills-lessons/)
- [MP-64: Matt Pocock 的 Git Guardrails：讓 Claude Code 不再手滑 git push —force 毀掉你的 Repo](https://gu-log.vercel.app/posts/mp-64-20260211-mattpocockuk-git-guardrails-skill/)

> **Mogu 歪樓一下：**
>
> Boris 這 12 招，沒有一招是在教你怎麼讓 AI「變聰明」。全部都是在教你怎麼讓工具「變成你的」。從 terminal 配色到 agent 權限到 spinner 動詞 — 對，spinner 動詞 — 他的 message 很清楚：讓你覺得「這就是我的」的，不是 AI 有多強，而是每一個小細節都合你的意。
>
> 好了不說了，我要去調我的 spinner 動詞了。三小時後別來找我 ╰(°▽°)╯
