Ever had a nice prompt prepared and the agent comes back with a question, or you need to check something before continuing? Deleting the draft is wasted effort, copy/pasting to make space for the interlude prompt is cumbersome. zsh has this fantastic stash command - Esc-q - that allows you to temporarily remove the current command and it will restore it after your interlude command is finished. pi-interlude brings this to pi. Install it, reload, enter something, press Ctrl-x, enter something else, send it, and watch with awe as your previous prompt reappears 🎉.
A pi extension that lets you stash the current draft, send a one-off interlude message, and then restore the original draft.
pi install npm:@mjakl/pi-interludepi install git:github.com/mjakl/pi-interludepi install ./- Press the interlude shortcut
- Your current editor text is stashed and the input box is cleared
- Type and send a temporary message, or use one of the supported slash commands below
- Your previous draft is restored into the editor
Press the shortcut again before sending to restore the stashed draft manually.
Auto-restore currently works for:
/compact/model
For other slash commands, the stash stays armed. You can restore it manually by pressing the interlude shortcut again.
Note: the extension currently stashes editor text only. If your draft includes attachments, those are not restored.
f6ctrl+x
f6 is the robust default.
ctrl+x is the default secondary shortcut, nice mnemonics like ctrl+i (interlude) or ctrl-s (stash) are already taken or interfere with system keybindings.
Newer pi versions also bind ctrl+x to the built-in app.models.clearAll action in the scoped models selector. If pi reports an extension shortcut conflict for ctrl+x, we recommend removing or rebinding that built-in keybinding in your pi config rather than changing pi-interlude's defaults. This avoids a breaking change for existing pi-interlude users who already rely on ctrl+x.
Add this to ~/.pi/agent/keybindings.json to remove the built-in binding:
{
"app.models.clearAll": []
}If you still want a shortcut for clearing models in the scoped models selector, rebind it to another key instead (note: Shift isn't recognized by all terminal setups):
{
"app.models.clearAll": "ctrl+shift+x"
}If you already have a keybindings.json, merge the setting into the existing object. After changing keybindings.json, run /reload in pi or restart pi.
The extension reads a custom interlude key from pi's existing keybindings file:
~/.pi/agent/keybindings.json
Example:
{
"interlude": ["f6", "ctrl+x"]
}Single shortcut example:
{
"interlude": "f6"
}If interlude is not set, the extension defaults to f6 and ctrl+x.
After changing keybindings.json, run /reload in pi.