okl statusline for Claude Code: briefed and drifted counts at a glance
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 45/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- git, python
- Domain
- cli, developer-experience
Research direction
Read the existing okl drift and okl recap command paths to understand how they count drift and read the transcript, then inspect okl init --claude for its registration and dry-run behavior. Implementing the statusline also requires a cache keyed by HEAD and verification time, session briefed counts, and runtime coverage. Done when the acceptance cases pass, including reverify updating the count without a new commit and warm-cache median runtime under 100 ms.
Written by the indexing model from the issue text.
Description
Problem
okl's only visible sign inside a Claude Code session is the hook's line per prompt ("okl · briefed N lesson(s): … · K need re-checking"), which scrolls away. There is no standing indicator of what the store did this session or whether anything is drifted right now, so the loop is invisible until a push is refused.
Where it stands (verified 2026-10-20)
- Claude Code's documentation describes a user-configured statusline command, run periodically, whose one line is shown in the UI. Nothing in this repo uses it.
- The store has most of what a statusline needs:
okl driftfor the drifted count (it runs git, so not free on every refresh), and the briefing log for the briefed count. The briefing log has no session column today, so a per-session count needs either that column or the transcript, whichokl recapalready reads for briefed lessons.
Proposal
okl statusline: prints okl · 9 briefed · 2 drifted (or okl · not configured outside an okl repo), reading the briefed count from the transcript the way okl recap does (or from the briefing log once it carries a session id) and a drift result cached per HEAD commit plus the store's last verification time under .okl/, so the git work runs once per commit, not per refresh. okl init --claude offers to register it (--statusline, off by default), and --dry-run lists what it would write. It writes nothing to the store and never blocks anything.
Acceptance
- In a repo with one planted drift, the line reads
… · 1 drifted; afterokl reverify,0 driftedwithout a new commit. - Outside an okl repo the command prints the not-configured line and exits 0, so a statusline never shows an error.
- Median runtime under 100 ms with a warm cache, measured in a test on the fixture repo.
- Dominant language
- Python
- Stars
- 1
- Forks
- 1
- Avg merge
- 5h 45m
- Merged PRs (30d)
- 118
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from emeraldleaf/okl
-
okl record --files with no check turns the drift gate red without saying soPossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
emeraldleaf/okl#377 ·
Maintainers usually reply within 1 day
-
enhancement loop-review
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
emeraldleaf/okl#190 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 73/100
emeraldleaf/okl#147 ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 54/100
emeraldleaf/okl#379 ·
Maintainers usually reply within 1 day
-
okl export writes stamps made on other branches into this branch's snapshotPossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 4/5 3-5 days Newbie friendliness 54/100
emeraldleaf/okl#378 ·
Maintainers usually reply within 1 day
Similar issues
-
binding:python bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
The Browser tab fails with a Wayland error when Open Terminal runs from a Wayland desktop sessionOpen
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
open-webui/open-terminal#210 ·
-
triage/confirmed
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
agentscope-ai/agentscope#3807 ·
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
NousResearch/hermes-agent#150542 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 91/100
triton-inference-server/server#9069 ·
Maintainers usually reply within 1 day