通过浏览器把 DSH 工作区分享到局域网:手机、平板、其它电脑可浏览、下载、上传文件,无需 DSH 登录。带令牌门卫、路径边界、只读模式与速率限制,零依赖(node:http)。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:WODE25500/dsh-lan-share
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。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
DeepSeek Harness 的局域网文件共享插件 —— 把工作区通过 HTTP 共享到同一局域网:手机 / 平板 / 其他电脑用浏览器直接浏览、下载、上传文件,不需要登录 DSH。零依赖(node:http)。
和现有方案的区别:
dsh-lan-gate/dsh-plugin-remote-access:代理整个 DSH 网页(要登录/批准设备);dsh-ssh:远程服务器上的执行与 SFTP;dsh-webfile:S3/FTP 等远程存储;- 本插件:本机工作区文件的纯局域网 HTTP 共享——临时传个文件给手机、让同事浏览器拉取产物,开箱即用。
注册工具
| 工具 | 功能 |
|---|---|
lan_share_start |
启动共享服务器(可指定端口/token/只读模式/子目录),返回访问地址 |
lan_share_status |
查看共享状态(运行中/根目录/只读/URL/token/文件统计) |
lan_share_stop |
停止共享 |
快速开始
lan_share_start → {
"ok": true,
"running": true,
"port": 3980,
"root": "F:/work",
"readOnly": false,
"urls": ["http://192.168.1.5:3980/?token=9f2c...", "..."],
"token": "9f2c..."
}
手机/其他电脑浏览器打开 http://192.168.1.5:3980/?token=9f2c... 即可:
- 📂 浏览目录树(面包屑导航)
- 📄 点击文件名下载
- ✏️ 读写模式:拖拽/点击上传到当前目录、删除文件
- 🛡️ 只读模式:仅浏览 + 下载
安全模型
- token 门禁:启动时生成随机 token;访问需带
?token=或X-Token头;无 token 访问首页显示输入框; - 路径边界:所有路径解析后必须位于共享根内,
../与绝对路径越界拒绝(HTTP 400); - 只读模式:
readOnly: true时上传/删除/移动全部拒绝; - 限流:每 IP 每分钟默认 120 请求,超限 429;
- 敏感文件隐藏:默认隐藏
.env、凭据类(credentials.yaml、.netrc)、密钥(*.pem/*.key/*.pfx)、node_modules、.git等; - 监听地址可收紧:settings 里
host: 127.0.0.1可只让本机代理接入。
访问控制(口令 / 到期 / 权限)
除了启动时生成的随机 token(长期 + 最高权限),可额外设置固定口令,每个口令独立控制:
| 字段 | 说明 |
|---|---|
password |
口令,允许弱口令(不做强度校验) |
role |
read(仅浏览/下载)或 write(最高:可上传/删除/移动) |
expiresIn |
到期:8h / 3d / 2mo / long(缺省=长期) |
在 lan_share_start 传入 passwords,或用 settings lan-share.passwords 预设:
lan_share_start → { passwords: [
{ password: "family", role: "read", expiresIn: "3d" },
{ password: "admin", role: "write", expiresIn: "long" },
] }
浏览器访问时输入对应口令即可(?password= 或 X-Password 头)。
免口令全开(明确授权):allowOpenAccess: true(或 lan_share_start 的 open: true)时豁免口令门禁——局域网内任何设备免口令访问。默认关闭,仅在明确授权时开启。
安装
# cordis.yml / dsh.profile 引用
plugins:
- id: tool-lan-share
name: 'dsh-lan-share'
或本地路径:
plugins:
./src/index.ts: {}
settings(可选)
命名空间 lan-share:
lan-share:
port: 3980 # 监听端口
host: 0.0.0.0 # 0.0.0.0=全局域网;127.0.0.1=仅本机
readOnly: false # 默认只读模式
rateLimitPerMin: 120 # 每 IP 限流
hideSensitive: true # 隐藏敏感文件
开发
npm install
npm run check # typecheck + test + build
- Node 要求:
^22.19.0 || >=24.0.0。 - 核心在
src/lan-share-core.ts(纯函数 + HTTP 处理,可单测),插件入口src/index.ts。 - 测试覆盖:路径越界、token 门禁(query/header/错误 token)、敏感文件隐藏、列表/下载/上传/删除/移动、只读模式拒绝、目录排序。
许可
MIT
链接
同类插件
Tencent/WeKnora#dsh-weknora★ 34236
把 WeKnora 知识库接入 dsh 的四个只读工具:列出知识库、混合检索原文片段、按顺序还原单篇文档,以及直接取用 WeKnora 自己带引用的 RAG 或 ReAct agent 回答(含可续聊的 session id)。
superdesigndev/treg★ 5325
给 Agent 的工具目录:按「要做的事」检索约 2,600 个外部接口(SEO 与 SERP、外链、社交、人物与公司信息补全、广告库、抓取),查看参数与单次调用价格后直接调用,凭据由服务端注入。附带技能,MCP 行在未设置 TREG_TOKEN 前保持禁用。
TencentCloudBase/CloudBase-AI-Toolkit#dsh-plugin★ 1137
把腾讯云 CloudBase 后端接入 DeepSeek Harness——在对话里搭好并部署全栈应用,查询结果渲染为表格卡片(分页、排序、导出 CSV),部署后可预览真实域名,并提供 CloudBase MCP 工具集(`mcp__cloudbase__*`),登录走 device-code 流程。
gitroomhq/postiz-agent#dsh-postiz★ 518
通过 MCP 将 DeepSeek Harness 连接到 Postiz:列出已连接的社交媒体渠道、获取各平台发帖规则,并向 X、LinkedIn、Instagram、Facebook、Threads、TikTok、YouTube、Reddit、Bluesky、Mastodon、Discord、Slack、Telegram 等平台排期、存草稿或发布帖子;附带 postiz 工作流技能。
EthanYoQ/Invoice-Downloader#dsh-invoice-downloader★ 508
面向 DeepSeek Harness 的本地 IMAP 发票下载、OCR 识别、归档与 Excel 报销汇总。
anysearch-team/anysearch-dsh★ 490
基于 AnySearch 的实时网页与垂直搜索插件,为 DeepSeek Harness 提供搜索工具。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。