paddington 0.3.0

A fast, minimal status line renderer for Claude Code
paddington-0.3.0 is not a library.

paddington

A fast, minimal status line renderer for Claude Code, written in Rust.

Reads Claude Code's JSON status input from stdin and outputs a compact, color-coded multi-line status bar showing:

  • Line 1 — Project path, git repo/branch, worktree, PR status, session name
  • Line 2 — Model name, context window usage
  • Line 3 — Session cost (with running monthly total), duration, lines changed

Session cost data is automatically persisted to a local SQLite database, enabling monthly analytics.

Install

cargo install paddington

Usage

Configure as your Claude Code status line command in ~/.claude/settings.json:

{
  "statusLine": {
    "type": "command",
    "command": "~/.cargo/bin/paddington",
    "padding": 3
  }
}

Custom Templates

Paddington's output is fully customizable via a MiniJinja template in $XDG_CONFIG_HOME/paddington/config.toml (defaults to ~/.config/paddington/config.toml):

[format]
template = """
{{ blue }}{{ path_raw }}{{ reset }} {{ yellow }}{{ branch_raw }}{{ reset }} {{ git_dirty }}
{{ model }} {{ gray }}[${{ cost_raw }}]{{ reset }}"""

Every variable has two forms:

  • Auto-colored ({{ model }}) — wraps the value in its default ANSI color
  • Raw ({{ model_raw }}) — plain text, use with explicit color tags for custom coloring

Available Variables

Variable Description Default Color
path cwd relative to project root blue
repo_owner, repo_name GitHub owner/repo yellow
branch git branch or short SHA yellow
worktree worktree name blue
pr_number, pr_state PR number and review symbol (✓/✗/~) magenta
session_name session name magenta
model model display name green
model_id raw model identifier gray
context_used, context_total, context_pct context window (in k / %) gray
cost, monthly_cost session / monthly cost (USD, 2 decimal) yellow
duration session duration gray
lines_added, lines_removed lines changed green / red
project_name project directory basename blue
session_id session identifier gray
hostname, username machine / OS user gray
datetime current time (HH:MM) gray
paddington_version version string gray
git_dirty "dirty" if uncommitted changes yellow

Color tags: {{ blue }}, {{ yellow }}, {{ green }}, {{ red }}, {{ magenta }}, {{ gray }}, {{ reset }}

If no config file exists, paddington uses a built-in default template that matches the standard output. If the config has errors, a warning is shown in the status line and the default template is used as a fallback.

Validate & Preview

paddington check

Validates your config file and renders a preview with mock data — no live Claude Code session needed.

Monthly Analytics

View cost breakdowns by day, model, and project:

paddington stats              # current month
paddington stats --month 2026-07  # specific month

Data is stored at $XDG_DATA_HOME/paddington/sessions.db (defaults to ~/.local/share/paddington/sessions.db).

Build

cargo build --release

The release profile is configured with LTO and symbol stripping for a small binary.

Credits

Heavily inspired by Starship