oh-my-claudeagent / statusline
AGENTS.md3 starsChanged 32 days agoMITView on GitHub
The main status line and the per-subagent tasks panel renderers for Claude Code, in TypeScript on bun. Read README.md first for what they show and how they are configured. - main.ts: entry point. Reads the payload from stdin, reads git, prints the render, and prints [claude] when anything fails. - render.ts: payload types, the segments and the layout. render(data, git, env, now) takes the environment and the clock as arguments so specs control both. arrange fills lines with Segment values…
In this repository22 other files it gives its agents.
- AGENTS.mdAGENTS.md
- hooks/AGENTS.mdAGENTS.md
- opencode/AGENTS.mdAGENTS.md
- scripts/AGENTS.mdAGENTS.md
- servers/AGENTS.mdAGENTS.md
- skills/AGENTS.mdAGENTS.md
- templates/AGENTS.mdAGENTS.md
- tests/AGENTS.mdAGENTS.md
- analyzerSkill
- build-fixerSkill
- consolidate-memorySkill
- debuggingSkill
- github-triageSkill
- git-masterSkill
- handoffSkill
- init-deepSkill
- omca-setupSkill
- planSkill
- refactorSkill
- remove-ai-slopsSkill
- reviewerSkill
- start-workSkill
The file
Files
Statusline
The main status line and the per-subagent tasks panel renderers for Claude Code, in TypeScript
on bun. Read README.md first for what they show and how they are configured.
Layout
main.ts: entry point. Reads the payload from stdin, reads git, prints the render, and prints[claude]when anything fails.render.ts: payload types, the segments and the layout.render(data, git, env, now)takes the environment and the clock as arguments so specs control both.arrangefills lines withSegmentvalues (aminandmaxwidth in cells, and adrawfor a given width) in priority order;subagent.tscalls it too.fullRowsgives the session, workspace and usage rows, andstackRowsstarts each on its own line, wraps it witharrange, and while the lines run past the budget drops the segment with the highestRANKin any row.git.ts: branch, status counts, remote, and the 5-second cache in the temp directory.fixtures.spec.ts,render.spec.ts,git.spec.ts,main.spec.ts:bun test statusline. The recorded cases live intests/fixtures/statusline/; each case also asserts that no line is wider than itsCOLUMNSminus 6 and that no segment is cut.subagent.ts: entry point for the subagent rows. It shares the palette, glyphs and width helpers exported byrender.ts.launcher.ts: setup copies it to~/.claude/omca/statusline.ts, outside the plugin, so it imports nothing relative. It runsmain.ts, orsubagent.tswith--subagent, from the enabled install thatplugins/installed_plugins.jsonrecords most recently, under any marketplace name and version.subagent.spec.ts,launcher.spec.ts: run the entry points as processes and compare stdout.
Conventions
The renderer reads .omca/state/boulder.json directly because it runs outside any tool call,
and resolves the plan through src/core/boulder.ts with strict set, so a session without
its own binding never shows another session's plan. It never writes the file.
The renderer takes no tuning settings. COLUMNS and LINES from Claude Code size the layout.
Lines use COLUMNS minus the 3 cells Claude Code keeps free on each side, measured in a live
session. The only override is OMCA_GLYPHS (nerd, unicode or ascii), which the mod reads too. subagent.ts also reads
OMCA_SUBAGENT_STATUSLINE_DUMP: when set, it appends each raw payload to that file, for
recording fixtures. A new segment is an entry in its row in fullRows, at its priority
position, built as a block when its width is fixed, with an entry in RANK that says when it
gives way. Keep a segment whole: only the next-task label may be ellipsized, and only the context
bar may change width. The bar's 8 to 20 block range and the 60 and 85 percent color thresholds are
constants in render.ts.
Rounding of exact binary ties goes to the even neighbor (fixed in render.ts). The recorded
fixtures need it, so do not replace it with toFixed or Math.round.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

