UNPKG

ai

Version:

AI SDK by Vercel - build apps like ChatGPT, Claude, Gemini, and more with a single interface for any model using the Vercel AI Gateway or go direct to OpenAI, Anthropic, Google, or any other model provider.

83 lines (68 loc) 2.12 kB
--- title: Terminal UI description: Use @ai-sdk/tui with HarnessAgent. --- # Harnesses with Terminal UI `@ai-sdk/tui` can render harness streams, tool calls, reasoning sections, and approval prompts in a terminal. Because `HarnessAgent` requires a session on every call, wrap it with a small `AgentTUIAgent` adapter that injects one session for the lifetime of the terminal UI. ## Installation <InstallPackages packages="@ai-sdk/tui @ai-sdk/harness @ai-sdk/harness-codex @ai-sdk/sandbox-vercel" /> ## Example ```ts filename='tui.ts' import { HarnessAgent, type HarnessAgentSession } from '@ai-sdk/harness/agent'; import { codex } from '@ai-sdk/harness-codex'; import { createVercelSandbox } from '@ai-sdk/sandbox-vercel'; import { runAgentTUI, type AgentTUIAgent } from '@ai-sdk/tui'; const agent = new HarnessAgent({ harness: codex, sandbox: createVercelSandbox({ runtime: 'node24', ports: [4000], }), }); function createTUIAgent({ agent, session, }: { agent: HarnessAgent<any, any, any>; session: HarnessAgentSession; }): AgentTUIAgent { return { version: 'agent-v1', id: agent.id, tools: agent.tools, generate(request) { return agent.generate({ ...request, session, } as Parameters<typeof agent.generate>[0]); }, stream(request) { return agent.stream({ ...request, session, } as Parameters<typeof agent.stream>[0]); }, } as AgentTUIAgent; } const session = await agent.createSession(); try { await runAgentTUI({ title: 'Codex', agent: createTUIAgent({ agent, session }), tools: 'auto-collapsed', reasoning: 'collapsed', }); } finally { await session.destroy(); } ``` The terminal UI runs until the user exits with `Esc` or `Ctrl+C`. Use one session per terminal run. For long-lived terminal tools, persist the state from `session.detach()` or `session.stop()` if you need to resume later. ## Related - [Terminal UI](/docs/agents/terminal-ui) - [runAgentTUI API Reference](/docs/reference/ai-sdk-tui/run-agent-tui) - [HarnessAgent](/docs/ai-sdk-harnesses/harness-agent)