Not a bug report. #324 was clearly about pi and it's closed, so I don't want to
reopen that one — this is asking for the same escape hatch on the Claude Code /
Codex side.
Right now if I want the badge gone, I delete the statusLine block from
settings.json by hand and paste it back when I want it again. Fine once,
annoying if you toggle it.
What threw me is that getHideStatus() lives in hooks/ponytail-config.js,
which is the module the Claude/Codex hooks use. I assumed it applied to me and
set the env var:
export CLAUDE_CONFIG_DIR=$(mktemp -d)
PONYTAIL_HIDE_STATUS=1 node hooks/ponytail-activate.js > /dev/null
PONYTAIL_HIDE_STATUS=1 bash hooks/ponytail-statusline.sh
# prints [PONYTAIL]
Nothing happens, and no error either. The value resolves fine, it's just that
pi-extension/index.js is the only thing reading it. ponytail-statusline.ps1
looks the same to me but I'm on Linux so I haven't actually run it.
I get why the statusline can't read the config itself. It's a shell script that
runs on every prompt and all it does is stat .ponytail-active.
One idea, since ponytail-activate.js already reads the config at SessionStart:
have it drop a .ponytail-hidden file next to .ponytail-active, and have both
statusline scripts bail out if they see it. No JSON parsing in bash, nothing
extra per render, and because it gets rewritten every session start, unsetting
the var brings the badge back on its own. Probably wants a line in
scripts/uninstall.js too.
I have this working locally with tests if a PR would help. Equally happy if the
answer is just "hideStatus is pi-only", a sentence saying so would close it,
and #607 is already adding a "Status-line format (pi)" section that could carry
it.
Not a bug report. #324 was clearly about pi and it's closed, so I don't want to
reopen that one — this is asking for the same escape hatch on the Claude Code /
Codex side.
Right now if I want the badge gone, I delete the
statusLineblock fromsettings.jsonby hand and paste it back when I want it again. Fine once,annoying if you toggle it.
What threw me is that
getHideStatus()lives inhooks/ponytail-config.js,which is the module the Claude/Codex hooks use. I assumed it applied to me and
set the env var:
Nothing happens, and no error either. The value resolves fine, it's just that
pi-extension/index.jsis the only thing reading it.ponytail-statusline.ps1looks the same to me but I'm on Linux so I haven't actually run it.
I get why the statusline can't read the config itself. It's a shell script that
runs on every prompt and all it does is stat
.ponytail-active.One idea, since
ponytail-activate.jsalready reads the config at SessionStart:have it drop a
.ponytail-hiddenfile next to.ponytail-active, and have bothstatusline scripts bail out if they see it. No JSON parsing in bash, nothing
extra per render, and because it gets rewritten every session start, unsetting
the var brings the badge back on its own. Probably wants a line in
scripts/uninstall.jstoo.I have this working locally with tests if a PR would help. Equally happy if the
answer is just "hideStatus is pi-only", a sentence saying so would close it,
and #607 is already adding a "Status-line format (pi)" section that could carry
it.