
Terax CLI控制面完全解析本地回环协议、Token认证与命令路由【免费下载链接】terax-aiLightweight (7MB) Terminal-first AI-native dev workspace项目地址: https://gitcode.com/GitHub_Trending/te/terax-aiTerax一个仅 7MB 的终端优先 AI 原生开发工作区内置了一个轻量CLI 控制面在终端里敲一行terax 文件路径就能让正在运行的应用直接打开文件、定位行号。本文将带你完整理解它的三大核心机制——本地回环协议、Token 认证与命令路由以及 AI Agent 如何借由这套机制操作你的编辑器界面。一分钟看懂Terax CLI 控制面是什么Terax 的应用内终端面板Pane里自带一个 Rust 编写的命令行客户端 terax-cli对外暴露为terax命令。应用启动时会启动一个只绑定在 127.0.0.1 的控制服务器CLI 通过 TCP 回环连接把请求发过去完成从终端控制 GUI的动作。当前协议版本 1 提供 4 个方法ping探活、capabilities能力查询、identify识别当前上下文、open打开文件。命令作用常用参数terax file在应用内打开文件简写形式--line n指定行号、--no-focus不打扰焦点、--json输出 JSONterax open file同上显式子命令形式同上terax ping检查应用是否在运行--jsonterax capabilities列出支持的方法清单--jsonterax identify查询当前 space / tab / pane 上下文--json本地回环协议CLI 如何找到运行中的 Terax这是整个控制面的握手环节分为发现与校验两步端口发现应用启动时绑定127.0.0.1的随机临时端口见 control.rs并把协议版本、地址、进程 PID、应用版本写进用户缓存目录下的terax/control.json描述文件。CLI 端三重校验CLI 读取描述文件后会先确认协议版本一致、地址必须是回环地址localhost主机名甚至也会被拒绝、描述的 PID 仍是活着的 Terax 进程——避免拿着一份尸体配置发请求。相关校验逻辑见 validate_endpoint。 如果你知道地址和 Token也可以通过环境变量TERAX_CONTROL_ADDR/TERAX_CONTROL_TOKEN直接注入端点绕过描述文件。协议传输采用换行分隔的 JSONNDJSON单条消息上限 64 KiB请求 ID 限制为 1~128 个日志安全 ASCII 字符从 terax-control-protocol 可以清楚看到这些常量的定义。Token认证三层安全设计拒绝一切越权请求控制面把安全做到了每一个环节都有防线的程度传输层监听只绑定127.0.0.1外部网络根本连不进来文件层Unix 下控制目录权限0700、描述文件0600原子替换其他用户读不到 Token请求层每个请求都携带 256 位随机 Token服务端用恒定时间比较constant_time_eq校验防止时序侧信道攻击不匹配立即以unauthorized拒绝。此外还有连接数上限32、并发 UI 请求上限32、读写/UI 响应超时、关闭流程中只有描述文件仍属于退出进程时才删除防止旧实例误删新实例端点等约束。完整安全模型详见 docs/architecture/cli-control.md 与 security-model.md。命令路由一条 open 请求的完整旅程open是最复杂的方法它完整展示了 Terax 的两进程模型下 Rust 与前端如何分工CLI 侧解析参数先对路径做规范化canonicalize并确认是普通文件打包成请求发出parse_openRust 服务端在 route_request 中依次校验请求 ID → 协议版本 → Token然后对open参数做二次校验——路径必须落在已授权的工作区内否则返回path_not_accessible路由到前端需要改变 React 状态的 UI 动作打开标签页不在 Rust 里重复实现一份标签模型而是以事件转发给主 webview由前端桥接器 useControlBridge.ts 创建标签页上下文解析前端根据调用方 pane 决定目标 space——命令在哪个终端面板里发出就打开到哪个面板所在的 space即使那个 space 当前没有 UI 焦点resolveControlContext回执前端通过control_respond把结构化结果含 tab_id、space_id、是否聚焦成功传回 Rust再经 TCP 送回 CLI。这个Rust 负责系统校验、前端负责状态变更的分工是整个命令路由设计的精髓。AI Agent 如何获得这套本地 UI 控制能力Terax 生成的原生 shell 会注入控制端点与TERAX_PANE_ID环境变量因此在终端里启动的编码 Agent 天然继承调用者的上下文——Agent 跑完任务后可以直接用terax 文件 --line N把关键结果定位到你的编辑器里而不需要你手动切换窗口。这正是 AI 工作流中人机协同的关键一环。⚠️ 唯一的安全纪律Token 永远不应被打印到日志或命令输出中。当前边界与扩展路线文档明确列出了协议版本 1 的限制WSL 面板尚未获得控制凭据尚未安装全局terax命令供外部终端使用CLI 还不能拉起已退出的应用split / tab / agent / 输入类命令尚未纳入协议。这些限制被刻意显式化——不支持的路径会明确失败而不是悄悄打错目标面板。扩展协议的标准流程加方法常量 → Rust 校验 → 仅 UI 相关工作路由到前端见 cli-control.md。核心文件导航CLI 客户端源码src-tauri/crates/terax-cli/src/main.rs协议共享类型src-tauri/crates/terax-control-protocol/src/lib.rs服务端端点发现与路由src-tauri/src/modules/control.rs前端控制桥接src/modules/control/架构文档docs/architecture/cli-control.md掌握这套本地回环 Token 认证 分层路由的机制后你既能在日常开发中用terax命令加速文件跳转也能理解 Terax 如何在小巧7MB与安全可控之间取得平衡。【免费下载链接】terax-aiLightweight (7MB) Terminal-first AI-native dev workspace项目地址: https://gitcode.com/GitHub_Trending/te/terax-ai创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考