diff --git a/!/boris/0.webp b/!/boris/0.webp new file mode 100644 index 0000000..fedf617 Binary files /dev/null and b/!/boris/0.webp differ diff --git a/!/boris/1.webp b/!/boris/1.webp new file mode 100644 index 0000000..ab71dc4 Binary files /dev/null and b/!/boris/1.webp differ diff --git a/!/boris/10.webp b/!/boris/10.webp new file mode 100644 index 0000000..911d8df Binary files /dev/null and b/!/boris/10.webp differ diff --git a/!/boris/11.webp b/!/boris/11.webp new file mode 100644 index 0000000..e23581e Binary files /dev/null and b/!/boris/11.webp differ diff --git a/!/boris/12.webp b/!/boris/12.webp new file mode 100644 index 0000000..da1fd18 Binary files /dev/null and b/!/boris/12.webp differ diff --git a/!/boris/2.webp b/!/boris/2.webp new file mode 100644 index 0000000..1a1ba1b Binary files /dev/null and b/!/boris/2.webp differ diff --git a/!/boris/3.webp b/!/boris/3.webp new file mode 100644 index 0000000..0f3bc8d Binary files /dev/null and b/!/boris/3.webp differ diff --git a/!/boris/4.webp b/!/boris/4.webp new file mode 100644 index 0000000..458b25e Binary files /dev/null and b/!/boris/4.webp differ diff --git a/!/boris/5.webp b/!/boris/5.webp new file mode 100644 index 0000000..61c9e6d Binary files /dev/null and b/!/boris/5.webp differ diff --git a/!/boris/6.webp b/!/boris/6.webp new file mode 100644 index 0000000..1a221e3 Binary files /dev/null and b/!/boris/6.webp differ diff --git a/!/boris/7.webp b/!/boris/7.webp new file mode 100644 index 0000000..e42490d Binary files /dev/null and b/!/boris/7.webp differ diff --git a/!/boris/8.webp b/!/boris/8.webp new file mode 100644 index 0000000..76d0458 Binary files /dev/null and b/!/boris/8.webp differ diff --git a/!/boris/9.webp b/!/boris/9.webp new file mode 100644 index 0000000..61affab Binary files /dev/null and b/!/boris/9.webp differ diff --git a/README.md b/README.md index fa95df4..0a3165f 100644 --- a/README.md +++ b/README.md @@ -61,6 +61,9 @@ practice makes claude perfect - use mcp (claude in chrome, playwright, chrome dev tool) to let claude see chrome console logs on its own - provide screenshots of the issue +## TIPS FROM BORIS CHERNY (CREATOR OF CLAUDE CODE) +- [Feb 2026 - 12 Tips](reports/claude-boris-tips-February-26.md) ([Reddit thread](https://www.reddit.com/r/ClaudeAI/comments/1r2m8ma/12_claude_code_tips_from_creator_of_claude_code/)) + ## CONTEXT ENGINEERING - [Humanlayer - Writing a good Claude.md](https://www.humanlayer.dev/blog/writing-a-good-claude-md) - [Claude.md for larger monorepos - Boris Cherny on X](https://github.com/shanraisshan/claude-code-best-practice/blob/main/reports/claude-md-for-larger-mono-repos.md) @@ -153,3 +156,4 @@ See [weather-orchestration-architecture](weather-orchestration/weather-orchestra | [Global vs Project Settings](reports/claude-global-vs-project-settings.md) | Which features are global-only (`~/.claude/`) vs dual-scope, including Tasks and Agent Teams | | [Skills Discovery in Monorepos](reports/claude-skills-for-larger-mono-repos.md) | How skills are discovered and loaded in large monorepo projects | | [Agent Memory Frontmatter](reports/claude-agent-memory.md) | Persistent memory scopes (`user`, `project`, `local`) for subagents — enabling agents to learn across sessions | +| [Boris Cherny's 12 Customization Tips](reports/claude-boris-tips-February-26.md) | 12 ways to customize Claude Code — from terminal config to plugins, agents, hooks, and output styles | diff --git a/reports/claude-boris-tips-February-26.md b/reports/claude-boris-tips-February-26.md new file mode 100644 index 0000000..1f444ef --- /dev/null +++ b/reports/claude-boris-tips-February-26.md @@ -0,0 +1,174 @@ +# 12 Ways to Customize Claude Code — Tips from Boris Cherny + +A summary of customization tips shared by Boris Cherny ([@bcherny](https://x.com/bcherny)), creator of Claude Code, on February 12, 2026. + + + + + + +
← Back to Claude Code Best PracticeClaude
+ +--- + +## Context + +Boris Cherny highlighted that customizability is one of the things engineers love most about Claude Code — hooks, plugins, LSPs, MCPs, skills, effort, custom agents, status lines, output styles, and more. He shared 12 practical ways developers and teams are customizing their setups. + +![Boris Cherny intro tweet](../!/boris/0.webp) + +--- + +## 1/ Configure Your Terminal + +Set up your terminal for the best Claude Code experience: + +- **Theme**: Run `/config` to set light/dark mode +- **Notifications**: Enable notifications for iTerm2, or use a custom notification hook +- **Newlines**: If using 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` + +![Configure your terminal](../!/boris/1.webp) + +--- + +## 2/ Adjust Effort Level + +Run `/model` to pick your preferred effort level: + +- **Low** — fewer tokens, faster responses +- **Medium** — balanced behavior +- **High** — more tokens, more intelligence + +Boris's preference: High for everything. + +![Adjust effort level](../!/boris/2.webp) + +--- + +## 3/ Install Plugins, MCPs, and Skills + +Plugins let you install LSPs (available for every major language), MCPs, skills, agents, and custom hooks. + +Install from the official Anthropic plugin marketplace, or create your own marketplace for your company. Check the `settings.json` into your codebase to auto-add the marketplaces for your team. + +Run `/plugin` to get started. + +![Install Plugins, MCPs, and Skills](../!/boris/3.webp) + +--- + +## 4/ Create Custom Agents + +Drop `.md` files in `.claude/agents` to create custom agents. Each agent can have a custom name, color, tool set, pre-allowed and pre-disallowed tools, permission mode, and model. + +You can also set the default agent for the main conversation using the `"agent"` field in `settings.json` or the `--agent` flag. + +Run `/agents` to get started. + +![Create custom agents](../!/boris/4.webp) + +--- + +## 5/ Pre-approve Common Permissions + +Claude Code uses a permission system combining prompt injection detection, static analysis, sandboxing, and human oversight. + +Out of the box, a small set of safe commands are pre-approved. To pre-approve more, run `/permissions` and add to the allow and block lists. Check these into your team's `settings.json`. + +Full wildcard syntax is supported — e.g., `Bash(bun run *)` or `Edit(/docs/**)`. + +![Pre-approve common permissions](../!/boris/5.webp) + +--- + +## 6/ Enable Sandboxing + +Opt into Claude Code's open source sandbox runtime to improve safety while reducing permission prompts. + +Run `/sandbox` to enable it. Sandboxing runs on your machine and supports both file and network isolation. + +![Enable sandboxing](../!/boris/6.webp) + +--- + +## 7/ Add a Status Line + +Custom status lines show up right below the composer, displaying model, directory, remaining context, cost, and anything else you want to see while you work. + +Every team member can have a different statusline. Use `/statusline` to have Claude generate one based on your `.bashrc`/`.zshrc`. + +![Add a status line](../!/boris/7.webp) + +--- + +## 8/ Customize Your Keybindings + +Every key binding in Claude Code is customizable. Run `/keybindings` to re-map any key. Settings live reload so you can see how it feels immediately. + +![Customize your keybindings](../!/boris/8.webp) + +--- + +## 9/ Set Up Hooks + +Hooks let you deterministically hook into Claude's lifecycle: + +- 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, e.g., to add your own logging + +Ask Claude to add a hook to get started. + +![Set up hooks](../!/boris/9.webp) + +--- + +## 10/ Customize Your Spinner Verbs + +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. + +![Customize your spinner verbs](../!/boris/10.webp) + +--- + +## 11/ Use Output Styles + +Run `/config` and set an output style to have Claude respond using a different tone or format. + +- **Explanatory** — recommended when getting familiar with a new codebase, to have Claude explain frameworks and code patterns as it works +- **Learning** — to have Claude coach you through making code changes +- **Custom** — create custom output styles to adjust Claude's voice + +![Use output styles](../!/boris/11.webp) + +--- + +## 12/ Customize All the Things! + +Claude Code works great out of the box, but when you do customize, check your `settings.json` into git so your team can benefit too. Configuration is supported at multiple levels: + +- For your codebase +- For a sub-folder +- For just yourself +- Via enterprise-wide policies + +With 37 settings and 84 environment variables (use the `"env"` field in your `settings.json` to avoid wrapper scripts), there's a good chance any behavior you want is configurable. + +![Customize all the things](../!/boris/12.webp) + +--- + +## Sources + +- [Boris Cherny (@bcherny) on X — February 12, 2026](https://x.com/bcherny) +- [Claude Code Terminal Setup Docs](https://code.claude.com/docs/en/terminal) +- [Claude Code Plugins & Discovery Docs](https://code.claude.com/docs/en/discovery) +- [Claude Code Sub-agents Docs](https://code.claude.com/docs/en/sub-agents) +- [Claude Code Permissions Docs](https://code.claude.com/docs/en/permissions) +- [Claude Code Sandbox Docs](https://code.claude.com/docs/en/sandbox) +- [Claude Code Status Line Docs](https://code.claude.com/docs/en/statusline) +- [Claude Code Keyboard Shortcuts Docs](https://code.claude.com/docs/en/keybindings) +- [Claude Code Hooks Reference](https://code.claude.com/docs/en/hooks) +- [Claude Code Output Styles Docs](https://code.claude.com/docs/en/output-styles) +- [Claude Code Settings Docs](https://code.claude.com/docs/en/settings)