12 Ways to Customize Claude Code — Boris Cherny's Latest Guide
Metadata
Created: 2026-02-11
Author: Boris Cherny (@bcherny), Creator of Claude Code
Source: X Thread
Date: February 2026
TL;DR
Boris Cherny, the creator of Claude Code, shares a 12-part thread on the deep customizability of Claude Code — from terminal themes and effort levels to custom agents, hooks, sandboxing, and spinner verbs. The core message: every engineer uses their tools differently, and Claude Code was built from the ground up to be incredibly configurable. Check your settings.json into git so your whole team benefits.

Why Customization Matters
Boris sets the stage with a clear philosophy:
"Reflecting on what engineers love about Claude Code, one thing that jumps out is its customizability: hooks, plugins, LSPs, MCPs, skills, effort, custom agents, status lines, output styles, etc."
"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, and why Claude Code's growth continues to accelerate."
My Take: This is a refreshing design philosophy. Most tools optimize for one "right way." Claude Code bets on flexibility — and that bet is clearly paying off.
1. Configure Your Terminal
Theme: Run
/configto set light/dark mode. Notifications: Enable notifications for iTerm2, or use a custom notifs hook. Newlines: If you use Claude Code in an IDE terminal, Apple Terminal, Warp, or Alacritty, run/terminal-setupto enable shift+enter for newlines. Vim mode: Run/vim.
My Take: Small terminal tweaks compound over time. The /terminal-setup command is especially useful if you've been frustrated typing \ for newlines in non-standard terminals.
2. Adjust Effort Level
"Run
/modelto pick your preferred effort level. Set it to Low for less tokens & faster responses, Medium for balanced behavior, or High for more tokens & more intelligence."
"Personally, I use High for everything."
My Take: Boris going full High for everything speaks volumes. If the creator trusts the model at max effort, so should you — at least for complex tasks where quality matters more than speed.
3. Install Plugins, MCPs, and Skills
"Plugins let you install LSPs (now available for every major language), MCPs, skills, agents, and custom hooks."
"Install a plugin from the official Anthropic plugin marketplace, or create your own marketplace for your company. Then, check the
settings.jsoninto your codebase to auto-add the marketplaces for your team."
Run /plugin to get started.
My Take: The plugin marketplace is a game-changer for teams. Being able to create a company-specific marketplace and distribute it via settings.json in your repo means you can standardize tooling across an entire engineering org with zero friction.
4. Create Custom Agents
"To create custom agents, drop
.mdfiles in.claude/agents. Each agent can have a custom name, color, tool set, pre-allowed and pre-disallowed tools, permission mode, and model."
"There's also a little-known feature in Claude Code that lets you set the default agent used for the main conversation. Just set the
agentfield in yoursettings.jsonor use the--agentflag."
Run /agents to get started.
My Take: Custom agents are where Claude Code becomes truly personal. Imagine having one agent tuned for code review, another for debugging, and a third for documentation — each with its own permissions and personality. The .claude/agents directory pattern is elegant and version-controllable.
5. Pre-Approve Common Permissions
"Claude Code uses a sophisticated permission system with a combo of prompt injection detection, static analysis, sandboxing, and human oversight."
"Out of the box, we pre-approve a small set of safe commands. To pre-approve more, run
/permissionsand add to the allow and block lists. Check these into your team'ssettings.json."
"We support full wildcard syntax. Try
Bash(bun run *)orEdit(/docs/**)."
My Take: The wildcard permission syntax is powerful. Edit(/docs/**) alone could save dozens of approval clicks per session for documentation-heavy workflows. The key is committing these to your team's settings.json so everyone benefits.
6. Enable Sandboxing
"Opt into Claude Code's open source sandbox runtime to improve safety while reducing permission prompts."
"Run
/sandboxto enable it. Sandboxing runs on your machine, and supports both file and network isolation."
Sandbox runtime: github.com/anthropic-experimental/sandbox-runtime
My Take: This is the best of both worlds — more safety and fewer interruptions. If you're running with liberal permissions (like the "YOLO" crowd), sandboxing is the responsible way to maintain speed without sacrificing security.
7. Add a Status Line
"Custom status lines show up right below the composer, and let you show model, directory, remaining context, cost, and pretty much anything else you want to see while you work."
"Everyone on the Claude Code team has a different statusline. Use
/statuslineto get started, to have Claude generate a statusline for you based on your.bashrc/.zshrc."
My Take: The fact that every team member has a different status line perfectly illustrates the customization ethos. Context usage and cost tracking in particular are practical additions that help you manage long sessions.
8. Customize Your Keybindings
"Did you know every key binding in Claude Code is customizable?
/keybindingsto re-map any key. Settings live reload so you can see how it feels immediately."
Learn more: code.claude.com/docs/en/keybindings
My Take: Live-reloading keybindings is a small but thoughtful detail. Being able to instantly feel whether a new binding works — without restarting — removes all friction from experimentation.
9. Set Up Hooks
"Hooks are a way to deterministically hook into Claude's lifecycle. Use them to automatically route permission requests to Slack or Opus, nudge Claude to keep going when it reaches the end of a turn, or pre-process/post-process tool calls to add your own logging."
My Take: Hooks are the power-user feature. Routing permission requests to Slack means your team can approve actions asynchronously. The "nudge to keep going" hook is interesting — it essentially lets you build autonomous loops with a human-defined stopping condition.
10. Customize Your Spinner Verbs
"It's the little things that make CC feel personal. Ask Claude to customize your spinner verbs to add or replace the default list with your own verbs. Check the
settings.jsoninto source control to share verbs with your team."
My Take: This is pure personality. It's cosmetic, but it changes how the tool feels. Shared spinner verbs checked into source control could become a fun team culture artifact.
11. Use Output Styles
"Run
/configand set an output style to have Claude respond using a different tone or format."
"We recommend enabling the 'explanatory' output style when getting familiar with a new codebase, to have Claude explain frameworks and code patterns as it works."
"Or use the 'learning' output style to have Claude coach you through making code changes."
My Take: Output styles are underrated. "Explanatory" mode for onboarding onto a new codebase is brilliant — it turns Claude from a coder into a teacher who explains the "why" as it works. "Learning" mode takes it further by coaching you through changes rather than doing them for you.
12. Customize All the Things!
"Claude Code is built to work great out of the box. When you do customize, check your
settings.jsoninto git so your team can benefit, too."
"We support configuring for your codebase, for a sub-folder, for just yourself, or via enterprise-wide policies."
"Pick a behavior, and it is likely that you can configure it. We support 37 settings and 84 env vars (use the
envfield in yoursettings.jsonto avoid wrapper scripts)."
My Take: 37 settings and 84 environment variables — that's a staggering amount of configurability. The layered scope (codebase → sub-folder → personal → enterprise) mirrors how mature tools like Git handle configuration. This is enterprise-ready customization.
Key Takeaways
Start simple, customize as you go — Claude Code works great out of the box; add customization as pain points emerge
Check
settings.jsoninto git — Team-wide benefits with zero distribution frictionUse High effort for complex work — Even the creator runs on High for everything
Install plugins for your stack — LSPs, MCPs, and skills extend Claude Code's capabilities dramatically
Custom agents are the power move — Drop
.mdfiles in.claude/agentsfor specialized workflowsSandbox for safety — More security with fewer permission prompts
Hooks for automation — Route approvals to Slack, auto-continue turns, add logging
Output styles for learning — Switch to "explanatory" or "learning" mode when onboarding
Quick Reference
Theme
/config
Set light/dark mode
Effort
/model
Choose Low/Medium/High
Plugins
/plugin
Install LSPs, MCPs, skills
Agents
/agents
Create custom agents
Permissions
/permissions
Pre-approve commands
Sandbox
/sandbox
Enable file/network isolation
Status Line
/statusline
Customize composer status bar
Keybindings
/keybindings
Remap any key
Vim Mode
/vim
Enable vim keybindings
Output Style
/config
Set response tone/format
Terminal
/terminal-setup
Fix newlines in IDE terminals
Boris Cherny is the creator of Claude Code at Anthropic. This post summarizes his 12-part X thread on customization.
Original thread: @bcherny on X — February 2026
Last updated