Go to file
Kaj Kowalski a06aa4c549 Fix right-alignment by detecting terminal width from stderr/stdin
When Claude Code captures stdout, term.GetSize on stdout fails and
falls back to 80 columns. Now tries stderr and stdin first (which
remain connected to the TTY), then COLUMNS env var, then 80.
2026-02-08 23:14:13 +01:00

claude-statusline

A custom status line binary for Claude Code, written in Go. Reads JSON from stdin (provided by Claude Code's status hook) and outputs a formatted, ANSI-colored status line.

● Opus 4 ➜ statusline git:(master)                               6k/200k

What it shows:

  • Gitea service status (green/red dot)
  • Model name
  • Current directory
  • Git branch and dirty indicator
  • Context window usage

Install

GOBIN=~/.claude go install gitea.kajkowalski.nl/kjanat/claude-statusline@latest

Or build from source:

git clone https://gitea.kajkowalski.nl/kjanat/claude-statusline.git
go build -C claude-statusline -ldflags="-s -w" -o ~/.claude/claude-statusline .

Configure Claude Code

Add to your ~/.claude/settings.json:

{
  "statusLine": {
    "type": "command",
    "command": "~/.claude/claude-statusline",
    "padding": 0
  }
}

Development

Requires Go 1.25+.

# Build
task build

# Run tests
task test

# Run tests with coverage
task test:cover

# Lint
task lint

# Run with test fixture
task run

License

MIT

Languages
Go 100%