# Conflicts: # examples/acp-agent/tests/snapshots/advanced-toolchain/system-prompt.expected.md # examples/acp-agent/tests/snapshots/advanced-toolchain/tool-schemas.expected.json # examples/acp-agent/tests/snapshots/both-mode-turn/system-prompt.expected.md # examples/acp-agent/tests/snapshots/both-mode-turn/tool-schemas.expected.json # examples/acp-agent/tests/snapshots/code-mode-turn/system-prompt.expected.md # examples/acp-agent/tests/snapshots/model-switching/tool-schemas.expected.json # examples/acp-agent/tests/snapshots/permission-switching/tool-schemas.expected.json # examples/acp-agent/tests/snapshots/skill-load/tool-schemas.expected.json # examples/acp-agent/tests/snapshots/text-turn/tool-schemas.expected.json # examples/acp-agent/tests/snapshots/workspace-edit/system-prompt.expected.md # examples/acp-agent/tests/snapshots/workspace-edit/tool-schemas.expected.json # scripts/gen-tool-catalog.ts
tui-agent
The full-screen terminal counterpart to the repl-agent readline REPL and acp-agent server. It reuses the coding agent's backends and tool composition, then fixes the shared terminal app to the dsh-tui front door.
Run it
pnpm run demo:tui
The command needs DEEPSEEK_API_KEY in the environment or the gitignored repository-root .env. Set RESUME_SESSION_ID to reopen a persisted conversation under ./.sessions.
The TUI renders Markdown history, reasoning, tool-owned terminal/diff/generic cards, token totals, and the latest todo list. Enter submits or steers while the agent is running; Ctrl+O expands cards, Ctrl+R toggles reasoning, Escape cancels, and /help lists commands. ask_user_question opens a keyboard-driven overlay.
Run pnpm run demo:code-mode tui for the sibling Code Mode overlay.
Composition
cordis.yml includes the readline repl-agent leaf so the LLM, bash, filesystem, compaction, subagent, workflow, todo, timeout, and spill choices have one owner. Its asserted patch replaces only the terminal app config and forces ui.mode: tui; code-mode.cordis.yml applies the same front-door patch to the repl-agent Code Mode overlay.
Snapshot tests
tests/snapshots/<scenario>/session.jsonl supplies recorded user prompts and model chunks; sibling child logs drive subagents and workflows. The keyless suite executes those scripts through the real loop and tool implementations, then compares readable expected terminal cell/style output. Use pnpm run test:snapshot:refresh for presentation-only changes and pnpm run test:snapshot:record with a DeepSeek key when a recorded model journey changes. The implemented TUI snapshot Agent Note owns the scenario matrix and the split between recorded journeys, transient package snapshots, and PTY coverage.