TUI internals
The TUI replaces the classic prompt-toolkit interface with an Ink-based terminal application.
Process model
arcen --tui
Node Ink UI
stdio JSON-RPC
Python tui_gateway
AIAgent, tools, sessions, slash commands
TypeScript owns rendering and input. Python owns sessions, model calls, tools, and command dispatch.
Key surfaces
| Surface | TypeScript | Gateway |
|---|---|---|
| Chat streaming | ui-tui/src/app.tsx | prompt.submit events |
| Tool activity | thinking.tsx | tool.start, tool.progress, tool.complete |
| Approvals | prompts.tsx | approval.respond |
| Session picker | sessionPicker.tsx | session.list, session.resume |
| Slash commands | local handler plus fallback | slash.exec, command.dispatch |
Development commands
cd ui-tui
npm install
npm run dev
npm run type-check
npm test