← 返回 FEED
GITHUB2026-04-28

Create Agent TUI: 给 Terminal Agent 搭一个可定制的外壳

Create Agent TUI

一个给 AI coding agent 用的技能,可以一键搭出完整的 TypeScript TUI 项目——就像 create-react-app,但搭的是 Terminal Agent。告诉你的 coding agent 你想要什么样的 agent,它就生成一个可运行的项目,内置可定制的终端界面、工具集和配置。

核心定位

这个 TUI 不重新实现 Agent loop——它依赖 @openrouter/agent SDK 处理:

  • 模型调用client.callModel(),支持 OpenRouter 上任何模型
  • 工具执行:用 tool() + Zod schema 定义工具,SDK 自动校验输入并调用你的 execute 函数
  • 多轮循环:SDK 自动循环(调模型 → 执行工具 → 调模型),直到触发停止条件
  • 流式输出result.getTextStream() 输出文本增量,result.getToolCallsStream() 输出工具调用流
  • 成本追踪result.getResponse().usage 含 input/output token 计数

TUI 负责 loop 以外的所有东西:配置、工具定义、session 持久化、入口(CLI 或 API server),以及从交互清单里选出来的各种模块。

可定制的内容

服务端工具(OpenRouter 执行,零客户端代码)

工具默认功能
Web Search通过 openrouter:web_search 实时搜索
Datetime通过 openrouter:datetime 获取当前日期/时间
Image Generation通过 openrouter:image_generation 生成图片

用户定义工具(本地执行)

工具默认功能
File Read带 offset/limit 读文件,检测图片
File Write创建/覆写文件,自动创建目录
File Edit搜索替换,带 diff 输出
Glob/Find按模式查找文件
Grep/Search按正则搜索文件内容
Directory List列出目录内容
Shell/Bash执行命令,带超时
JS REPL持久化 Node.js 环境
Sub-agent Spawn派生子 Agent 委托任务
Plan/Todo跟踪多步骤任务进度
Request User Input问结构化问题
Web Fetch抓取并提取 URL 文本
View Image将本地图片读为 base64
Custom Tool Template自定义领域的空工具模板

Harness 模块(架构组件)

模块默认功能
Session PersistenceJSONL 追加式对话日志
Context Compactioncontext 过长时压缩旧消息
System Prompt Composition从静态+动态 context 文件构建指令
Tool Permissions危险工具需用户审批
Structured Logging发出 tool calls、API 请求、错误事件

终端 UI 样式

工具展示

  • Emoji:每个工具调用带 emoji 标记,含工具名、参数、耗时
  • Grouped(默认):粗体操作标签 + 树状输出,连续同类调用合并
  • Minimal:聚合单行摘要,恢复文字时刷新
  • Hidden:完全抑制工具输出

输入框样式

  • Block(默认):自适应终端配色的全宽输入框
  • Bordered:上下横线框架,兼容任何终端
  • Plain:简单 > 提示符,无转义序列

加载动画

  • Spinner(默认):盲文点动画
  • Gradient:文字上滚动颜色光晕
  • Minimal:尾部省略号

快速启动

gh skill install OpenRouterTeam/skills create-agent-tui

然后告诉你的 agent 去构建一个 agent TUI——它会自动使用这个技能。


信源https://github.com/OpenRouterTeam/skills/tree/main/skills/create-agent-tui