DSH 实时预览标签页:把任意 dev server 嵌入 iframe,透明代理 SPA 路由。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:RaulLazaro/dsh-preview-plugin
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
该插件的 README 只有英文版本。
Live preview tab for DeepSeek Harness — embed any dev server in an iframe with transparent SPA proxying.
Features
- Path-based SPA proxy:
/preview/:port/*rewrites all routes so the embedded app works as if served from the DSH host <base>+ fetch/XHR interception: Injects a<base href>tag and interceptsfetch()andXMLHttpRequest.open()for full SPA + backend support- Global or per-session ports: Set a port globally or per conversation session via the API
- Auto-sync: The preview tab polls the host for agent-set port changes
- Sandboxed iframe:
allow-scripts allow-same-origin allow-forms allow-popupsfor secure embedding
Installation
1. Add as a dependency
In your DSH web profile's package.json:
{
"dependencies": {
"dsh-preview-plugin": "file:~/workspace/dsh-preview-plugin"
}
}
2. Register the plugin
In your profile's cordis.patch.yml:
- insert:
- id: dsh-preview
name: 'dsh-preview-plugin'
3. Restart DSH
dsh web
Usage
- Start your dev server on the VPS (e.g.
npm run dev -- --host 0.0.0.0 --port 3000) - Open the Preview tab in DSH Web GUI
- Enter the port number (e.g.
3000) and click Go - The iframe will load the app through the transparent proxy
API
The plugin exposes a port management API:
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/preview-port |
Get the current global port |
GET |
/api/preview-port?sessionId=<id> |
Get port for a session (falls back to global) |
POST |
/api/preview-port |
Set global port ({ "port": 3000 }) |
POST |
/api/preview-port?sessionId=<id> |
Set port for a session |
How It Works
- The host registers two routes on the DSH web server:
/api/preview-port— port management/preview/:port/*— transparent proxy
- When a request hits
/preview/:port/path, it fetcheshttp://127.0.0.1:port/path - For HTML responses, it injects a
<base href="/preview/:port/">and a script that rewritesfetch()andXMLHttpRequest.open()URLs - For non-HTML responses (JS, CSS, images, etc.), it streams the response directly
Security Notes
- The proxy only targets
127.0.0.1— no external SSRF possible - The iframe is sandboxed with
allow-scripts allow-same-origin allow-forms allow-popups - Port validation enforces 1–5 digit numbers only
- CORS headers are set for local development convenience
License
MIT
链接
同类插件
zhu1090093659/dsh-web#packages/dsh-task-board★ 6815
侧边栏多列任务看板:卡片交给真实 DSH 智能体会话执行,支持 cron 定时(Host 侧到点执行,关浏览器也生效)。
zhu1090093659/dsh-web#packages/dsh-web-all★ 6815
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。
omdsh-dev/DSH-better-sidebar★ 3318
侧边栏完整工作台:内置文件渲染编辑、终端、Git 与子代理,支持三方插件注册新 Tab。
ccch1mneyyy/dsh-TUI★ 2823
Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。
MeteorNOX/DeepSeek-Balance-Whale-Widget★ 1695
右下角常驻的小鲸鱼余额挂件:显示余额、今日已用、每轮对话消耗与随机台词,带音效与设置菜单。
Devin-AXIS/deepseek-design#deepseek-idesign★ 720
可视化设计工作室,支持网站、App 原型、海报、信息卡、报告和杂志的模板创建、元素编辑、选区级 AI 草稿衔接与导出。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。