The Interface
agentty renders inline at the bottom of your terminal. It never takes over the screen — your scrollback stays intact, the status bar overlays on top.
The transcript
Conversation history flows in your terminal's normal scrollback. Your turns, the assistant's replies, and every tool call render in order. Queued messages appear as preview rows above the composer — visually identical to real user turns.
The composer
The input box at the bottom. Type and press Enter to send. Alt+Enter inserts a newline. Ctrl+E expands the composer for longer prompts. A ❚ N queued chip shows how many messages are waiting.
Type while a turn is streaming and your message queues — it lands automatically when the current turn finishes. On an empty composer, press ↑ to recall every queued message back into the buffer for editing.
The status bar
A single row at the bottom edge shows the active profile, model, and current phase. When something needs your attention — a transient retry, an error — it swaps in a banner-style notification (▎⚠ <text> for errors, ▎ <text> for info) and reverts to the keybindings strip when the toast expires.
Tool widgets
Each tool gets a purpose-built widget — agentty doesn't just print raw JSON:
- Diffs render as diffs — additions and deletions, color-coded.
- Search results group by file, with line numbers.
- bash shows exit codes and streamed output.
- todos become checklists you can watch tick off.
Smooth streaming
SSE deltas drip into the screen at ⅛ buffer per tick (clamped 32–256 chars), so server-side batching doesn't translate into chunky on-screen text. Where the terminal supports it, frames are wrapped in DEC 2026 begin/end-sync to avoid tearing.