← 返回列表
⚠ 装前注意
让 AI 客户端通过 MCP 直接操控 SSH 与串口会话
基本兼容但装前注意:未发布到 npm registry,仅可从源码安装 · 最近上游提交 2026/9/4 · 已提供中文文档
AI 原生终端与 SSH 客户端 —— Harness 在 PowerShell 7 上启动 DeepSeek / CodEx / Claude 智能体,支持 TUI 或嵌入式 Web UI,并提供 SFTP、串口/Telnet 以及内置 MCP 服务器。
综合分
34.2
GitHub 分
34.2
用户评分
—
★ Stars
6
周下载量
—
兼容 / 相关生态插件(非 dsh 原生,请按其对应运行时安装)
git clone https://github.com/liangyou09/lyshell-archive.git⚠︎ 实装验证未通过(dependency_conflict · 2026/9/8) ——可能是 CI 环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
数据截至 2026/9/5(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查⚠ 装前注意
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包lyshell(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
未发布到 npm registry,仅可从源码安装
验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/18 05:21:19
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
💻 LyShell
🔌 你的终端,也是 AI 的终端。 LyShell 是一款内置 MCP 服务端的 Windows 终端 — 让 Claude Code 等 AI 客户端直接操控你的 SSH / Telnet / 串口 / 本地 PTY 会话。还集成了 AI Harness 工作区(TUI + 内嵌 Web UI,支持 git worktree 隔离)、通用网页页签、AI Agent 启动栏、插件系统和 Python 脚本引擎。
简体中文 | English
✨ 核心亮点 · 🐋 DeepSeek Harness · 🌐 网页页签 · 🔗 MCP 集成 · 🤖 AI Agent · 🧩 插件与脚本 · 🚀 快速上手 · ❓ 常见问题
✨ 核心亮点
| | |
|---|---|
| 🔗 MCP 服务端 — 将终端暴露给 AI 客户端,会话级授权 + 审计日志 | 🤖 Agent 启动栏 — 一键启动 Claude Code / Aider / Copilot CLI / 任意自定义 CLI |
| 🧩 插件系统 — Python + Node.js 插件,细粒度权限隔离 | 🐍 Python 引擎 — 内置 LyShell API 驱动终端自动化 |
| 🐋 DeepSeek Harness — 变量组 + 模型预设管理工作区,TUI 与内嵌 Web UI 可同框并排 | 🔐 内嵌 Web UI — 应用内 标签页运行 dsh web,回环锁定 + URL 校验 |
| 🌳 worktree 隔离 — 每个 Harness 工作区在专属 git worktree 中启动,多 agent 指向同一仓库互不踩踏 | 🌐 网页页签 — 任意 URL 开成应用内页签,带最近访问历史与自动补全 |
📥 安装
从 Releases 下载最新版本 — 免安装,下载即用。
| 平台 | 格式 | 架构 | 系统要求 |
|------|------|------|----------|
| 🪟 Windows | 便携版 (.exe) | x64 | Windows 10 / 11,64 位 |
🚧 目前仅提供 Windows 版本,macOS / Linux 暂未发布。
🔗 MCP 集成
这是 LyShell 最大的不同。 LyShell 可以作为 MCP 服务端,让 Claude Code 等外部 AI 客户端通过 MCP 协议操控终端 — 列出会话、发送命令、读取输出、传输文件、管理连接,一应俱全。
📖 配置 — 见 MCP 配置指南。大多数情况下你无需手动配置:从 Agent 启动栏 启动 agent,让它自己把 LyShell 配成自己的 MCP 服务端即可。注册配置可输出 JSON / CLI / TOML 三种格式,适配不同客户端。
工具列表
| 工具 | 能力 | 说明 |
|------|------|------|
| list_sessions | read | 列出侧边栏会话 |
| send_input | interactiveWrite | 发送文本,autoNewline 自动补换行 |
| send_and_wait | interactiveWrite | 发送并捕获响应,自动剥离回显和 ANSI |
| execute_command | execute / localExecute | 独立 exec 通道执行(仅 SSH) |
| run_on_sessions | execute / localExecute | 广播命令,最多 50 会话并发 10 |
| read_output | read | 读取 N 行终端输出 |
| upload_file / download_file | fileWrite | SFTP 文件传输 |
| read_file / stat_file / list_files | read | 远程文件检查,支持递归和通配符 |
| create_session | sessionControl | 创建/复用会话,同 target 自动去重 |
| reconnect_session | sessionControl | 重连断开连接 |
| close_session | sessionControl | 断开连接但不删除已保存会话 |
| open_connection_dialog | sessionControl | 打开新建连接对话框,供用户手动填写 |
| read_session_notes | read | 读取会话摘要、说明、标签 |
| write_session_notes | sessionMetadataWrite | 更新摘要、说明、标签 |
| wait_for_prompt | read | 等待 Shell 提示符或正则 |
| tail_until | read | 轮询直到匹配 |
安全机制
- 🔑 会话级授权 — 每个终端拥有独立权限范围
- 🚪 能力门控 — 每端点服务端强制执行
- 🛡️ 破坏性命令确认 — 扫描 rm -rf、dd if= 等模式
- 🔒 共享 PTY 锁定 — MCP 与人工输入不冲突
- 📊 审计面板 — 标题栏入口,日历选择器 + 过滤 + 分页
⚠️ 全屏 TUI(vim、htop、less)不支持 MCP 操作 — ANSI 剥离后交替屏幕为乱码,请用 LyShell 界面原生终端。
🤖 AI Agent
LyShell 是与 Agent 无关的终端 — 不绑定任何特定 AI 工具。启动你正在用的任意 CLI Agent,它就像普通会话一样运行在标准终端里:回滚、分屏、输入法支持一视同仁。
| Agent | 命令 |
|-------|------|
| 🧠 Claude Code | claude |
| 🛠️ OpenAI Codex | codex |
| 🤝 Aider | aider |
| 🐙 Copilot CLI | gh copilot |
一等 Harness Agent — dsh、codex、claude 在 Harness 面板中为一等公民:各自拥有独立左侧标签、专属工作区列表、依赖检测,以及按工作区的模型与环境变量(模型以 --model 传入,环境变量默认 OPENAI_API_KEY / ANTHROPIC_AUTH_TOKEN)。Claude 工作区另有「跳过权限确认」开关(启动时附加 --dangerously-skip-permissions),任意工作区还可开启 worktree 隔离 — 见 DeepSeek Harness。
自定义 Agent:任意 CLI 工具都能注册 — 名称、命令、图标、工作目录、环境变量。Agent 会话为瞬态,关闭标签即消失,不残留。
🐋 DeepSeek Harness
为 DeepSeek Harness 工作区提供的一等公民之家。在一个专属面板中统一管理工作区,再以终端 TUI 或 内嵌 Web UI 两种方式启动 — 全程在 LyShell 内完成,无需另开浏览器窗口。两者更可同框并排运行。
| | |
|---|---|
| 🗂️ 工作区面板 — 创建、编辑、删除 | 🔧 变量组 — 预配置环境变量组,一键切换启用 |
| 🎛️ 模型预设 — 按工作区保存并切换模型 | 🖥️ TUI 启动 — 在原生终端标签页运行 dsh-tui |
| 🌳 worktree 隔离 — 每个工作区一个专属 git worktree | 🏷️ 品牌来源标 — 页签上标明由哪个 harness 启动 |
依赖检测与安装方法
CLI 依赖 — DeepSeek Harness 需 dsh + dsh-tui,codex / claude 各自单个 — 在应用启动时统一检测一次(三个 agent 并行)并缓存:切到 Harness 标签直接读缓存,不重复扫描。缺失时面板会指出缺哪个依赖、给出对应的一行安装命令与源码仓库链接 — 但不会替你安装。重新检测 按钮强制重扫,PATH 从注册表实时读取,新装的 CLI 无需重启 LyShell 即可识别。
环境变量标签:先预配置,再切换
面板分为「工作区」与「环境变量」两个标签。在「环境变量」标签里预配置具名的变量组 — 一组 KEY=VALUE(DEEPSEEK_API_KEY、DEEPSEEK_BASE_URL、DSH_HOME 等)。同一时刻至多启用一组,点击即可切换;再点已启用的一组可停用,落回常驻的「系统环境变量」。
每个工作区可绑定到特定变量组,也可跟随已启用的变量组 — 不选则继承当前启用的一组(都未启用时用系统环境变量)。密钥录入一次,切换环境无需逐工作区改动。
敏感值(_KEY、_TOKEN、_SECRET、_PASSWORD 等)在变量组编辑器里默认打码 — 点眼睛按钮才明文展示。codex 工作区启动前,还会把变量组里的 OPENAI_BASE_URL 写入 $CODEX_HOME/config.toml([model_providers.*].base_url)— Rust 版 codex 不读这个环境变量。该写入为行级手术式编辑(注释、排版与其它 provider 逐字保留)、幂等且原子,首次修改前自动备份 .bak。
worktree 目录隔离
让多个 agent 指向同一个仓库而互不踩踏:把工作区切到 worktree 隔离模式,它将在 /.lyshell-worktrees/ 的专属 git worktree 中、于 lyshell/ 分支上启动 — 首次启动创建,此后每次复用,未提交修改跨启动保留。删除工作区不会动它的 worktree。
- 私有(默认) — 自动生成可读 key(如 claude-myapp-20260708-160745,尾段时间戳为创建时刻、精确到秒),每个工作区一份独立检出。
- 共享 — 显式指定共享名后,填了同一共享名的工作区共用同一份检出与同一分支,跨 dsh / codex / claude 也行 — 彼此实时可见对方的改动。
- 表单在保存前预览 worktree 完整路径;非法 key(路径分隔符、ref 非法字符等)当场拒绝。
启动方式:TUI 或 Web UI
每个工作区支持两种打开方式:
- 终端 TUI — dsh-tui 作为标准终端标签页运行,完整回滚、分屏、输入法一视同仁。
- 内嵌 Web UI — 以 dsh web --port 0 启动;LyShell 从 stdout 解析真实端口,把应用渲染进应用内 标签页。无需浏览器,也无需手动折腾端口。
TUI 与 Web UI 同框
把 Web UI 标签拖到分屏边缘即可拆分为独立窗格 — TUI 与内嵌 Web UI 同框并排运行。拖回某个窗格中央即还原为普通标签页。
Web UI 视作终端标签页
- ✕ 关闭 — 只有 ✕ 才会真正销毁标签并终止子进程。
- 切走即隐藏 — 切换到其他标签页会隐藏 Web UI,但保留页面状态与 dsh web 子进程存活;切回即秒开。
安全机制
- 🔒 回环锁定 — 导航与弹窗被固定在工作区回环源。
- ✅ URL 校验 — 回显 URL 在 加载前先校验(回环 + 显式端口、无内嵌凭据)。
🌐 网页页签
左侧机柜的 Web 面板给 LyShell 装上一个轻量内置浏览器,用来看监控大盘和文档再合适不过。输入完整网址(无 scheme 自动补 https://)回车,即以普通页签形式打开在当前活动分屏 — 拖拽拆分、页签语义与 dsh web 内嵌 Web UI 完全一致,大盘可以和喂数据的终端同框并排。
- 打开列表 — 点击跳到承载分屏并激活页签,✕ 关闭。
- 最近访问 — 成功加载过的 URL 会被记住(去重、最近优先、本地持久化、封顶 30 条),在输入框做原生自动补全;点击重开、✕ 删除单条、一键清空。
- 安全 — 仅放行 http/https URL;webview 的导航与弹窗由主进程走专属 partition 分流。
🧩 插件系统 & Python 脚本
插件系统
权限门控的插件宿主,支持 Python(一次性 / 常驻)和 Node.js(常驻)插件。可从本地目录、ZIP 或远程 URL 安装。每个插件独立授权,按细粒度权限(读取 / 写入 / 执行 / 文件 / 会话控制)服务端校验,含路径安全、破坏性命令确认、共享终端锁定等多层防护。
⚠️ 插件目前按启动事件(onStartup)激活;按命令/连接类型事件激活、以及声明式 UI 贡献尚未接通。
📦 开箱即用的示例见 examples/。
Python 脚本引擎
内置 Python 执行引擎,提供 LyShell API 驱动终端自动化:
session = LyShell.get_current_session()
LyShell.execute("ls -la")
LyShell.send("hello\n")
LyShell.wait_for("prompt$")
环境变量:LYSHELL_SESSION_ID · LYSHELL_SESSION_TYPE · LYSHELL_HOST · LYSHELL_PORT
Python 路径自动检测系统 PATH,可在设置中配置自定义解释器。
💡 长驻或定时任务建议使用Node.js 插件(通过插件系统),更加适合。
🚀 快速上手
首次连接
1. 点击会话列表顶部的 + → SSH
2. 填写主机、端口、用户名、密码/私钥
3. 点击 连接,标签变为 🟢 绿色
💡 网络设备需先 shell → enable 才能进入 CLI?在 Shell 进入命令 中逐行写入,LyShell 会自动按序发送。
快速连接
Ctrl+Alt+F 从任何应用呼出浮窗 → 搜索 → 回车即连。
多机监控
点击会话 → Ctrl+Shift+V 垂直分屏 → 点击另一个会话。布局自动保存。
文件传输
- 上传:桌面拖拽到文件面板
- 下载:双击远程文件,或右键 → 下载
- 进度:实时速度 + 预估时间,下载完成自动 MD5 校验
- 历史:记录文件名、大小、路径、MD5,支持重新下载
- 安全:独立 SSH 连接(不阻塞终端),SFTP 或 TCP-over-SSH 隧道;AllowTcpForwarding 禁用不会回退明文
- 下载目录:默认 ~/Downloads/LyShell/,可选"自动创建服务器子目录"归档
快捷命令
快捷命令位于会话面板底部 — 右键 → 编辑分组 → 添加 tail -f /var/log/syslog 等命令。Ctrl+F1–F12 随处可触发,侧栏收起时同样有效。最多 12 条命令 × 5 组。
会话管理
- 📌 置顶 — 悬停卡片 → 点击 📌
- 📋 克隆会话 — 双击标签左半侧
- ⚡ 克隆通道(免重认证) — 双击标签右半侧(仅 SSH)
- 🔍 搜索 — 搜索框输入名称/主机/标签
终端技巧
- 选中文本 → 自动复制 · 右键粘贴 · 鼠标中键 → 搜索栏
- Ctrl+F → 终端内搜索(正则、区分大小写、跨标签)
- 中文乱码 → 编辑会话,UTF-8 / GBK / GB2312 切换
- 终端页签提顶为浏览器式第一行;侧栏可收起,还你全宽终端
- 侧栏 LIVE 行中点击「列 × 行」→ 清屏;点击缓冲行数 → 滚回底部,双击 → 清空回滚
🔌 连接类型 & 终端
| 类型 | 关键参数 | 说明 |
|------|---------|------|
| 🖥️ SSH | 密码或私钥;端口 22 | 登录后命令、心跳;双击标签克隆 |
| 📟 Telnet | 主机 + 端口 23 | 完整 IAC 协商 |
| 🔌 串口 | COM 口,波特率 115200(9600–921600),8N1 | 自动检测端口 |
| 💻 本地 PTY | cmd.exe / PowerShell | 可配工作目录 + 环境变量 |
终端:GPU 加速渲染,完整 ANSI + 256 色。回滚最多 100,000 行。分屏(水平/垂直)、拖拽拆分。浏览器式页签栏置于第一行,侧栏可收起。全局快捷命令 Ctrl+F1–F12。标签状态:🟢 已连接 · 🔴 错误 · ⚪ 未连接 · 🔵 新输出 — 从 Harness 工作区启动的页签还带品牌标(🐋 dsh · 🛠️ codex · 🧠 claude)。
🎨 主题
5 种预设 + 自定义。即时切换,无需重启。
| 主题 | 风格 | 明/暗 |
|------|------|-------|
| Graphite | 深石墨 + 钨丝琥珀(默认) | 暗 |
| Slate | 偏蓝石板,强调色琥珀 | 暗 |
| Carbon | 中性炭灰,无蓝调 | 暗 |
| Ember | 暖色胡桃木褐 + 暖琥珀 | 暗 |
| Paper | 自然浅纸 · 石墨墨 | 亮 |
自定义:选取背景色和强调色,LyShell 自动生成一整套和谐配色。
⌨️ 快捷键
| 快捷键 | 功能 |
|--------|------|
| Ctrl + Alt + F | 显示/隐藏浮窗 |
| Ctrl + F | 终端搜索 |
| Ctrl + F1 ~ F12 | 快捷命令 1–12 |
| Ctrl + Shift + H | 水平分屏 |
| Ctrl + Shift + V | 垂直分屏 |
| 右键 | 粘贴 |
| 鼠标中键 | 搜索栏 |
⚙️ 配置文件
JSON 文件存储于 %APPDATA%\lyshell\:
sessions.json · preferences.json · quickCommands.json · agents.json · download-history.json · download-config.json · mcp-server.json
支持 AES-256-CBC 加密导出/导入会话与快捷命令。
❓ 常见问题
SSH 连接后中文乱码?
编辑会话,编码从 UTF-8 切换为 GBK 或 GB2312。
串口连接后无输出?
确认端口号和波特率正确 → 检查设备管理器未被占用 → 部分设备需回车激活。
文件管理器不显示?
仅 SSH 会话可用。确保当前活动标签是 SSH 连接。
如何重置所有配置?
删除 %APPDATA%\lyshell\ 下所有 JSON 文件,重启即可。
Ctrl+Alt+F 不生效?
可能被其他应用占用,可在设置中修改。
下载的文件在哪?
默认 ~/Downloads/LyShell/,可在设置中修改。
📄 许可证
LyShell 基于 MIT 许可证 开源。你可以自由使用、修改与再分发,但需保留原始版权与许可声明。
© 2026 liangyou
GitHub ·
Issues ·
Releases ·
更新日志 ·
参与贡献同作者(liangyou09)的其他插件
扫码进群