dsh-code-runner:在 DSH 里边聊边跑 Python、R 与 Node.js

前言

在 DeepSeek Harness(DSH)里和模型讨论脚本时,常见做法是切到终端或 IDE 执行,再把输出贴回对话。来回切换会打断上下文,统计图还要单独保存、再上传。下面介绍社区插件 dsh-code-runner(维护者 Sun-0306,GitHub:Sun-0306/dsh-code-runner):在对话框旁打开 RStudio 风格的代码工作台,直接运行本机解释器,流式看 stdout/stderr,并自动捕获 matplotlib、R、MATLAB 等图形,不必离开当前会话。

这是什么

dsh-code-runner(代码运行器,当前版本 0.5.0,MIT 许可证)是 DSH 的客户端类插件:Host 侧提供本机执行与文件 API,Client 侧在 Web 界面里提供编辑器、控制台、图表与文件浏览。SkillHub 目录页:sun-0306/dsh-code-runner。

一句话定位:在 DSH 对话框右侧或中央全屏运行 Python、R、Node.js、MATLAB 等脚本,支持打开/编辑/保存工作目录里的程序文件,并可导出含源码、输出、统计图与 AI 解读的运行报告。

两个入口怎么选

入口 形态 适合
对话右上角「代码运行器」图标,或右侧栏「+」→「代码运行器」 右侧栏 tab,与对话并排 边聊边跑、看图表
左侧栏「代码运行器」(order 30) 中央全屏页面 大屏、三栏式布局

右侧栏为紧凑模式:工具栏、带行号编辑器、底部 控制台 / 图表 / 文件 标签与状态栏。全屏模式把文件与图表放到左侧栏。升级到 v2 后首次加载会在浏览器里自动打开一次右侧工作台(localStorage 键 dsh-code-runner.autopened.v2,仅一次);之后右侧栏按会话记住开/关与标签布局。

核心功能

运行与语言探测

  • 自动探测本机解释器(资料中列举的验证环境包括 Python 3.13.9、R 4.6.1、MATLAB R2026a、Node v24、Bash、Zsh、Ruby、Perl;Julia/Deno/Bun/PHP 未安装时自动隐藏,可「重新扫描」)。
  • 运行编辑器草稿或运行已打开的文件:打开文件后 Run 会先保存,再以 mode:"file" 在磁盘路径执行(__file__ 与相对路径行为与命令行一致)。
  • 流式 stdout/stderr、退出码/信号/超时/耗时、停止按钮;快捷键 ⌘/Ctrl+Enter 运行、⌘/Ctrl+S 保存;工作目录可持久化并用系统目录选择器修改;每种语言保留独立草稿。

v5:语言功能包按需安装——检测到本机有某语言才启用并安装其图形捕获相关组件;语言下拉旁「语言与功能」可一键启用/停用;可选 C/C++/Swift(检测到工具链后可一键安装,C/C++ 先编译再运行);Python 的 matplotlib 依赖会自动探测并给出安装提示。

运行选中代码(v3)

选中编辑器若干行,点工具栏 运行选中(或 ⌘/Ctrl+Shift+Enter),只执行片段(buffer 模式,不改变编辑器全文,控制台会标记「选中运行」)。适合 R/Python 里先定义变量、再逐步选中运行。

图表(类似 RStudio Plots)

  • Python:import matplotlib.pyplot as plt 并画图即可,无需 savefig;运行结束后 PNG 出现在「图表」标签页。
  • R:plot(...)、ggplot2 等由 png 设备自动捕获(脚本无需写 png()/dev.off())。
  • MATLAB(v3):自动发现 matlab 可执行文件;R2026a 已在资料中验证,-batch 执行包装脚本,每个 figure 用 exportgraphics 导出到图表页。首次启动较慢(约 15–25 秒),需本机许可证。
  • 工作目录中新产生的 png/jpg/gif/webp/svg/bmp/avif 也会出现在图表页;运行中约每 1.2 秒自动刷新,新图可自动切到图表页。图表可保存到当前代码文件所在文件夹(重名加后缀,不覆盖)。

文件

「文件」标签页浏览工作目录:打开文本文件进编辑器(按扩展名选语言),⌘/Ctrl+S 保存并带外部修改冲突检测;草稿可「另存为」后切换为文件模式。

AI 注释 / 解释代码(v3)

工具栏 理解 / 注释代码 将当前代码(有选中时用选中部分)发给 DSH 默认模型(来自 设置 → 模型,资料默认示例为 deepseek-account/deepseek-flash),返回中文解释与带注释代码;可插入编辑器或复制解释。未配置模型时会提示先在 DSH 设置里配置;代码超过 20,000 字符会截断并标注。

导出运行报告(v3 / v4)

工具栏 导出报告 可选:

  • 格式:Word(.docx,默认)、Markdown、HTML(图表内嵌)、或全部;Word 由 Host 用纯 Node 生成,无需 Office/pandoc。
  • 内容:源代码 / 输出结果 / 统计图 / AI 解读(逐项勾选)。
  • 文件名:<程序名>实验报告,例如 chart.R → chart实验报告.docx。

报告写入代码文件所在目录(草稿则在当前工作目录)下的 dsh-code-runner-reports/<时间戳>-<语言>/,结构为 源代码:/ 输出结果:/ 统计图:(勾选 AI 解读时追加「AI 解读:」),并含 run.json 与 plots/ 副本;同一秒重名文件夹自动 -2,不覆盖旧报告。

安装与启用

README 给出的本地 bundle 安装方式为(将 target 换成本机上的插件目录绝对路径):

plugin_manager action=install_bundle target=<绝对路径>/dsh-code-runner

修改链接目录下的源码后,Host 与 Client 可由 HMR 热加载,一般无需重启 DSH。卸载:设置 → 插件 → Code Runner 移除,或 plugin_manager action=remove_bundle。运行产生的临时目录会随卸载或运行淘汰清理;工作目录里的用户文件不会被插件删除。

资料未给出 SkillHub 一键命令时,不要自行拼接 dsh plugin add github:...;以仓库 README 与目录页说明为准。

典型用法

  1. 在 DSH 中打开右侧「代码运行器」,选择工作目录与语言(例如 Python)。
  2. 在编辑器写脚本并画图,例如使用 matplotlib 绘图(不必 savefig),按 ⌘/Ctrl+Enter 运行;在「控制台」看流式输出,在「图表」查看捕获的 PNG。
  3. 需要改磁盘上的项目文件时,在「文件」标签打开 .py / .R 等,编辑后保存再 Run(会以文件模式执行)。
  4. 与模型讨论某段逻辑时,选中几行用 运行选中 做交互式试探;需要文档时用 导出报告 勾选源码、输出与统计图。
  5. 若已配置 DSH 模型,可用 理解 / 注释代码 生成带注释版本并插入编辑器。

Host 侧还提供同源 HTTP API(如 POST /dsh-code-runner/api/run、GET /dsh-code-runner/api/output 等),供界面轮询输出与停止进程;所有调用(除 loopback 的 token bootstrap)需携带 x-dsh-code-runner-token。详见仓库 README 中的 API 表。

适用场景与注意

适合:在 DSH 里做数据分析、脚本验证、教学演示——对话与代码、图表同屏,减少复制粘贴;需要把一次运行整理成 Word/Markdown/HTML 报告时,可用内置导出。

务必注意:

  • 插件在本机以 当前 DSH 进程权限 执行代码并读写你选定工作目录下的文件,等同于在本机终端运行脚本。安装前应阅读 源码 与 MIT 许可证,仅在可信环境使用。
  • Host 使用 CSRF token、同源校验,没有 CORS;/api/token 仅应答 loopback。README 明确建议:勿将 DSH Web 服务暴露到不可信网络。
  • MATLAB 需本机安装与许可证;未安装的语言不会在列表中显示。

右侧面板若显示「面板出错了」,可先刷新页面;也可按 README「故障排查」一节用 curl 读取 /dsh-code-runner/api/diag 查看浏览器诊断事件(需先取 token)。

结尾

dsh-code-runner 把「写脚本、看输出、看图、改文件、导出报告」收进 DSH 界面,与对话并排或全屏使用,面向需要在 Harness 里直接动用本机工具链的开发者。更多信息见 SkillHub 目录页 sun-0306/dsh-code-runner 与 GitHub 仓库 Sun-0306/dsh-code-runner。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜