Skip to content
v0.7.7文件通道可按连接配置复用或独立拨号;~/.ssh/config 改为创建时手动导入→

你的终端,助手可以接着用。

TermPilot 是本机 SSH 终端:连接、终端、文件一体。你在窗口里登录后, AI 助手通过内置 MCP Server 接着同一条会话继续操作——口令不出本机。

Windows · macOS · Linux,MIT 开源

TermPilot
TermPilot 主窗口:左侧连接列表,右侧多标签终端
3
类连接协议
SSH / Telnet / 串口
25
个 Agent 工具
连接 / 终端 / exec / 屏幕 / 文件五族
0
遥测上报
没有统计、没有 crash 上报通道
6
个安装包
Windows · macOS · Linux 各两种

连接、操作、传输,三件事做扎实

连接

三类协议一张表单。密码和私钥口令用系统钥匙串加密,只存本机。

  • SSH 支持密码 / 私钥、多跳跳板(ssh -J)、ProxyCommand
  • 串口波特率、数据位、停止位、校验可配,serial_list 先探路
  • 可从 ~/.ssh/config 手动导入已有 Host,应用不写回该文件
  • 无公网地址的机器用反向监听,只接受 127.0.0.1 连入

操作

你登录好的会话,助手接着用。不用重连,不用把密码交出去。

  • exec 通道独立跑命令:stdout / stderr 分流、协议级退出码
  • 同名 session 跨调用承接 cd 和 export,环境不丢
  • PTY 族工具发按键、读屏幕、截长图,TUI 和安装向导也能走
  • 危险命令和删除操作暂停,在窗口里等你确认

传输

SFTP 文件面板和终端共用同一条 SSH,不掉线、不重登。

  • 上传 / 下载 / 新建目录 / 改名 / 删除,单文件 512MB 以内
  • 双击文本文件在线编辑,Ctrl+S 写回服务器
  • 一次性授权的跳板机:文件通道设为复用,不拨第二次
  • 目标机缺 SFTP 子系统时自动改 internal-sftp(可关)

从新建连接到关掉标签

  1. 1

    新建连接

    填主机和账号,或从 ~/.ssh/config 导入。口令加密存本机。

  2. 2

    打开终端

    双击连接即开标签。多跳跳板自动串起,登录只输一次。

  3. 3

    日常操作

    多标签切换、右键复制截图。断线用 term_reconnect 原样恢复。

  4. 4

    交给助手

    设置里启用 Agent 连接,助手在同一会话里跑命令、读屏幕。

  5. 5

    传文件

    文件面板上传下载,文本文件双击直接在线改。

  6. 6

    收工

    关掉标签。连接、终端标题和已绘制的行,下次启动还在。

本地优先:终端工具该有的样子

凭据只存本机

密码和私钥口令用 Electron safeStorage 调系统钥匙串加密,写进本机 SQLite(%APPDATA%\TermPilot\termpilot.db)。没有服务端,没有账号体系。

MCP 只听回环

内置 MCP Server 只绑定 127.0.0.1,每个请求要带 Bearer 令牌。令牌在本机 mcp.json 里,不给谁,谁就连不上。

没有遥测

源码里没有统计、没有 crash 上报。唯一的外联请求是你在设置页手动点「检查更新」时,读一次 GitHub 发布页。

界面

主窗口
主窗口左侧连接与文件,右侧多标签终端。
新建连接
新建连接三种协议一张表单,跳板和多跳在各自页签。
文件面板
文件面板远程目录按层展开,双击文本直接编辑。
从 ssh_config 导入
从 ssh_config 导入选中一个 Host,主机、私钥、跳板自动填好。

和同类的做法比一比

手工敲 ssh 命令图形化终端(XShell 类)TermPilot
登录每次敲完整命令,密码靠 ssh-agent 兜底保存会话,双击连接保存连接,双击或由助手代开
中途交互菜单、向导、sudo 都要本人本人操作本人或助手代按,画面实时可见
继续下一步同一窗口继续同一窗口继续,助手进不来同一条会话助手接着做,不重连
批量与脚本自己写 shell 脚本基本靠手动25 个 MCP 工具 + 本机 CLI
凭据ssh_config / ssh-agent软件内保存系统钥匙串加密,只存本机

技术规格

连接协议SSH / Telnet / 串口(波特率、数据位、停止位、校验可配)
终端xterm.js + WebGL 渲染;本机与远程同一标签栏;滚轮横滚、右键复制截图
通道shell / exec(stdout、stderr 分流,协议级退出码)/ SFTP,同一条 SSH 复用
文件传输上传、下载、新建目录、改名、删除;单文件 512MB 以内;文本在线编辑
凭据存储safeStorage 加密 → 本机 SQLite,不出本机
Agent 接口内置 MCP Server(25 个工具,只绑 127.0.0.1 + 令牌);Go 写的本机 CLI
平台Windows x64 / macOS(Apple Silicon)/ Linux x64
安装包Windows Setup 143MB · macOS dmg 164MB · AppImage 163MB · deb 126MB
许可证MIT

MIT 开源,自己构建只要三条命令

git clone https://github.com/xy200303/termpilot.git
cd termpilot
npm install && npm run dist:win  # dist:mac / dist:linux

仓库:github.com/xy200303/termpilot。 推送到 main 跑类型检查和构建,打 tag 自动出三端安装包并发布 Release。

最近更新

v0.7.7

  • 修复使用 TermPilot 后本机 ssh 命令失效(Bad owner or permissions)的问题:不再写回 ~/.ssh/config
  • 改为新建连接时手动「从 ssh_config 导入」,选中 Host 自动填好主机、私钥和跳板

v0.7.6

  • 每条连接新增「文件通道」设置:自动 / 复用终端连接 / 总是单独拨号
  • 一次性授权的跳板机(第二跳会被拒)改复用后,SFTP 走已授权的同一条连接
  • MCP connection_create / update 新增 sftpMode 参数,connection_list 输出带上

v0.7.5

  • 修复 term_pty 在本机 Windows 终端命令不执行:行尾 LF 被 PSReadLine 当续行,改发 CR
  • 修复中文输入法组字时终端内容左移被裁:根容器改用 overflow: clip

查看完整更新日志 · 仓库 CHANGELOG.md

常见问题

密码和私钥口令存在哪里?

用 Electron safeStorage 调用系统钥匙串加密后,写进本机 SQLite 数据库(Windows 是 %APPDATA%\TermPilot\termpilot.db)。没有服务端同步,connection_list 等接口也不返回口令。

能连跳板机吗?

可以。支持 ssh -J 多跳、ProxyCommand,也能从 ~/.ssh/config 导入现成配置。跳板只授权一次转发时,把这条连接的「文件通道」设为复用终端连接,SFTP 就不会触发第二次拨号。

Telnet 和串口能用 exec 通道和 SFTP 吗?

不能。这两种协议只有一条终端字节流,没有通道概念。对它们调用 term_exec 或 sftp_* 会返回明确的能力说明错误;term_pty、term_write、截图等屏幕族工具三种协议行为一致。

串口断了怎么办?

终端断开后用 term_reconnect(或界面上重连)恢复同一扇终端,编号、备注和已显示的内容都保留。建连接前先 serial_list 确认串口路径和参数。

AI 助手能看到我的密码吗?

不能。口令只在拨号时于主进程内存里短暂解密,任何工具接口都不返回。MCP Server 只绑定 127.0.0.1,且每个请求要带本机 mcp.json 里的令牌。

macOS Intel 芯片能用吗?

官方只发布 Apple Silicon(arm64)的 dmg 和 zip。Intel Mac 可以从源码自行构建:npm install 后跑 npm run dist:mac。

安装时提示未签名 / 未知发布者?

安装包没有做代码签名。Windows 在 SmartScreen 里选「仍要运行」,macOS 在访达里右键打开。介意签名的可以自己从源码构建,三条命令。

TermPilot 会上传我的数据吗?

没有遥测、没有统计、没有 crash 上报。唯一的外联是在设置页手动点「检查更新」时读一次 GitHub 发布页,可以在源码 update-check.ts 里核实。

下载 TermPilot,把终端交给助手接着用

MIT 协议 · Copyright © 2026 xy200303