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
Metadata
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 | Provenance | Actions |
|---|---|---|---|---|
| erk_statusline-0.9.11.tar.gz | 24.8 kB | Without provenance | Details for erk_statusline-0.9.11.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| erk_statusline-0.9.11-py3-none-any.whl | Python 3 | none | any | Details for erk_statusline-0.9.11-py3-none-any.whl |
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}
|
Security for erk-statusline 0.9.11
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.