[FEATURE] Make read-only slash commands ephemeral (overlay) by default, like /btw
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
/btw introduced a great UX pattern: ephemeral overlay responses that don't pollute conversation context. But it's the only command that uses it. Several built-in commands are purely informational — they query runtime state and have no reason to persist in context — yet they interrupt the conversation thread the same way a code change would.
Affected commands (non-exhaustive)
/costtoken usage query/statussession/connection status/modelcurrent model info/helpreference lookup
Why it matters
/costis something you check frequently mid-session, precisely because you care about context bloat — but running it makes that problem worse- Informational commands don't change anything; there's no reason their output should live in the thread
- The
/btwpattern already proves this works well; it just isn't applied consistently
Proposed Solution
Commands that are read-only queries against runtime state should render as dismissible overlays by default, exactly like /btw. No conversation history entry, no cache bust, dismiss with Space/Enter/Escape.
Possible extension
Expose a frontmatter flag (e.g. ephemeral: true) on user-defined slash commands so the community can opt into this behavior for their own informational commands.
Alternative Solutions
Open another terminal pane in tmux, open claude, resume same session, and run desired interrupting slash command (too annoying won't do it).
Priority
High - Significant impact on productivity
Feature Category
Interactive mode (TUI)
Use Case Example
Checking cost mid-session
I'm three hours into a large refactoring session. Claude has read 40+ files and we have significant shared context built up. I want to check whether I'm close to a cost threshold before continuing — so I run /cost.
The result: the cost check gets picked up whenever my monumental conversion work abates (if i knew when, i'd have solved the halting problem) and the check itself adds tokens to the conversation, marginally worsening the very problem I was trying to assess. A runtime telemetry readout is now permanently embedded in my conversation history, where it serves no purpose and may subtly affect future responses.
With ephemeral behavior, /cost would display in an overlay in a predicable amount of time, I'd glance at the number, dismiss it, and continue — zero context impact, fast feedback, exactly like peaking at cal on the cli.
Additional Context
_No response_
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗