Bundle
dsh-plantuml
DSH web plugin: render PlantUML fenced code blocks in conversation messages as SVG diagrams.
- Source
- qschen86
- stars
- 1 stars
- License
- MIT
- Updated
- Updated 3 days ago
Readme
# dsh-plantuml DeepSeek Harness Web 插件:在会话消息中直接渲染 PlantUML 图表。 ## 功能 - 识别助手消息里的 ```` ```plantuml ```` / ```` ```puml ```` 围栏代码块 - 自动通过 PlantUML 服务(默认公共服务器,可配置)渲染为 SVG - 支持架构图、流程图、时序图、用例图、类图等 PlantUML 支持的图形 - 渲染失败时显示错误信息,不阻塞消息中的其他 Markdown 内容 ## 安装 ```bash dsh plugin --profile web add dsh-plantuml # 或使用 GitHub Release tarball: # dsh plugin --profile web add https://github.com/qschen86/dsh-plantuml/releases/download/v0.1.0/dsh-plantuml-0.1.0.tgz dsh --profile web --dump-config # 验证条目已加入 bundles # 重启 dsh web(host 半生效),刷新页面(client 半生效) ``` ## 卸载 ```bash dsh plugin --profile web remove dsh-plantuml ``` > 注意:本插件使用 `assistant-step` 的 `-5` 优先级。若同时安装了 `dsh-llm-codex-app-server` 的浏览器渲染器(优先级 `-10`),后者会优先接管助手消息;此时如需 PlantUML 渲染,建议将两套渲染合并或二选一。 ## 配置 通过环境变量配置: | 变量 | 默认值 | 说明 | | --- | --- | --- | | `DSH_PLANTUML_SERVER` | `https://www.plantuml.com/plantuml` | PlantUML 服务地址,例如自建 `http://127.0.0.1:8080/plantuml` | | `DSH_PLANTUML_COMMAND` | 空 | 如果设置为本机 `plantuml` 命令(或可执行文件路径),则优先用本机命令渲染,不访问网络 | | `DSH_PLANTUML_TIMEOUT_MS` | `15000` | 远程渲染超时(毫秒) | | `DSH_PLANTUML_MAX_SOURCE` | `1048576` | 单个 PlantUML 源码最大字节数 | > 环境变量需对 **dsh web 进程**可见:若服务由 launchd 监督进程托管(如 > `com.dsh.web-supervisor`),把变量加进其 plist 的 `EnvironmentVariables` > (或 `DSH_START_CMD` 前缀),仅写进 `~/.zshrc` 不会生效。 ## 使用 模型在回复中输出: ````markdown ```plantuml @startuml Alice -> Bob: 你好 @enduml ``` ```` 插件会自动把它替换成渲染后的 SVG 图片。 ## 实现说明 - 宿主端 `lib/index.js` 提供 `POST /plugin/plantuml` 渲染接口;默认使用 PlantUML 官方编码(deflate + 自定义 base64)请求远程服务,也可调用本机 `plantuml` 命令。 - 浏览器端 `lib/client.js` 注册 `conversation.chat.node` 的 `assistant-step` 低优先级渲染器,在保留原有 Markdown / 推理 / 图片 / JSON 展示的同时,解析 PlantUML 围栏并异步加载图片。
Install
dsh plugin --profile web add github:qschen86/dsh-plantuml#1003d8303896f9ab35c4be4092b9175e0f746f4c
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-plantuml from the hub