[FEATURE] Allow promoting /btw responses into conversation context

Resolved 💬 1 comment Opened Mar 22, 2026 by chenxiachan Closed May 27, 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 is great for quick side questions — it has full conversation context and is cost-efficient via prompt cache reuse. However, the response is ephemeral only — it disappears on dismiss with no way to keep it.

Common workflow that's currently impossible:

  1. Use /btw to explore a question (with full context, no tool overhead)
  2. Get a useful answer
  3. Want to keep that answer as part of the conversation to build on it — but can't

The only workaround is to re-ask the same question in the main conversation, which defeats the purpose.

Proposed Solution

Add a "promote to context" keybinding to the /btw overlay. When the response is shown:

  • Space / Enter / Esc → dismiss (current behavior, unchanged)
  • P → promote the Q&A into conversation history as a system message

Implementation (minimal)

I reverse-engineered the /btw implementation in cli.js. The change is ~3 lines:

1. Key handler — add one branch before the dismiss check:

// Current:
if (key.escape || key.return || ch === " ") onDone(void 0, {display: "skip"})

// Proposed:
if (ch === "p" && response) onDone("[Promoted from /btw]\n\nQ: " + question + "\n\nA: " + response, {display: "system"});
else if (key.escape || key.return || ch === " ") onDone(void 0, {display: "skip"})

2. Hint text — update the dismiss instruction:

// Current:
"Press Space, Enter, or Escape to dismiss"

// Proposed:
"Space/Enter/Esc to dismiss | P to promote to context"

3. Cache invalidation — the key handler's memo cache guard needs to also depend on the response variable (since the handler now references it), or simply always recreate the handler.

That's it. The onDone(message, {display: "system"}) pattern is already used by other commands (e.g., bug report), so no new infrastructure is needed.

Why this matters

/btw occupies a unique niche — full context + zero tool overhead + prompt cache reuse. It's the cheapest and fastest way to explore questions mid-session. But being ephemeral-only limits it to throwaway lookups. Adding promote would make it a powerful "try before you commit" workflow:

  • Explore multiple angles cheaply via /btw
  • Only keep the answers that matter
  • Conversation stays clean, context stays focused

Alternative Solutions

  • Custom skill: Skills can't replicate /btw's overlay UI or its {display: "skip"} mechanism. Skills with context: fork lose conversation history; without fork, they pollute context unconditionally.
  • Patching cli.js via npm: Works but fragile — minified variable names change every release, and npm distribution is deprecated.
  • New /oh command: I built a working prototype that clones /btw with promote support (patch script extracts 19 internal function names dynamically), but it requires npm install and re-patching after every update.

Priority

Critical - Blocking my work

Feature Category

CLI commands and flags

Use Case Example

_No response_

Additional Context

_No response_

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗