# Your way: the status line, output styles and built-in teachers

Course: Claude Code: Pro Level — https://zero2vibecode.com/learn/claude-code-pro
Canonical URL: https://zero2vibecode.com/learn/claude-code-pro/2-4-status-line-and-output-styles
Verified against: Claude Code v2.1.292 (2026-10-15)
Last updated: 2026-10-15

The status line shows what matters to you at the bottom of the screen — the model, the folder, how full the context is. Output styles change how Claude answers, and /powerup and the Learning style turn it into a teacher.

The last lesson of the level is about making Claude Code work the way that suits you.

## The status line

At the bottom of Claude Code there is a bar — the status line. What it shows is your call: Claude Code runs **your script**, feeds it JSON about the session, and displays whatever the script prints.

The quickest route is to ask for the script:

```
/statusline show the model, the folder name and what percentage of the context is used
```

Or build it by hand. The script reads the JSON and prints one line:

```bash
#!/bin/bash
input=$(cat)
MODEL=$(echo "$input" | jq -r '.model.display_name')
DIR=$(echo "$input" | jq -r '.workspace.current_dir')
PCT=$(echo "$input" | jq -r '.context_window.used_percentage // 0' | cut -d. -f1)
echo "[$MODEL] ${DIR##*/} | ${PCT}% context"
```

And it is hooked up in your personal settings, `~/.claude/settings.json`:

```json
{
  "statusLine": {
    "type": "command",
    "command": "~/.claude/statusline.sh"
  }
}
```

The context percentage in the status line is `/context` from the first level, always in view.

## Output styles

A style changes the way Claude answers:

```
/output-style learning
```

- **Explanatory** — Claude adds short `Insight` blocks explaining why it did things the way it did.
- **Learning** — the same, plus it leaves you a few lines of key decisions to write: it marks a `TODO(human)` spot and stops, asking you to fill it in.

The choice is saved in the project's `.claude/settings.local.json`. To go back to the normal manner, use `/output-style default`.

## Built-in teachers

- **`/powerup`** — short interactive lessons on Claude Code's features, right in the terminal.
- **`claude-code-guide`** — the built-in helper for Claude Code itself. Name it in your request: "use the claude-code-guide agent: how do I make my own slash command?" Otherwise Claude may answer from memory, and memory goes stale faster than the docs.

**Careful.** 
The status line is also a script Claude Code runs on your behalf. It only works in folders you have trusted in the trust dialog. Do not hook up someone else's status line script without reading it.

**Practice in the terminal.** Hook up a status line in your personal settings: create ~/.claude/settings.json with a statusLine block that runs ~/.claude/statusline.sh. This is a user file, not a project file — the line will be the same in all your projects.
