gPTY
基于 Godot + Rust 的多终端模拟器,专为 AI 编程工具设计
gPTY 是一个基于 Godot 引擎和 Rust 语言构建的跨平台多 PTY(伪终端)模拟器,核心目标是解决 AI 编程工具(如 Cursor、Windsurf、Claude Code)在与终端交互时的可观测性问题。传统终端模拟器以文本输出为核心,AI Agent 只能通过 OCR 或正则匹配来理解终端反馈,效率低且容易出错。gPTY 提供了结构化的 JSON-RPC / MCP 控制面,让 AI 工具能够以编程方式精确控制终端、注入输入、观察输出,并将终端内容路由到代码查看器、检查器等相邻面板。
核心功能
- 多终端分屏:在可调节的网格布局中同时运行多个独立的 shell 会话,支持全 DEC STD 070 标准(16/256/真彩色)、带正则搜索的回滚历史和文本选择。
- JSON-RPC / MCP 控制接口:AI Agent 和自动化脚本可通过 IPC 套接字或 CLI(gpty new-pane、gpty inject 等)精确控制任意面板的创建、输入注入和输出捕获,无需屏幕截图或 OCR。
- 概念引擎(Concept Engine):通过正则表达式自动捕获 PTY 输出中的关键回复内容,并路由到相邻的代码查看器或检查器面板展示,实现终端与代码的联动感知。
- Agent 可观测性面板:内置推理过程面板(显示 OMP 等生命周期事件)和检查器面板(运行私密的问答会话),帮助人类或 AI 理解 Agent 当前状态。
- 跨平台独立运行:提供 Linux、macOS、Windows 独立二进制包,无需安装 Godot 引擎或 Rust 工具链。
- 自动持久化:回滚历史、设置、工作区配置(命名标签页集)自动保存至 SQLite/JSON,重启后完整恢复。
技术实现
gPTY 的核心架构分为三层:底层 PTY 管理使用 portable-pty 库实现跨平台伪终端分配;中层 ANSI 解析基于 Rust 的 vte crate 构建高效状态机;上层渲染使用 alacritty_terminal 的网格状态机实现标准终端渲染。Godot 4.7+ 通过 GDExtension 0.5 接口与 Rust 核心通信。概念捕获引擎对解析后的行输出做正则匹配,将匹配结果以结构化数据送入相邻面板,不做任何输入注入。项目中大部分代码(包括 Godot UI 布局和 Rust GDExtension 桥接层)由 LLM 自动生成。
快速上手
第一步:从 GitHub Releases 下载对应平台的压缩包并解压。
第二步:Linux 运行 ./gpty-gui.sh 启动图形界面,Windows 运行 gpty-gui.exe。
第三步:通过 MCP 服务器地址连接 AI 编码工具(需要客户端支持外部 MCP 服务器)。
第四步:使用 gpty CLI(./gpty new-pane、./gpty inject)创建新面板或向指定面板注入命令。
适用人群
开发 AI 编程工具(Cursor、Windsurf、Claude Code 插件等)的工程师、研究 Agent 可观测性方案的 AI 研究者,以及需要同时管理多个终端会话的高级用户。
评论与建议
登录 后参与评论或提建议