My Claude Code setup: status line, plugins and terminal
5m read time verified against Claude Code 2.1.270 on September 13, 2026

My Claude Code setup: status line, plugins and terminal

From status line to skills: the Claude Code setup I use every day, and the plugins and terminal that go with it.

I've been using Claude Code daily for the better part of a year now, which in AI terms is ages, and it has completely changed my workflow. But honestly? The default setup leaves a lot on the table, and the default permissions have you clicking yes all day: here is how to set up Claude Code permissions properly. After plenty of experimenting, I've landed on a configuration that truly works. Here's what I've learned.

Know what's happening: the Status Line

The first problem I ran into was the lack of visibility. You have no idea how much context you've consumed, which model is active, or what branch you're on, until it's too late. Seeing the active model also builds a habit worth keeping: picking the right model for each task instead of leaving one at the top of the list.

When things happened is a separate gap with a separate tool, because a Claude Code session has no clock until you bolt one on. A status line handles the present tense: what is true right now, on screen, while you work.

The fix: ccstatusline. A small tool that displays crucial session info right in your terminal.

bash
npx ccstatusline@latest

My setup uses two lines with the following widgets:

text
Line 1 - 7 widgets
1 model
2 separator
3 context %
4 separator
5 session usage
6 separator
7 session clock
text
Line 2 - 3 widgets
1 git branch
2 separator
3 git worktree

This might sound like a minor thing, but it changes how you work. That context percentage alone is worth its weight in gold. If you want to know why I manage context this strictly, read caveman vs context-mode.

The golden rule I taught myself: keep your context below 50%. Above that, Claude gets noticeably slower and sloppier. When you're getting close, just start a fresh session. It takes 10 seconds and saves you 10 minutes of frustration.


Plugins that make a real difference

Claude Code has a plugin system and a few of them have become indispensable for me. Install them via the /plugin command:

  • Superpowers, a set of skills for planning, debugging and review, including one that helps you write your own (see the full Superpowers guide).
  • CodeSimplifier, an autonomous agent that simplifies and refines your code for clarity and maintainability without changing functionality. Great to run after a long coding session or before submitting a PR.
  • Context7, an MCP server that fetches up-to-date, version-specific documentation and injects it into your prompts. No more hallucinated APIs or deprecated methods.

Sequential Thinking: no longer needed

When I first wrote this, Sequential Thinking was the addition I recommended most: an MCP server that makes Claude reason step by step before it writes code. Current models do that by default, so I no longer install it.


The right terminal matters

Claude Code runs in any terminal, but you spend your whole day in it. On Linux I use Ghostty. When I work in WSL on Windows, I just use Windows Terminal.


Skills: teach Claude your conventions

Skills are built into Claude Code. A skill is a SKILL.md file in .claude/skills/[skill-name]/ that Claude loads when the situation calls for it. You can write one by hand, or let the skill-writing skill in Superpowers do the heavy lifting.

A real-world example

Say you have a React project and you want Claude to always follow your conventions: TypeScript interfaces, named exports, Tailwind, no React import. Instead of explaining this every single session, you create a skill:

.claude/skills/react-guardrail/SKILL.md

markdown
---
name: react-guardrail
description: Use this skill when creating or modifying React components.
---

# React Component Standard

When creating components, follow these rules:

1. **No Default Exports** — always use `export const ComponentName = ...`
2. **TypeScript** — always define an `interface Props`
3. **Styling** — Tailwind CSS classes only
4. **Imports** — don't import React (new JSX transform)

## Example:
```typescript
interface Props {
  title: string;
}

export const Header = ({ title }: Props) => {
  return <h1 className="text-xl font-bold">{title}</h1>;
};
```

From now on, Claude automatically loads these rules whenever you create or modify a component. No more repeating yourself, and consistent code across your entire project. For a deeper treatment, see how to write a good Claude Code skill.


Away from your desk: Remote Control

When I'm away from my own machine, I keep working from the native Claude app. Remote Control connects a Claude Code session on your machine to the Claude app or claude.ai/code. Your code, files, MCP servers and tools stay on your machine. Only the conversation travels.

There are three ways to start it. From the command line:

bash
# start a new session you can also steer remotely
claude --remote-control "My project"

# or run it as a server that accepts several sessions
claude remote-control --name "My project"

In a session that is already running, type /remote-control. Claude Code prints a link to open the session in the browser. In server mode, press the spacebar to show a QR code you can scan with the Claude app. You can also find the session by name in the app's Code tab. Ctrl+C stops it.

Three things need to be in place for it to work:

  • A claude.ai subscription. Remote Control needs a Pro, Max, Team or Enterprise plan, and you have to sign in with that account through /login. An API key does not work, and neither does Bedrock, Vertex or a custom ANTHROPIC_BASE_URL. On Team and Enterprise an admin has to switch it on.
  • Environment variables. If you set DISABLE_TELEMETRY, DO_NOT_TRACK or CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC, Remote Control stays off, because those also switch off the flags it depends on.
  • A process that keeps running. Close the terminal and the session goes offline. Over SSH, run it inside tmux.

The desktop app can also start Claude Code sessions of its own from the Code tab: locally, over SSH, in WSL or in the cloud. The details are in the Remote Control documentation.


My daily checklist

This is what I start every session with:

  • Status line active, keep context below 50%
  • Custom skills up to date in .claude/skills/

It takes some time to set up, but the payoff is more than worth it. With the right setup, Claude Code becomes a serious development partner rather than just a chatbot in your terminal.

(1 of 36)
01My Claude Code setup: status line, plugins and terminal02Superpowers: teaching Claude Code to think before it types03Claude Code hooks: deterministic control over AI workflows04The CLAUDE.md file: give your AI permanent memory05Stop asking your agent nicely06What's new in Claude Code: notes from the London talk07The best number in Opus 4.8 isn't a benchmark08Stale memory is worse than no memory09The agent is just a loop10Build an MCP server, then ask whether it should exist11Skill, subagent, hook, or slash command? Pick the right one12Log in to MCP servers from your shell13How to give Claude safe access to your SQL database14The day 'default' became 'Manual'15Claude Code skills: how to write one that works16How to write a proper Claude Code subagent17Claude Code permissions: the guide I wish the docs were18Sandboxing Claude Code: put your agent in a box that holds19Prompt injection defense for developers who ship agents20Best Claude model for coding: which one for which task21Refactoring legacy code with a coding agent: start with characterization tests22MCP server authentication: OAuth, scopes and rate limits23Opus 5 is here and your effort settings just expired24AI agent incident response: what to do when your coding agent goes wrong25Claude Code /doctor: what it checks and what changed26Claude Code context management: when to /clear and when to /compact27Git worktrees for parallel coding agents: what they isolate and what they share28Claude Code plan mode: decide before the agent writes29Debugging with a coding agent: give it the search, keep the hypothesis30Claude Code checkpoints and /rewind: how to undo an agent's changes31Claude Code cross-session messaging: how to make your sessions talk to each other32Audit logging for AI agents: what Claude Code records and what deserves a human33Sharing Claude Code config across a team: what a repo can and cannot enforce34Your Claude Code session has no clock35Claude Code in a large codebase: scoping an agent to the part that matters36Recovering a Claude Code session your picker will not show you