What you get
| Feature | How |
|---|---|
| Multiple chats | Ctrl+N opens a new chat. Ctrl+J and Ctrl+K switch between them. Each chat is its own Spectrum space. |
| Reactions | Press r on a message to react. It arrives in your code as a reaction content message. |
| Replies | Press e to reply inline. It arrives with a replyTo: { messageId } extra on the message. |
| File attachments | Drag-and-drop into the terminal. Messages arrive with name, MIME type, and buffer. |
| Inline images | Rendered with the Kitty graphics protocol when supported, with a half-block fallback. |
| Typing indicators | space.startTyping() and space.stopTyping() show a live indicator. |
| Console capture | console.log, info, warn, error, and debug from your agent are forwarded into a pinned __system__ chat instead of garbling the UI. |
Reactions and replies
Reactions ride the sameapp.messages stream as text. They arrive as a reaction content message:
replyTo field: