Boris Cherny Profile picture
Claude Code @anthropicai

Feb 11, 13 tweets

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.

I wanted to share a few ways we're seeing people and teams customize their Claudes.

1/ Configure your terminal

- Theme: Run /config to set light/dark mode
- Notifs: 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-setup to enable shift+enter for newlines (so you don't need to type \)
- Vim mode: run /vim

code.claude.com/docs/en/termin…

2/ Adjust effort level

Run /model to pick your preferred effort level. Set it to:
- Low, for less tokens & faster responses
- Medium, for balanced behavior
- High, for more tokens & more intelligence

Personally, I use High for everything.

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.json into your codebase to auto-add the marketplaces for your team.

Run /plugin to get started.

code.claude.com/docs/en/discov…

4/ Create custom agents

To create custom agents, drop .md files 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 "agent" field in your settings.json or use the --agent flag.

Run /agents to get started, or learn more: code.claude.com/docs/en/sub-ag…

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 /permissions and add to the allow and block lists. Check these into your team's settings.json.

We support full wildcard syntax. Try "Bash(bun run *)" or "Edit(/docs/**)"

code.claude.com/docs/en/permis…

6/ Enable sandboxing

Opt into Claude Code's open source sandbox runtime (github.com/anthropic-expe…) to improve safety while reducing permission prompts.

Run /sandbox to enable it. Sandboxing runs on your machine, and supports both file and network isolation. Windows support coming soon.

code.claude.com/docs/en/sandbo…

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 /statusline to get started, to have Claude generate a statusline for you based on your .bashrc/.zshrc.

code.claude.com/docs/en/status…

8/ Customize your keybindings

Did you know every key binding in Claude Code is customizable? /keybindings to re-map any key. Settings live reload so you can see how it feels immediately

code.claude.com/docs/en/keybin…

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 (you can even kick off an agent or use a prompt to decide whether Claude should keep going)
- Pre-process or post-process tool calls, eg. to add your own logging

Ask Claude to add a hook to get started.

Learn more: code.claude.com/docs/en/hooks

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.json into source control to share verbs with your team.

11/ Use output styles

Run /config and 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.

You can also create custom output styles to adjust Claude's voice the way you like.

code.claude.com/docs/en/output…

12/ Customize all the things!

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. 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 "env" field in your settings.json to avoid wrapper scripts).

Learn more: code.claude.com/docs/en/settin…

Share this Scrolly Tale with your friends.

A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.

Keep scrolling