I/O Interface Plugins
I/O plugins handle user interaction — displaying agent output and collecting user input. You need exactly one active I/O plugin.
Available I/O Plugins
| Plugin | ID | Interface |
|---|---|---|
| Terminal UI | nexus.io.tui | BubbleTea-based terminal interface |
| Browser UI | nexus.io.browser | HTTP/WebSocket web interface |
| Wails Desktop | nexus.io.wails | Wails webview transport for desktop apps |
| Oneshot | nexus.io.oneshot | Non-interactive single-turn JSON transcript (scripting / CI) |
| Broker IO | nexus.io.broker | Dial-back transport for instances spawned by the session broker |
I/O Event Flow
Both I/O plugins follow the same event pattern:
- Input: Collect user text → emit
io.input - Output: Receive
io.output→ display to user - Streaming: Receive
io.output.streamchunks → render incrementally - Approvals: Receive
io.approval.request→ show dialog → emitio.approval.response - Questions: Receive
io.ask→ show prompt → emitio.ask.response - Status: Receive
io.status→ update status indicator