Chapter 02 · Section IV · 8 min read
2.4 Terminal config: shell integration, status line, theme
Small ergonomic wins for the terminal side of Claude Code — shell integration, the status line, colour themes. Trivial to set up, and each one saves a few seconds every hour.
Claude Code runs inside your terminal, which means anything your terminal already does — shell completion, prompt customisation, colour themes — can be enlisted to make the CLI feel like it belongs. Three settings do most of the work.
Shell integration
Enable tab-complete for claude subcommands, flags, session ids, and slash commands:
# bash / zsh
eval "$(claude completion bash)" # or `zsh`
# fish
claude completion fish | source
Drop that in your ~/.bashrc / ~/.zshrc / fish config. Restart the shell. claude --<TAB> now completes flags; claude -r <TAB> completes recent session IDs.
Status line
The status line is the one-line summary Claude Code shows at the top of the session. It reports the model, permission mode, token count, and cost so far. You can customise it via a statusline shell command in settings:
{
"statusline": {
"command": "~/.claude/bin/statusline.sh"
}
}
The command is called on a short interval with a JSON blob on stdin — model, cost, working directory. Whatever it prints on stdout becomes the status line.
For most people the default is fine. Reach for a custom status line when you want to surface something the default omits — the current git branch, a project-local warning, the remaining budget.
Theme
/config opens the settings palette; theme is one of the entries. Options: light, dark, system.
system follows your OS setting — the safest default. light and dark are the honest names. There is no “solarised”: Claude Code deliberately does not ship a dozen themes.
Small nice-to-haves
--no-color— disable ANSI colours entirely. Good for CI logs.--verbose— extra logging, useful when diagnosing tool call issues.ALN_NO_ANIMATIONS=1— disables spinner animations. Handy in some remote terminals that render them poorly.
Check your understanding
Quick check
—