一键在真终端启动项目服务并实时查看日志
29.6/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/26 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add tengyinan1994/dsh-project-runner该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · dev
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 10 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 25 处,展示前 23 条)
- 发起网络请求client.js:196
const response = await fetch(url, options) - 写入剪贴板client.js:2102
clipboard.writeText(value).then(() => setNotice('已复制到剪贴板'), () => setNotice('')) - 写入剪贴板client.js:2836
clipboard.writeText(value).then(() => setNotice('已复制日志路径'), () => setNotice('')) - 读取本地文件lib/config.js:63
if (existsSync(join(dir, name + ext))) return true - 读取本地文件lib/config.js:196
if (typeof shellEnv === 'string' && isAbsolute(shellEnv) && existsSync(shellEnv)) return shellEnv - 读取本地文件lib/config.js:200
if (typeof comspec === 'string' && comspec !== '' && existsSync(comspec)) return comspec - 读取本地文件lib/config.js:208
if (existsSync(candidate)) return candidate - 读取本地文件lib/store.js:212
const parsed = JSON.parse(await readFile(filePath, 'utf8')) - 读取本地文件lib/store.js:233
const parsed = JSON.parse(await readFile(legacyFile, 'utf8')) - 写入本地文件lib/store.js:276
await mkdir(dirname(filePath), { recursive: true }) - 写入本地文件lib/store.js:277
await writeFile(temporary, snapshot, 'utf8') - 写入本地文件lib/store.js:278
await rename(temporary, filePath) - 写入本地文件lib/supervisor.js:73
await mkdir(dirname(path), { recursive: true }) - 写入本地文件lib/supervisor.js:74
const stream = createWriteStream(path, { flags: 'a' }) - 读取本地文件lib/logs.js:273
days = await readdir(logDir) - 读取本地文件lib/logs.js:281
names = await readdir(join(logDir, day)) - 读取本地文件lib/logs.js:292
const info = await stat(path) - 读取本地文件lib/logs.js:310
const info = await stat(path) - 读取本地文件lib/logs.js:312
return { text: await readFile(path, 'utf8'), truncated: false, bytes: info.size } - 删除本地文件lib/logs.js:347
await rm(file.path, { force: true }) - 读取本地文件lib/logs.js:369
days = await readdir(logDir) - 删除本地文件lib/logs.js:378
if (names.length === 0) await rmdir(path) - 删除本地文件递归lib/logs.js:407
await rm(join(logDir, day), { recursive: true, force: true })
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
DeepSeek Harness 的分组运行面板:一键在真实 PTY 中启动项目服务,实时推流输出,并把每次运行的日志存到磁盘,供智能体读取。
README
由 DeepSeek 最新模型翻译生成dsh-project-runner(项目运行器)
| English
在 DeepSeek Harness 里一键跑起你的项目服务:点一下就在真终端里启动,输出实时显示在面板上,日志同时落盘——所以「它为什么挂了」也能直接回到对话里问。
能做什么
- 分组清单:一个分组 = 一个项目,一条启动项 = 一条命令 + 一个工作目录
- 真终端:真的起一个 shell,PATH / nvm / pyenv 都在,输出的颜色和你在终端里看到的一样
- 一键运行 / 停止:每条启动项都有自己的实时日志,自动跟随最新输出
- 日志落盘:跑过的东西 DSH 重启后还能回看,超过 7 天 / 512MB 自动清理
- 和对话同屏:右栏「运行日志」tab 就在对话旁边——滑选几行日志,一键插入到输入框 (插入的是行号引用,不是把十万字符贴进去)
- AI 能插手:模型可以查状态、读关键日志、启动 / 停止 / 重启启动项,不用你回面板点按钮
- 拖拽排序、拖拽换组、分组配色、浅色 / 深色主题都跟着来
安装
dsh plugin --profile desktop add github:tengyinan1994/dsh-project-runner
装完重启 DSH 即可。需要 dsh ≥ 0.2.1-rc.2。
展开完整文档(README 剩余 1 节)
dsh-project-runner(项目运行器) | English 在 DeepSeek Harness 里一键跑起你的项目服务:点一下就在真终端里启动,输出实时显示在面板上,日志同时落盘——所以「它为什么挂了」也能直接回到对话里问。 能做什么 - 分组清单:一个分组 = 一个项目,一条启动项 = 一条命令 + 一个工作目录 - 真终端:真的起一个 shell,PATH / nvm / pyenv 都在,输出的颜色和你在终端里看到的一样 - 一键运行 / 停止:每条启动项都有自己的实时日志,自动跟随最新输出 - 日志落盘:跑过的东西 DSH 重启后还能回看,超过 7 天 / 512MB 自动清理 - 和对话同屏:右栏「运行日志」tab 就在对话旁边——滑选几行日志,一键插入到输入框 (插入的是行号引用,不是把十万字符贴进去) - AI 能插手:模型可以查状态、读关键日志、启动 / 停止 / 重启启动项,不用你回面板点按钮 - 拖拽排序、拖拽换组、分组配色、浅色 / 深色主题都跟着来 安装 dsh plugin --profile desktop add github:tengyinan1994/dsh-project-runner 装完重启 DSH 即可。需要 dsh ≥ 0.2.1-rc.2。 怎么用 1. 左侧栏 启动器 → + 新建分组:填项目名和默认工作目录 2. 分组里 + 条目:填名称、命令行、工作目录(留空就用分组目录) 3. 点行尾 ▶ 运行;点条目行看它的命令与实时日志 4. 拖动可以调整顺序,把条目拖到别的分组就是换组 两种性质:常驻服务(默认,退了会提醒你)和一次性任务(比如构建,跑完显示「已完成」)。 在条目的 ⋯ 菜单里切换。 配置(可选) 默认值一般就够用。要改 shell、启动参数或日志保留策略,在 profile 的 cordis.patch.yml 里覆盖 launcher 这一行即可——每个字段旁边都有注释说明。 几点说明 - 面板界面是中文的。 - 一条启动项就是一条命令,没有交互输入(不能在面板里往程序敲键盘),也不做调试。 - 删除分组 / 条目不会杀掉正在跑的进程——要停请点停止。 - 子进程默认继承你的完整环境变量(和真终端一样);不想把 *_KEY 之类传进去,把 inheritEnv 设为 scrubbed。 支持平台 macOS、Linux、Windows。shell 自动探测——macOS/Linux 走 $SHELL / zsh / bash / sh,Windows 走 pwsh → powershell → cmd.exe——启动参数跟着 shell 走(bash/zsh 用 -lic,cmd 用 /d /s /c, PowerShell 用 -NoLogo -Command)。Windows 是通过这些默认值支持的,但没有在真机上实测过,遇到问题欢迎提 issue。 License MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
tengyinan1994/dsh-project-runner
一键在真终端启动项目服务并实时查看日志
相关插件 · 开发 / 工程
隐私简历生成器reactive-resume/reactive-resume
Reactive Resume 已迁至 GitHub 上的…
★ 45,125已汉化MCP
71.7
AI 架构文档生成器sopaco/deepwiki-rs
🚀 Litho 已进化为 Terrain —— 给你的 AI 智能体一张会呼吸的代码库地图。
★ 3,157已汉化DSH
70.8
长时任务执行闭环AMAP-ML/LongHorizon-Harness
面向 Computer-Use Agent 的 Loop Engineering
★ 1,764已汉化DSH
70.5
AI 编程纪律方法包GanyuanRan/Aegis
让 AI 编程 agent 变得可信:少返工、更安全、说“完成”前先给证据。
★ 1,384已汉化DSH
69.6
多代理编排运行时Enderfga/claw-orchestrator
面向编程智能体的运行时。把 Claude Code、Codex、Antigravity、Grok…
★ 586已汉化MCP
69.4
记忆进化插件csyangwen/dsh-memory-evolve
dsh-memory-evolve 使用场景指南
★ 461已汉化DSH
67.9