[FEATURE] Make read-only slash commands ephemeral (overlay) by default, like /btw

Resolved 💬 3 comments Opened Mar 18, 2026 by jdalt Closed May 2, 2026

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)
  • /cost token usage query
  • /status session/connection status
  • /model current model info
  • /help reference lookup
Why it matters
  • /cost is 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 /btw pattern 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_

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗