Chapter 14: Customizing Your Setup#
Which Plugins to Install First#
If you are just getting started, install these in this order:
frontend-design— Immediate visual impact for any web-related taskdocument-skills— Essential for document processing (PDF, XLSX, DOCX)superpowers— Advanced workflow management and brainstormingcommit-commands— Simplifies version control to/commit-commands:commitlearning-output-style— Makes Claude explain what it is doing (great for learning)context7— Keeps Claude’s technical knowledge currentclaude-md-management— Helps maintain project memory
How to install them. Inside Claude Code, run these commands in order. Note that document-skills lives in a different marketplace (@anthropic-agent-skills) from the rest, so its install line looks different:
Inside Claude Code:
/plugin install frontend-design@claude-plugins-official
/plugin install document-skills@anthropic-agent-skills
/plugin install superpowers@claude-plugins-official
/plugin install commit-commands@claude-plugins-official
/plugin install learning-output-style@claude-plugins-official
/plugin install context7@claude-plugins-official
/plugin install claude-md-management@claude-plugins-official
/reload-plugins
That last command — /reload-plugins — activates everything you just installed in the current session, so you do not have to restart Claude Code.
Everything else can be added as you encounter specific needs.
Additional Plugins Worth Exploring#
Beyond my core stack, these plugins are popular and worth considering depending on your use case:
firecrawl — Transforms websites into clean, structured data. If you do a lot of web research or competitor analysis, Firecrawl handles the complex parts of web scraping automatically — JavaScript rendering, anti-bot detection, and proxy rotation. It requires an API key (free tier available at firecrawl.dev), but the results are dramatically better than basic web scraping. Firecrawl now ships as a CLI plus a family of skills rather than a marketplace plugin — install it in your terminal with npx -y firecrawl-cli init -y --browser, which installs the CLI, walks you through browser sign-in, and adds the Firecrawl skills.
security-guidance — Runs real-time vulnerability scanning on any code Claude generates. Even as a non-technical user, you benefit from this — it catches security issues in websites, scripts, and applications before they reach your repository. It blocks dangerous changes automatically. Think of it as a safety net for the code Claude writes on your behalf.
linear — If your team uses Linear for project management, this plugin integrates issue tracking directly into your Claude Code workflow. Pull tickets, update status, mark work in progress — all without leaving your terminal. For product managers and team leads who use Linear, this is a significant productivity boost.
playground — Creates interactive HTML playgrounds — self-contained single-file explorers that let you configure and visualize something. Useful when you want to create demos, interactive reports, or visual tools without building a full website.
Which MCPs Are Worth It for Non-Technical Users#
The MCP ecosystem has grown to over 50 servers. Here is how to think about which ones to install, organized by when you will need them.
Install immediately: - Playwright — Browser automation. Essential for web design verification, scraping, and visual testing. This is the one MCP I consider non-negotiable.
Install if your team uses these tools: - Figma MCP — If you work with designers who produce Figma files. Bridges design-to-code. - Notion MCP — If your team’s knowledge base lives in Notion. - Slack MCP — If you spend significant time in Slack and want Claude to help manage information flow. - GitHub MCP — If you interact with development teams and need to manage issues and PRs. - gogcli — If you use Google Workspace (Gmail, Drive, Calendar, Sheets). One CLI tool replaces all Google-specific MCPs. - Linear — If your team uses Linear for project management.
Install when you need specific capabilities: - Excalidraw — When you need diagrams, flowcharts, or visual explanations. - Claude-in-Chrome — When you need to research authenticated web pages that require login. - Zapier MCP — When you want to trigger cross-platform automations (email, sheets, CRM). - Supabase MCP — When you are building an application that needs a database. - Granola — If you use Granola for meeting notes.
The install-as-needed principle: You do not need all of these on day one. Each MCP is a tool, and tools should be added when the work demands them. Start with Playwright, then expand as your workflows evolve.
The Permissions System: Understanding What You Are Approving#
When Claude Code asks “Allow this action?”, it is asking for permission to run a specific command or access a specific resource. Here is what the different permission types mean:
Bash(command:*) — Allows Claude to run a specific terminal command. The asterisk means “with any arguments.” So Bash(yt-dlp:*) means Claude can run yt-dlp with any URL or options without asking.
WebSearch — Allows Claude to search the internet.
WebFetch(domain:example.com) — Allows Claude to read web pages from a specific domain.
mcp__[server]__[tool] — Allows Claude to use a specific MCP tool (like Playwright’s browser navigation).
The safety principle: Only pre-approve tools you understand and trust. Start by approving tools one at a time as they come up. After a week, you will have a well-curated permissions list that covers your daily needs.
Permission Modes: The Progressive Trust Ladder#
Beyond individual tool approvals, Claude Code has distinct permission modes that control how much autonomy Claude has in a session. Think of them as a trust ladder you climb as you get more comfortable:
Level 1: Default mode. Claude asks permission for nearly every action — reading files, running commands, accessing the web. This is where every new user should start. It is the safest mode and also the most educational, because you see exactly what Claude is doing at every step.
Level 2: Accept edits (acceptEdits). Claude can read and edit files freely but still asks before running terminal commands. This is the sweet spot for most daily work once you have been using Claude Code for a week or two. You trust Claude with your files but still want oversight on commands.
Level 3: Auto mode (auto). Claude uses a classifier to decide per-tool whether to ask. More autonomy than accept-edits without going all the way to bypass. Needs a reasonably current model — every current default, including Sonnet 5 and Opus 5, qualifies. See Chapter 2 for plan details.
Level 4: Bypass mode (bypassPermissions) — use with caution. Claude does everything without asking. No permission prompts, no pauses. This is for throwaway experiments, scratch projects, or situations where speed is everything and you are prepared to revert anything that goes wrong. Do not use this on important project directories.
Off the ladder: Plan mode (plan). Claude can research and explore but cannot make any changes. Use this when you want to explore a project or get a plan without risk. This is not a trust level — it is a different mode for a different purpose.
You cycle between modes during a session using Shift+Tab. My recommendation: spend your first week in default mode, move to accept-edits for daily work, use plan mode before any significant project, and reserve bypass mode for experiments only.
CLI Over MCP: When Simpler Is Better#
Here is a counterintuitive insight about MCPs: sometimes they cost more than they deliver, not in money, but in context.
Every MCP server you have installed registers its full set of tool definitions in your context window at the start of every session. A single MCP can consume thousands of tokens just by existing — even if you never use it in that session. Install five MCPs and you have lost a meaningful chunk of your context window before you type your first instruction.
The rule of thumb: Use MCPs for tools that need a persistent connection or real-time interaction — browser automation (Playwright), live database connections (Supabase), external service integrations (Notion, Slack). For everything else, prefer CLI tools that Claude can call directly through bash.
For example: If you use ffmpeg for media processing, the CLI is faster and more context-efficient than any MCP wrapper. If you need to convert files, process images, or run Python scripts, direct CLI access is almost always better than an MCP that wraps the same functionality.
Practical impact: I keep my MCP count low (Playwright, Excalidraw, Claude-in-Chrome, and a few domain-specific ones) and rely on pre-approved CLI tools for everything else. This leaves more of my context window available for the actual work — the files, the conversation, the reasoning — rather than tool definitions I might never use in that session.
This is also why the “install-as-needed” principle for MCPs matters. Adding an MCP is easy. But each one you add is a permanent tax on your context in every session. Be deliberate about which MCPs earn a permanent spot in your setup.
Extended Thinking: Turn It On#
In any Claude Code session, run /config — it opens a tabbed settings interface. Toggle “Always thinking enabled” to on. Under the hood, this writes "alwaysThinkingEnabled": true into your ~/.claude/settings.json, so advanced users can also edit the file directly.
Extended thinking makes Claude spend more time reasoning before responding. This produces better results for complex tasks (analysis, writing, research) at the cost of slightly longer response times.
My recommendation: Keep it on. The quality improvement is worth the extra few seconds.
Output Styles#
Claude Code supports different output styles through plugins:
learning-output-style— Claude explains what it is doing and why, with educational insights. Great for new users and for learning new techniques.explanatory-output-style— Similar to learning mode but focused on explanations of the codebase and decisions.- Default — Concise, task-focused output without extra explanation.
Start with learning mode on. As you become more comfortable, you may switch to default for faster interactions.
Quality of Life Improvements#
Several quality-of-life improvements make daily Claude Code usage smoother:
Voice dictation for faster prompting. This tip sounds trivial but is transformative: use WisprFlow (a voice-to-text tool for macOS) to speak your prompts instead of typing them. Press fn once to hold-and-talk, or double-tap fn for hands-free mode. WisprFlow transcribes in real time and pastes the text wherever your cursor is — including the Claude Code terminal. For non-technical users who are more comfortable describing tasks verbally, this can be 3x faster than typing. You speak your instruction naturally, and it appears in the terminal. This is especially useful for long, descriptive prompts where typing feels tedious.
Session naming and resumption. Using /rename to name your sessions, then resuming them later with claude --resume [name]. For long-range projects where you might have multiple active workstreams, this lets you switch between named sessions rather than starting fresh. “Morning research” and “Afternoon writing” can be separate, named sessions within the same project.
Remote control from your phone. The /remote-control command (or /rc for short) generates a link that lets you continue your current session from any browser or the Claude mobile app. Start a complex task at your desk, then monitor and guide it from your phone on the couch. The session runs entirely on your local machine — your filesystem, MCPs, and tools all stay available. The remote device is just a window into the local session. Press spacebar to toggle a QR code for quick mobile scanning. Your laptop must stay open and running, but it handles sleep gracefully (auto-reconnects when the machine wakes). Available on Pro, Max, Team, and Enterprise plans.
Monitoring with /statusline. Customizing your status line to show token usage and git branch information. This makes it easy to monitor how much context you have remaining and whether you need to /compact soon. Setting this up: the /statusline command lets you configure what information appears.
The Esc key as your pause button. Pressing Esc pauses Claude mid-task. If you realize Claude is heading in the wrong direction, you can interrupt without losing the session context. This is the “emergency brake” that every new user should know about.
Pasting screenshots directly into the terminal. On Mac, press Ctrl+V (not Cmd+V) to paste a screenshot from your clipboard directly into Claude Code. On Windows, use Alt+V. This is enormously useful for design feedback — take a screenshot of something you want Claude to fix, match, or replicate, and paste it right into the conversation. Claude sees the image and can respond to visual details. This works with screenshots taken via Cmd+Shift+4, screen grabs from the web, or anything on your clipboard.
Clipping web pages as input with Obsidian. If you use Obsidian for note-taking, the Obsidian Web Clipper Chrome extension is a surprisingly effective input method for Claude Code. It saves any webpage as a clean Markdown file in your vault. Since Claude Code reads Markdown natively, you can clip an article, a documentation page, or a competitor’s website, and then point Claude at the saved .md file for analysis, summarization, or content extraction. The alternative — copying the page content to your clipboard and pasting it directly into your prompt — also works, but clipping into Obsidian gives you a persistent, searchable archive of everything you have fed Claude.
Prompt stashing with Ctrl+S. On Mac, pressing Ctrl+S while typing a prompt “stashes” it — saves it without sending. This is useful when you are composing a long instruction and want to save your progress, switch to checking something, and come back. Your stashed prompt is preserved. Think of it as a draft folder for prompts.
Terminal aliases for speed. Creating a terminal alias: alias c='claude'. Then instead of typing claude every time, you just type c. Small savings multiply across hundreds of sessions. You can add this to your ~/.zshrc file.
The “fresh sessions” debate. An interesting contrarian position: some power users argue that starting fresh sessions is better than relying on long sessions with /compact. Their reasoning: fresh sessions load your CLAUDE.md cleanly, have full context windows, and avoid the accumulated confusion of compressed context. The counter-argument (which I practice): long sessions maintain conversation continuity that is hard to reconstruct. My approach is a hybrid — use long sessions for single-workflow tasks, but start fresh for new workstreams within the same project.