@howaboua/pi-smart-btw

Async side-session questions for Pi with explicit injection into the main chat.

Packages

Package details

extension

Install @howaboua/pi-smart-btw from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@howaboua/pi-smart-btw
Package
@howaboua/pi-smart-btw
Version
0.2.1
Published
Jun 9, 2026
Downloads
1,268/mo · 273/wk
Author
howaboua
License
MIT
Types
extension
Size
64.6 KB
Dependencies
0 dependencies · 3 peers
Pi manifest JSON
{
  "extensions": [
    "./index.ts"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

pi-smart-btw

@howaboua/pi-smart-btw adds /btw side sessions to Pi: async, ephemeral child Pi RPC processes for questions you do not want to derail the main chat. Answers live in the transcript; the widget is status and controls only.

  • Fresh context per slot: pi --mode rpc --no-session (full tools/extensions; this extension disables itself in the child).
  • Multiple numbered slots: /btw 1 …, /btw 2 …, /btw to open the panel, /btw 1 to switch.
  • Per-slot queue and child: a slow slot 1 does not block slot 2.
  • Transcript is canonical: BTW SESSION custom messages with generation tombstones on clear/inject.
  • Restore from JSONL after restart; restored follow-ups seed the child with prior Q&A when needed.
  • Main LLM context filters BTW messages until you inject.

Install

pi install npm:@howaboua/pi-smart-btw

One-off:

pi -e npm:@howaboua/pi-smart-btw

Usage

/btw 1 what is this repo?
/btw 2 explain this error
/btw 1 continue that answer
/btw

While a slot is active:

  • another /btw … (or /btw N …) continues that slot's child when targeted
  • alt+c — inject answers into the main chat and clear the slot
  • alt+x — clear the slot (hidden tombstone in JSONL)
  • alt+z — prefill /btw in the editor
  • alt+h/l — previous/next slot; alt+1..9 — jump to slot
  • alt+j/k — fold/unfold the widget
  • /btw config — settings UI (model, thinking, shortcuts, links)

In General: Edit shortcuts opens ~/.pi/agent/pi-smart-btw.json in $VISUAL or $EDITOR. Use it for shortcuts and advanced JSON-only settings like command. Run /reload after editing shortcuts. Esc closes and saves (merges file + provider/model/thinking).

Configuration

~/.pi/agent/pi-smart-btw.json:

{
  "provider": "openai-codex",
  "modelId": "gpt-5.4-mini",
  "command": "pi",
  "thinking": "low",
  "injectShortcut": "alt+c",
  "dismissShortcut": "alt+x",
  "composeShortcut": "alt+z",
  "foldShortcut": "alt+j",
  "unfoldShortcut": "alt+k",
  "previousShortcut": "alt+h",
  "nextShortcut": "alt+l"
}

Development

npm install
npm run check
npm run pack:dry-run