惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Stack Overflow Blog
Stack Overflow Blog
量子位
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
美团技术团队
小众软件
小众软件
aimingoo的专栏
aimingoo的专栏
Recent Announcements
Recent Announcements
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Microsoft Security Blog
Microsoft Security Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
酷 壳 – CoolShell
酷 壳 – CoolShell
J
Java Code Geeks
V
V2EX
大猫的无限游戏
大猫的无限游戏
D
DataBreaches.Net
博客园 - Franky
爱范儿
爱范儿
T
Tailwind CSS Blog
A
About on SuperTechFans
Google DeepMind News
Google DeepMind News
博客园_首页
B
Blog RSS Feed
博客园 - 司徒正美
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

程序员

V2EX 看到讨论"跨域"的帖子,那个她好像回来了 codex 今天真的是不稳定呀。 火山方舟 Coding Plan 慎买 刚问了大家 openclaw 和 hermes 在什么机器上面玩,求推荐一个机器 GPT-image-2 生成 AI 图片防伪有感 codex pro 5 小时限制已经严重缩水 逆天 Antigravity 动态 JSON 序列化对强类型语言很难吗? 自建了 GPT Coding Plan,遇到了定价问题,请教大家 大家都是在什么设备上玩 openclaw 以及 hermes 的呀? 软考还有一个月就考试了,你们学习了吗? 大伙用 AI 会考虑在 user scope 的 CLAUDE.md/AGENTS.md 里交代 AI 说中文吗 我发现程序员这个群体很大部分其实挺抠的 最近使用 cc 总会莫名其妙的返工, codex 不会 目前体验最好的远程 vibe 工具 想知道大佬们抓包遇到 ssl pinning 都是咋优雅的 解决的? 工业软件的大佬们是怎么 vibe coding 的 最近 chrome 是不是有 bug 啊,一搜索就卡住 分布式异步系统在 vibe coding 下的困境 PHP Native AOT 编译器,支持将 PHP 代码编译为可执行文件,运算性能提高 150 倍 没想到 2026 年,还要浪费大量时间在跨域问题上 DeepSeek V4 这周会出吗? 中转站正式试营 欢迎试用 不掺不假 小米 mimo 升级 v2.5,并且重置了额度 Jenkins, SCM 轮询完全不工作是啥问题啊 赛博斗蛐蛐, AI 模型的简单对比(白嫖版) 使用中转站要擦亮眼睛!不说别的,倍率计算 充值好乱。 买了火山的 Coding Plan 测试得出计费模式 给我的 AI 生成了简历和状态卡, 大家帮忙看下 Ta 能找到啥样的
做了个 支持 AI 运维的 SSH 终端 TermCat,最近加了 Claude C...
imchen · 2026-04-29 · via 程序员

各位 V 友好,潜水多年,发个帖求点反馈。

因为自己对操纵系统命令不熟悉,很多工具不知道怎么配置,于是想开发一个工具帮我实现系统的命令操作。 于是实现了一个终端管理工具叫 TermCat ,主要是 SSH + AI 运维。最近用 Claude Code 用得多了,顺手写了一个监控插件叫 Claude Code Power ,把 Claude Code 的运行状态和多套环境配置塞进了 TermCat 的右侧边栏。今天把整个工具一起聊聊,看看大家有没有用得上的场景,或者哪里设计得不对的。

大概是个什么东西

简单说就是 SSH 终端 + AI 运维助手 + 一套插件系统。底层 Electron 28 + React 18 + xterm.js ,中间一层 Go 做 WebSocket 转发和认证,AI 推理在 Python 服务里跑。macOS / Windows / Linux 都有包。

终端管理本身永久免费——多 tab 、分屏、SFTP 文件浏览、系统监控、主机分组、跳板机这些都有。AI 部分需要点积分或者用自己的 API Key (下面会细讲)。

下面按四个我自己觉得相对有点意思的点说一下。

一、AI Agent 帮你做运维

这部分不是命令补全。命令补全 Warp 已经做得很好,我没必要重做。

我的方向是:你描述一个目标(比如"排查 Nginx 502"、"清理 /var/log 下超过 30 天的日志"),AI 自己规划步骤、逐步执行命令、读输出、根据结果调整下一步。每一步执行前要你点确认。高风险命令(重启、删除、改配置)会做二次提醒。

举个真实场景:半夜服务器 502 ,告诉它"排查 Nginx 502",差不多 2 分钟后它告诉我是上游 Node 应用挂了,建议重启 myapp 并配 PM2 防止复发。整个过程我点了 6 次"确认"。当然——它也不是每次都对,复杂业务 bug 它经常抓不到,遇到不熟的服务也会瞎猜。但日常那 80% 的"看日志、查进程、查端口、查配置"的重复活,确实能省不少时间。

模式分三种:

  • Ask:上下文感知的问答,知道你连的是什么服务器
  • Agent:自主多步运维,上面这个例子的模式
  • Claude Code:集成 Claude Code SDK ,复杂远程开发调试

模型不绑定。服务端模式是积分计费,本地插件模式可以填自己的 API Key ( DeepSeek / Claude / OpenAI 都行)。Agent 能力包是 ¥69 一次买断,没有月费。

二、Claude Code Power 插件(这次新做的)

我自己用 Claude Code 用得比较多,遇到两个不太顺的点:

  1. 看不到它在干什么。当前 session 处于什么 Drive Mode 、刚才那条 prompt 调了哪些 tool / Skill / MCP / Sub-agent 、加载了哪些规则文件,全都藏在 ~/.claude/projects/<hash>/*.jsonl 里。要看就得再开个终端 tail ,或者手动翻文件。
  2. 多套配置切换比较烦。一会儿用官方 API ,一会儿换第三方代理,一会儿换个 model 比较输出,每次都要 export 一堆环境变量再重启 claude 。

所以做了这个插件。它会自动检测 TermCat 终端里跑的 claude 进程,在右侧边栏注入面板。功能其实不复杂,分两块:

实时面板(看 Claude Code 在干什么)

  • 当前 Drive Mode 显示在最上面,可以一键循环切换 default / acceptEdits / plan / bypassPermissions( claude 在跑就走 /permission-mode slash ,没在跑就改 settings.json )
  • 按时间倒序列出当前 session 的每条 prompt
  • 展开任意一条看详细调用:用了哪些 builtin tool 、Skill 、MCP 、Sub-agent ,加载了哪些规则文件
  • 一键 /rewind 回滚到任意 prompt
  • 多 tab 各跑一个 claude 互不干扰,切 tab 面板内容跟着切

Preset 管理(一键切环境)

  • 维护多套配置:ANTHROPIC_API_KEY / AUTH_TOKEN / BASE_URL / MODEL / MAX_TOKENS / 任意自定义 env
  • 切 preset 自动写 active.env( POSIX )或 active.ps1( Windows ),点 launch 一键起 claude
  • 如果只是改 model ,直接给运行中的 claude 发 /model <name>,不用重启
  • 涉及 token / endpoint 变化会提示先 exit 再用新配置重起

设计上有几条自己比较在意的约束:

  • 零侵入:只读 ~/.claude/ 文件,不装 hook 、不改 settings 、不监听网络端口
  • 填入不回车:除了 launch 按钮(明确"立刻启动"的手势),其他注入只把命令填到输入行,要你按 Enter 才执行
  • 跨平台:Mac / Linux 走 lsof + ps ,Windows 走 PowerShell + CIM 探测进程(因为 wmic 在 Win11 22H2+ 被移除了)

不复杂,但是自己用着比裸用顺一些。也许对同样 Claude Code 多 session 、多模型来回切的同学有点用。

三、性能上做了一些事

终端工具卡顿就没法用。性能这块没什么巧思,就是把该做的事做了:

  • 多 tab 不重新挂载——所有 tab 同时挂载,靠 z-index + opacity 切换,切 tab 没有重建开销
  • Vite 分包 + React.lazy——主包目前 ~413KB ( gzip ~132KB ),首屏只加载核心组件; Settings / Extensions / Payment / HostConfig / 5 个内置插件全懒加载
  • xterm.js 高频输出requestAnimationFrame 合并刷新
  • localStorage 写入 300ms 防抖,避免每次 state 变更都同步落盘
  • 启动 API 并行——Promise.allSettled 同时发,单个失败不阻塞
  • 本地字体——@font-face 引本地 woff2 ,禁用外部 CDN
  • Main 进程禁用同步 I/O——fs.readFileSync 一律走 fs.promises

其实没什么神奇的,就是 Electron 的常规优化都做了一遍。bundle-report 跟着 npm run build 一起出,每次加依赖都看一眼有没有进错 chunk 。

交互细节方面:分屏拖拽、终端拖到分屏自动迁移会话、跨 tab 终端会话保留、中/英/西三语 i18n 、5 种 UI 主题 + 5 种终端配色。

四、插件系统

这个其实是整个项目里我自己最满意的部分,但也最容易讲错——因为说"全插件架构"听起来像 buzzword 。具体一点说:

TermCat 自己用的几个面板( AI 运维、文件浏览器、系统监控、快捷命令库、传输管理)不是 hardcode 进客户端的,是用插件 API 写的,和外部插件走完全相同的接口。这意味着如果某天我想干掉某个面板,删一行注册就行;想加一个,新建目录写一个 index.ts 就行。

机制上有个稍微有意思的设计:插件不直接渲染 React 组件,而是输出声明式的 SectionDescriptor[],宿主按模板(header / select / list / msg-viewer / table / chart / form 等 20+ 种)渲染。也就是说插件作者基本不用懂 React ,照着模板填数据结构就行。代价是模板没覆盖到的 UI 没法做——一个折中。

其他基础设施:

  • 内置插件商店,可以一键装服务端发布的插件
  • 本地 .tgz 包直接拖到设置页装上
  • Main 进程加载 + 权限沙箱,插件 manifest 声明 permissions
  • 跨平台一致,TypeScript 写一次三个平台都跑

目前实现的插件:claude-code-power(本文重点)、local-ops-aiagent(本地 API Key AI )、ai-opsfile-browsermonitoring-sidebarcommand-librarytransfer-manager。如果有同学想自己写插件,文档还在补,但代码已经稳定,可以来 issue 区交流。

关于和其他终端的区别

  • iTerm2 / Windows Terminal / Tabby:纯终端管理,没有 AI 模块,各自有自己的强项。如果你的诉求只是"管理 SSH 连接 + 漂亮",这些已经很够用了。
  • Warp:AI 命令补全做得很流畅,订阅制 $15/月/seat ,目前 Mac/Linux 。如果你喜欢"输入更快"的方向,Warp 是更成熟的选择。
  • TermCat:方向不一样,我做的是"让 AI 替你执行"和"看见/管理 Claude Code"。

适合谁:日常 SSH 比较多 + 用 Claude Code 写代码 + 不想被订阅锁死的同学。

下载

注册送的 50 积分够直接试一下 AI Agent 。。

独立开发,反馈我都看。设计上肯定还有不少坑,欢迎拍砖。加用户群加微信(主页下方二维码)。