erk-statusline
Custom status line for Claude Code with robbyrussell theme style.
Status Line Components
The status line displays (left to right):
- Git repo:
(git:repo-name)- Current GitHub repository name - Worktree:
({wt, br}:name)or(wt:name)- Git worktree info ("root" for main worktree, or worktree name for linked worktrees) - Branch:
(br:branch-name)- Current git branch (combined with worktree if names match) - Current directory:
(cwd:path)- Relative path from git root (only shown if not at root) - Dirty indicator:
✗- Shows when there are uncommitted changes - GitHub PR info:
(gh:#123 plan:#456 st:XX chks:XX):#123- PR numberplan:#456- Associated issue number from.impl/issue.jsonst:- PR state emoji:👀published,🚧draft,🎉merged,⛔closed,💥conflictschks:- CI checks status:✅passing,🚫failing,🔄pending
- Model:
(S)Sonnet,(O)Opus, or model initial
Installation
uv tool install git+https://github.com/dagster-io/erk-statusline
Or for development:
git clone https://github.com/dagster-io/erk-statusline
cd erk-statusline
uv sync
Usage
Add to ~/.claude/settings.json:
{
"statusLine": {
"type": "command",
"command": "erk-statusline"
}
}
Debugging
The statusline writes debug logs to help diagnose issues like missing chks: indicator, timeouts, or API failures.
Log location: ~/.erk/logs/statusline/<session-id>.log
To view logs for your current session:
# Find recent logs
ls -lt ~/.erk/logs/statusline/ | head
# Tail the most recent log
tail -f ~/.erk/logs/statusline/$(ls -t ~/.erk/logs/statusline/ | head -1)
Example log output:
2025-01-05 12:34:56 DEBUG Statusline invoked: session=abc123 cwd=/path/to/repo
2025-01-05 12:34:56 DEBUG Fetching GitHub data for branch=feature-branch
2025-01-05 12:34:56 DEBUG Fetching PR details: owner/repo #4225
2025-01-05 12:34:56 DEBUG Fetching check runs: owner/repo sha=abc1234
2025-01-05 12:34:57 DEBUG PR details fetched: owner/repo #4225 in 0.8s -> MERGEABLE
2025-01-05 12:34:57 DEBUG Check runs fetched: owner/repo sha=abc1234 in 0.9s -> 5 checks
2025-01-05 12:34:57 DEBUG Final result: branch=feature-branch pr=4225 checks=🔄
Common issues to look for:
- Timeout messages - API calls taking too long (default timeout: 1.5s per call)
- Empty checks -
Final result: ... checks=(empty)means no check runs were returned - Cache behavior - Look for "Cache hit/miss" messages to understand caching
Development
# Run all checks (lint, typecheck, tests)
make check
# Run individual checks
make lint
make typecheck
make test
# Run tests with coverage
make test-coverage
Release files for erk-statusline 0.9.11
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| erk_statusline-0.9.11.tar.gz | 24.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| erk_statusline-0.9.11-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 42.4 kB
Release files / erk_statusline-0.9.11.tar.gz
| Download URL | erk_statusline-0.9.11.tar.gz |
|---|---|
| Size | 24.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
48f00196f2c24073651839935746d5eb06a8363ef592a320f4fc5523945a64ae
|
|
BLAKE2b-256 checksum How to use checksums |
bf17908e90dfa6a72d978d3466dc52b37a08412a0b4385eb567af1f61ea4d246
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / erk_statusline-0.9.11-py3-none-any.whl
| Download URL | erk_statusline-0.9.11-py3-none-any.whl |
|---|---|
| Size | 17.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e76a863caf87feda0cec37b1a807ae4900a9aeea8fd394770d0402d83997e359
|
|
BLAKE2b-256 checksum How to use checksums |
70da6b22642e562da9d4458981f8945da0c85ba1def1adfcf68948ab13da1eb4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|