为什么做这个
最近工作里,写代码、改文档、点网页这类事,基本已经可以交给 AI Agent 了。但一碰到服务器操作就卡住:
公司一般都有跳板机 / 堡垒机,Agent 没法直接连后面的机器,自动化就断了。
更头疼的是排查问题:经常得先登录服务器,把线上日志拷到本地,丢给 Agent 分析,再拿着它给的步骤回到线上执行。来回倒腾,特别耗时间。
所以做了 Shellink:把「多级跳板之后的那台机器」收成一个稳定会话,让 AI Agent (和人)能直接在上面执行命令、传文件、看历史。
仓库: https://github.com/jie123108/Shellink
中文文档: https://github.com/jie123108/Shellink/blob/main/README.zh-CN.md
Web UI 实时会话(经跳板到达目标机):

Shellink 是什么
一句话:面向 AI Agent 和人类的会话中间件( session middleware )。
本地跑一个 daemon ,持有 SSH / 本地 PTY 会话;外面用统一的 CLI (也有 TUI 、Web UI 、HTTP/WebSocket )去操作这些会话。
不是又一个 SSH GUI ,重点是:
- 会话状态可查询( CONNECTING / WAITING_INPUT / IDLE …),方便 Agent 决策下一步
- CLI 有稳定的
--json输出,适合脚本和 Agent 调用 - 需要人插手时可以切到 MANUAL 模式(比如输入 OTP )
会话 Dashboard (活跃会话列表):

主要能力
1. 多级跳板 / 复杂登录
很多环境不是一次 ssh user@host 就结束,而是菜单、OTP 、多跳。
说明一下边界:Shellink 本身不负责自动登录。多级跳转、堡垒机菜单、OTP 等交互认证,建议用 command 类型的 profile 挂 expect 脚本处理;简单场景也可以用 sshpass(仅密码)或 ssh 的 ProxyJump / ProxyCommand。Shellink 负责把登录完成后的会话管起来(执行命令、传文件、状态、审计)。
2. 跨跳板文件传输
上传/下载走已有的 PTY ,不额外要求 SFTP 。复杂跳板链路上也能把日志拉下来、把脚本推上去——正好对应「拷日志到本地再问 Agent 」那个痛点。
3. 远程编辑
shellink session edit 做精确替换,适合改配置一类操作。
4. 审计与人机协同
会话输入输出可留历史,方便回看 Agent 干了啥;敏感步骤可以人工接管。
5. 给 Agent 准备的 skill
仓库里有 shellink-cli skill ,Agent 按 CLI 接口操作即可,不必自己实现 SSH/跳板逻辑。
安装二进制( macOS / Linux ):
curl -fsSL https://raw.githubusercontent.com/jie123108/Shellink/main/install.sh -o /tmp/shellink-install.sh
cat /tmp/shellink-install.sh
sh /tmp/shellink-install.sh
或让 AI 助手直接按文档装:
请帮我安装 Shellink 及其 skills ,参考这份文档: https://raw.githubusercontent.com/jie123108/Shellink/main/AGENTS_INSTALL.md
装好后:
shellink cli # TUI ,会按需拉起 daemon
shellink agent-doc # 给 Agent 看的接口说明
CLI/TUI 会话视图:

Web UI 默认在本地:http://127.0.0.1:7070/shellink/ui/
安全提醒(重要)
command类型的 profile 会以 daemon 进程用户身份执行你配置的命令,请只在受信任环境跑,并保护好SHELLINK_TOKEN- 让 Agent 直连生产有真实风险:建议只读/排查类操作,或先指向非生产环境
求试用 & 反馈
欢迎有跳板机 / 堡垒机场景的同学试试。登录脚本本身用 expect 就行;我更想听的是登录之后这块好不好用:
- 会话与操作:状态是否清晰、命令执行是否稳、跨跳板传文件/远程编辑有没有坑
- 和 Agent 一起用:接 Cursor / Claude Code 等时,CLI/
--json/skill 哪里别扭、缺什么 - 人机协同:OTP 等需要人插手时,MANUAL 模式、审计历史是否够用
有问题直接回帖或去 GitHub 提 issue 都行,谢谢。