概述
WinkTerm 是一款开源 AI 终端,定位为“与用户共享终端会话的 AI”。据项目说明,它不是把聊天机器人贴进终端,也不是只给建议的助手,而是一个与用户在同一 PTY(伪终端)中协同的操作者——AI 会直接把命令写入终端输入行,用户按 Enter 才会执行,也可自由编辑或取消。项目地址为 https://github.com/Cznorth/winkterm,采用 MIT 许可证。
主要能力
- 共享 PTY 会话:AI 与用户在同一终端进程中操作,无需复制粘贴。
- 终端内聊天:在 shell 提示符处输入
#加问题即可提问,无需切换窗口。 - 侧边栏 AI 面板:提供完整对话界面,支持多会话标签、AI 生成标题、chat/craft 模式切换。
- 持久化聊天历史:对话保存至
~/.winkterm/chat_history.json,页面加载时恢复,可跨 WebSocket 重连与后端重启。 - 流式恢复与队列:响应中途刷新或重连不会丢失令牌;可在 AI 回复时排队后续消息,并可中断或丢弃队列;每次回答后提供一键追问建议。
- 外部 Agent API:经认证的 HTTP 接口,外部智能体(如 Claude Code、Cursor)可通过可安装 skill 驱动终端、SSH 与文件传输。
- SSH 远程连接:内置文件传输;编辑连接时若不重输密码则保留已保存凭据。
- 多模型支持:自带 LLM(OpenAI、Anthropic、Ollama 及任何兼容端点),或用 Codex OAuth 直接使用 ChatGPT / Codex 订阅。
- Docker 与桌面端:可通过
docker compose up部署,或打包为 Windows/macOS 独立桌面应用。 - 国际化:内置英文 / 中文界面,首次启动可选语言。
Agent API 要点
项目说明其 HTTP Agent API 为 AI 智能体远程驱动终端而设计:退出码作为一等字段直接返回(无需 grep 输出判断失败);提供 30 多个具名按键(如 ctrl+c / up / tab / esc / f1),JSON 中无需原始控制字符;复杂命令可经 command_b64 以 base64 传入;每次执行后报告 $PWD 以持续跟踪工作目录;终端默认 30 分钟空闲 TTL 自动清理;wait 的 reason 字段区分 idle / timeout / no_output。内部 craft 智能体与外部 HTTP API 共用同一终端会话池和工具面(list / create / close / snapshot / input / exec / ssh_run)。
使用方式
- Docker:
docker compose up后打开 http://localhost:3000 ;compose 文件将winkterm-data卷挂载到/root/.winkterm,配置、聊天历史与 SSH 凭据可跨容器重建保留。 - 桌面端:从 Releases 页面下载对应平台安装包(Windows 为 .exe 安装程序,macOS 为 .app,支持 Intel 与 Apple Silicon)。
- 配置:WinkTerm 使用 OpenAI 兼容协议,设置
OPENAI_BASE_URL即可接入 Ollama、vLLM、Groq、OpenRouter 等;Codex OAuth 无需环境变量,在设置中启用并完成浏览器登录即可,状态查询GET /api/codex/status,发起登录POST /api/codex/oauth/start。
适用场景
适合需要在真实终端中与 AI 协作完成运维操作的场景,例如 SSH 远程服务器管理、Docker 操作、故障排查,以及由 AI 智能体远程驱动终端执行任务的自动化流程。项目还给出案例:用户仅说“107.173 服务器负载很高”,AI 智能体通过 Agent API 在 30 分钟内完成发现、调查、攻击链还原、加固与滥用上报。
限制与说明
具体收费、价格与商业授权情况暂未提供。项目路线图提及多项规划(如 Vim/Neovim 集成、终端录制回放、多智能体编排、插件系统、原生 tmux 集成、Kubernetes 上下文感知),这些属于未来计划,并非现有功能。Web 访问由访问密钥保护,本地桌面客户端无需认证。