Skip to content

[FEATURE] Allow promoting /btw responses into conversation context #37582

Description

@chenxiachan

Preflight Checklist

  • I have searched existing requests and this feature hasn't been requested yet
  • 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions