Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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

PluginIDInterface
Terminal UInexus.io.tuiBubbleTea-based terminal interface
Browser UInexus.io.browserHTTP/WebSocket web interface
Wails Desktopnexus.io.wailsWails webview transport for desktop apps
Oneshotnexus.io.oneshotNon-interactive single-turn JSON transcript (scripting / CI)
Broker IOnexus.io.brokerDial-back transport for instances spawned by the session broker

Request Headers

Every web-facing transport (nexus.io.agui, nexus.io.a2a, nexus.io.browser, nexus.io.realtime, and nexus.io.broker via the gateway) forwards request headers named X-Nexus-* into the engine, where plugins read them from events.UserInput.Headers or session.RequestHeaders(). It is how a client passes per-request context — tenant, locale, timezone, a trace correlator — without putting it in the prompt. No configuration turns it on. See Request Headers.

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.stream chunks → render incrementally
  • Approvals: Receive io.approval.request → show dialog → emit io.approval.response
  • Questions: Receive io.ask → show prompt → emit io.ask.response
  • Status: Receive io.status → update status indicator