feat(tui): show omac-vs-bare status indicator#20
Open
nhuelstng wants to merge 1 commit into
Open
Conversation
Claude Code: persistent statusLine bar reading OMAC_VERSION from env (ignores JSON stdin so schema changes can't break it). Prints 'omac v<x>' or 'bare'. OpenCode: tui.showToast on session.created with the same env var. Documented SDK API, not in transcript so cannot confuse the model. Both degrade to silence when OMAC_VERSION is unset (bare harness). Signed-off-by: Niclas Hülsmann <niclas.huelsmann@tngtech.com>
7d98457 to
83bc91b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Persistent visual marker showing whether the running harness is under omac or bare.
statusLinescript (.claude/statusline-omac.sh) reading$OMAC_VERSIONfrom env. Printsomac v<x>orbare. Ignores the JSON stdin payload so future statusLine schema changes cannot break it.tui.showToastonsession.createdin the existingomac-multidir.tsplugin. Same env var. Documented SDK API (notexperimental.*), not in the transcript so it cannot confuse the model.Why
Users are sometimes unsure whether they are running under omac or just the bare harness. This adds a non-intrusive visual signal on each harness's native cleanest surface.
Future-proofing
statusLineis a documented top-level feature with its own/statuslinecommand. Reading env (not JSON) decouples from any schema evolution.tui.showToastis in the SDK TUI API table (stable). The plugin already subscribes tosession.createdand usesclient.*.OMAC_VERSIONpresence \u2192 bare harness = silence, never an error.Verification
bash -non the statusline script: OKOMAC_VERSION=0.1.5 bash .claude/statusline-omac.sh < /dev/null\u2192omac v0.1.5; unset \u2192baretsc --noEmit --strict --skipLibCheckon the plugin: clean