浏览器操控器 ManoloRemiddi/augmentor-dsh-extension-plugin
DeepSeek Harnessv2.2.0已归档工作区 — 2026 年 9 月 23 日
47.2/100
综合分
29
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/24 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查未通过:缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add ManoloRemiddi/augmentor-dsh-extension-plugin该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · browser
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 40 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包augmentor @ 2.2.0
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明
源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/30 11:46:50
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件写入剪贴板(不计风险)读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 49 处,展示前 48 条)
- 写入剪贴板extension/chat-render.js:110
async function writeClipboard(text) { - 写入剪贴板extension/chat-render.js:113
await navigator.clipboard.writeText(text) - 写入剪贴板extension/chat-render.js:160
void writeClipboard(text).then((ok) => { - 发起网络请求extension/panel-api.mjs:555
fetch(`${base}/api/augmentor`).then( - 发起网络请求extension/panel-api.mjs:559
fetch(`${base}/`).then( - 发起网络请求extension/panel-api.mjs:563
fetch(`${base}/api/session.list`, { - 发起网络请求lab/site-shots.mjs:55
fetch(`${BASE}/api/${method}`, { - 执行外部命令固定命令lab/site-shots.mjs:76
chromium = spawn('/usr/lib/chromium/chromium', [ - 发起网络请求lab/site-shots.mjs:88
const jfetch = async (p, opts) => (await fetch(`http://127.0.0.1:${PORT}${p}`, opts)).json() - 读取本地文件lab/worktab-test.mjs:37
src = readFileSync(path.join(path.dirname(fileURLToPath(import.meta.url)), '..', 'extension', 'sw.js'), 'utf8') - 读取本地文件lab/worktab-test.mjs:129
vm.runInContext(readFileSync(path.join(here, '..', 'extension', file), 'utf8'), sandbox) - 读取本地文件pipe.mjs:82
const m = JSON.parse(readFileSync(path.join(AUGMENTOR_DIR, 'extension', 'manifest.json'), 'utf8')) - 读取密钥环境变量pipe.mjs:103
if (process.env.DSH_AUGMENTOR_WS_TOKEN) return { token: process.env.DSH_AUGMENTOR_WS_TOKEN, source: 'env' } - 读取本地文件pipe.mjs:108
const existing = readFileSync(file, 'utf8').trim() - 读取本地文件pipe.mjs:146
envText = await readFile(path.join(AUGMENTOR_DIR, '.env'), 'utf8') - 写入本地文件pipe.mjs:170
await mkdir(TRACE_DIR, { recursive: true, mode: 0o700 }) - 写入本地文件pipe.mjs:174
try { await chmod(TRACE_DIR, 0o700) } catch { } - 写入本地文件pipe.mjs:211
writeFileSync(traceFile, line, { flag: 'a', mode: 0o600 }) - 发起网络请求pipe.mjs:320
const res = await dshClient.fetch('/api/augmentor', { signal: AbortSignal.timeout(3000) }) - 发起网络请求pipe.mjs:468
const res = await fetch(url, { - 发起网络请求pipe.mjs:489
dshClient.fetch('/api/augmentor', { signal: AbortSignal.timeout(3000) }) - 发起网络请求pipe.mjs:527
const res = await fetch(url, { signal: AbortSignal.timeout(60000) }) - 读取本地文件pipe.mjs:546
try { return JSON.parse(readFileSync(path.join(AUGMENTOR_DIR, 'package.json'), 'utf8')) } catch { return {} } - 删除本地文件递归pipe.mjs:552
if (rel.some((r) => r === dir || r.startsWith(dir + '/'))) rmSync(path.join(AUGMENTOR_DIR, dir), { recursive: true, force: true }) - 写入本地文件pipe.mjs:564
mkdirSync(path.dirname(target), { recursive: true }) - 写入本地文件pipe.mjs:569
writeFileSync(tmp, data) - 写入本地文件pipe.mjs:570
renameSync(tmp, target) - 发起网络请求pipe.mjs:634
const res = await dshClient.fetch('/api/augmentor', { signal: AbortSignal.timeout(3000) }) - 读取本地文件plugin/dist/index.js:113
const existing2 = readFileSync(file, "utf8").trim(); - 读取本地文件plugin/dist/index.js:148
const p = JSON.parse(readFileSync(new URL("../package.json", here), "utf8")); - 写入本地文件plugin/dist/index.js:196
mkdirSync(chatDirRaw, { recursive: true }); - 读取本地文件plugin/dist/index.js:214
const pkg = JSON.parse(readFileSync(path.join(dir, "package.json"), "utf8")); - 读取本地文件plugin/dist/index.js:223
const pkg = JSON.parse(readFileSync(path.join(dir, "node_modules", "dsh-augmentor", "package.json"), "utf8")); - 读取本地文件plugin/dist/index.js:232
names = readdirSync(path.join(home, "profiles")); - 执行外部命令固定命令plugin/dist/index.js:274
const child = spawn("dsh", ["plugin", "--profile", found.name, "add", `dsh-augmentor@${version}`], { - 删除本地文件递归plugin/dist/index.js:377
rmSync(loc.path, { recursive: true, force: true }); - 读取本地文件plugin/src/index.ts:172
const existing = readFileSync(file, 'utf8').trim() - 读取本地文件plugin/src/index.ts:215
const p = JSON.parse(readFileSync(new URL('../package.json', here), 'utf8')) - 写入本地文件plugin/src/index.ts:401
mkdirSync(chatDirRaw, { recursive: true }) - 读取本地文件plugin/src/index.ts:444
const pkg = JSON.parse(readFileSync(path.join(dir, 'package.json'), 'utf8')) - 读取本地文件plugin/src/index.ts:455
const pkg = JSON.parse(readFileSync(path.join(dir, 'node_modules', 'dsh-augmentor', 'package.json'), 'utf8')) - 读取本地文件plugin/src/index.ts:470
names = readdirSync(path.join(home, 'profiles')) - 执行外部命令固定命令plugin/src/index.ts:517
const child = spawn('dsh', ['plugin', '--profile', found.name, 'add', `dsh-augmentor@${version}`], { - 删除本地文件递归plugin/src/index.ts:629
rmSync(loc.path, { recursive: true, force: true }) - 发起网络请求shared/dsh-auth.mjs:19
const request = (route, options = {}) => fetch(`${origin.origin}${route}`, { - 发起网络请求shared/dsh-auth.mjs:54
async fetch(route, options = {}) { - 发起网络请求shared/dsh-remote.mjs:18
const response = await client.fetch(`/api/${endpoint}`, { - 发起网络请求shared/dsh-remote.mjs:131
const [catalog, response] = await Promise.all([invoke('session/modelCatalog'), client.fetch('/api/augmentor')])
扫描于 2026/11/3(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
已归档的独立 Browser 与历史版本。当前 Desktop + Browser 项目见 ManoloRemiddi/augmentor-agent。
README
由 DeepSeek 最新模型翻译生成已归档工作区 — 2026 年 9 月 23 日
这里是已归档的独立 Browser 仓库。唯一活跃的 Augmentor Desktop + Browser 仓库是 ManoloRemiddi/augmentor-agent,默认分支为 main。
当前源码、issue、pull request 和后续版本都在那边。
这里保留已有的历史、许可证和版本下载。
不要把这个检出重新指向活跃的公开 origin,也不要合并它的历史。
保留本地改动,只把经过隐私审查的选定改动移植到全新的规范分支上。
下面那些较早的开发方向已是历史。
见仓库地图与保留的工作。
Augmentor,由 DSH 驱动
Augmentor 能把任意 DeepSeek Harness(DSH)网页会话变成浏览器操作员:Chrome 侧边栏与你的 DSH 应用聊天,智能体则驱动你真实的浏览器——实时无障碍快照、点击、输入、切换标签页——用户能看着每个动作在真实页面上闪动。聊天就是真实 DSH 会话,存放在专用目录里,点 Save 会把当前聊天挂到某个 DSH 工作区。
展开完整文档(README 剩余 1 节)
已归档工作区 — 2026 年 9 月 23 日 这里是已归档的独立 Browser 仓库。唯一活跃的 Augmentor Desktop + Browser 仓库是 ManoloRemiddi/augmentor-agent,默认分支为 main。 当前源码、issue、pull request 和后续版本都在那边。 这里保留已有的历史、许可证和版本下载。 不要把这个检出重新指向活跃的公开 origin,也不要合并它的历史。 保留本地改动,只把经过隐私审查的选定改动移植到全新的规范分支上。 下面那些较早的开发方向已是历史。 见仓库地图与保留的工作。 Augmentor,由 DSH 驱动 Augmentor 能把任意 DeepSeek Harness(DSH)网页会话变成浏览器操作员:Chrome 侧边栏与你的 DSH 应用聊天,智能体则驱动你真实的浏览器——实时无障碍快照、点击、输入、切换标签页——用户能看着每个动作在真实页面上闪动。聊天就是真实 DSH 会话,存放在专用目录里,点 Save 会把当前聊天挂到某个 DSH 工作区。 ┌─ Chromium (MV3 extension) ─────────────────┐ ┌─ Your machine ─────────────────────────────────────────────┐ │ side panel: chat UI (real DSH sessions) │ │ pipe.mjs — native messaging host (Node, loopback) │ │ sw.js: native port + browser executor + │ │ ├─[POST /api/<namespace>/<method>]──────────────▶ running DSH app │ │ work-tab injection (page veil, overlays) │ │ ├─[WS /api/remote.mux]◀───────── downlink frames │ └──────────────┬─────────────────────────────┘ │ └─[WS <wsPath, from handshake>]──────▶ dsh-augmentor plugin│ │ native messaging (token-gated) │ /api handshake + pipe channel + browser tools + │ └────────────────────────────────▶│ chat lifecycle (save-to-workspace) │ └────────────────────────────────────────────────────────────┘ 没有 sidecar 运行时,也没有第二个 DSH 进程:扩展直接通过 DSH 应用自带的 /api 接口与正在运行的 DSH 应用通信(pipe 是浏览器侧的 loopback 替身客户端,因为扩展的 Origin 会被 DSH 信任围栏拒绝——这是有意为之)。 组件 | path | what it is | | extension/ | MV3 Chrome 扩展:侧边栏聊天、service worker(native port + 浏览器执行器)、页面遮罩、work-tab 浮层、主题 token | | pipe.mjs | native messaging host:通往 DSH 应用 /api 接口的 loopback 桥、下行链路、插件通道 | | plugin/ | dsh-augmentor DSH 插件(npm 包 + git bundle):/api/augmentor 握手、pipe WS 通道、browser_ 工具、聊天生命周期 | | wire.mjs | 共享的 wire 原语(帧编解码器 + pending 表),三个运行时都用它——一份实现,三个使用方 | | install-native-host.sh | 安装 Chromium 原生消息主机清单 + 每台机器的通道 token | | test/ | e2e 测试套件(m3、sw、panel、chrome、m2、tools)+ install-proof.mjs(确定性的全新用户安装验证)+ plugin/tests/boot/ | | PROPOSAL-plugin-architecture.md | 架构记录:里程碑 M1–M4、审计发现 S/D/F、决策 | DSH 兼容性 Augmentor 0.1.32 面向 DSH 0.1.5-rc.1 及其带认证的 Typert API。升级时请把插件、原生主机和扩展一起升级。Augmentor 0.1.31 及更早版本无法配合这个 DSH 版本使用:它们的 SDK 依赖、HTTP 方法名、认证和事件流都早于新 API。 安装本版本后,要更新已有安装: npm install -g @deepseek-ai/dsh@0.1.5-rc.1 ./install-native-host.sh <extension-id> dsh plugin --profile web add <absolute-path-to-this-repo>/plugin 重启 DSH,并在 chrome://extensions 重新加载 Augmentor。走 npm 插件路径的话,用 dsh plugin --profile web add dsh-augmentor@0.1.32 从 npm 安装。安装脚本会协调依赖,在缺失时安装 Augmentor 预设,并在把旧预设的 persona text 设置重命名为 prefix 之前先备份。自定义的 DSH_HOME 必须对 DSH、安装脚本和浏览器/原生主机保持一致。 桥接层通过本地端点交换 DSH 的启动 token,该端点由 Augmentor 现有的 action-channel 密钥保护。它的会话 cookie 始终留在原生主机内。不需要扩展的 cookie 权限,也不需要关闭 DSH 认证。 安装 已在 Linux + Chromium、Node.js 22.19+ 或 24+、DSH 0.1.5-rc.1 上测试通过。 1. 安装/更新 DSH:npm install -g @deepseek-ai/dsh@0.1.5-rc.1。 2. 下载 Augmentor 0.1.32 ZIP,把整个 augmentor-0.1.32 文件夹解压到一个固定位置。里面包含插件、扩展、原生主机和预设。所有文件要放在一起。 源码方式:git clone --branch v0.1.32 https://github.com/ManoloRemiddi/augmentor-dsh-extension-plugin.git。 3. 打开 chrome://extensions,启用 开发者模式,选择 加载已解压的扩展程序,选中解压文件夹里的 extension/,然后复制扩展 ID。 4. 在解压文件夹里,用这个 ID 运行 sh install-native-host.sh EXTENSION_ID "$HOME/.config/chromium"。第二个参数是浏览器的用户数据根目录,不是 Default。 其他 Linux 默认路径:Chrome ~/.config/google-chrome,Edge ~/.config/microsoft-edge,Brave ~/.config/BraveSoftware/Brave-Browser。其他平台尚未验证;这些 shell 命令不是 Windows 安装程序。 5. 在同一个文件夹里,运行 dsh plugin --profile web add "$PWD/plugin"。 也可以安装 dsh plugin --profile web add dsh-augmentor@0.1.32。 选一种方式即可;如果你的应用实际配置档不是 web,就换成实际的配置档。 锁定 npm 版本,可以避免 release-age 过滤选中更旧的版本。 6. 重启现有的 DSH 进程/服务,或者用 dsh web 启动一个新实例。 打开 DSH 打印出来的完整本地 URL,要带上认证 token。 只写 http://127.0.0.1:3080/ 可能会显示「dsh web authentication required」。 这一步只是让浏览器在你自己的电脑上通过 DSH 认证,不需要 DeepSeek 账号,也不需要审批。重启 Chromium,打开侧边栏,用已配置的模型测试一条提示词。/api/augmentor 应该报告 0.1.32 和 pipes: 1。 从 0.1.31 或更早版本升级时,如果旧面板连不上,就按这些手动步骤操作。先备份旧文件夹,更新全部三个组件,再重新运行安装程序。更新已有的已链接插件目录,不要新增重复项。如果自定义了 DSH_HOME,要让 DSH、安装程序和浏览器/原生宿主保持一致。安装程序会保留自定义预设,并在迁移前备份旧设置。 DSH 和已配置的本地模型安装完成后可以离线工作。云端模型需要对应服务商的凭据和网络。访问在线页面同样需要网络。 可选:Model Picker Augmented Model Picker Augmented 1.1.2 支持 DSH 0.1.5-rc.1,并修复了 settings 加载器未定义的错误。它增加了搜索、固定和可见性控制;Augmentor 与它共用模型策展。安装 GitHub 包(这个配套插件没有发布到 npm): dsh plugin --profile web add https://github.com/ManoloRemiddi/dsh-model-picker-augmented/releases/download/v1.1.2/dsh-model-picker-augmented-1.1.2.tgz 重启 DSH 并重新加载页面。如果已有链接的 Git checkout,就把它更新到标签 v1.1.2,不要新增另一个插件条目。 安全姿态 - DSH 的信任围栏正是管道存在的原因——它没有被绕过。 DSH 应用的 /api 会拒绝来自外部浏览器源的请求(按设计,也包括扩展的 chrome-extension:// 源)。pipe.mjs 是一个回环替代客户端:它以用户身份在本地运行,通过 127.0.0.1 与应用通信,而这正是围栏允许的。 - 没有新增远程暴露面。 每一跳都是回环(扩展 ↔ 管道走原生消息,管道 ↔ 应用走 127.0.0.1);这套栈新增的任何东西都无法从其他主机访问。 信任边界是本地操作系统用户:任何已经能读取你主目录的东西,这套栈都拦不住(而且它本来就能直接对应用做同样的事)。 - 动作通道有密钥门禁。 browser_ 命令通过 - 插件用来认证的 WS 通道,凭据是每台机器一个 token ($DSH_HOME/augmentor-ws-token,权限 0600,由安装器或首次启动时创建;若配置了 actionToken,以它为准)。管道在 WS 握手头里带上这个 token,插件用恒定时间比较;本地进程拿不到这个文件,就驱动不了你的浏览器。 - 面板里的「Trust-fence probe」(≣ Sessions → Probe)是个诊断功能,用来展示围栏按设计生效(来自扩展源的请求被拒绝,回环请求被接受)。它只做探测,不做绕过。 Development full e2e battery (six suites) — run from the repo root: cd test && node m3-e2e.mjs && node sw-e2e.mjs && node panel-e2e.mjs \ && node chrome-e2e.mjs && node m2-e2e.mjs && node tools-e2e.mjs plugin boot test: sh plugin/tests/boot/run.sh 这些测试套件是封闭的:每个套件自己创建标记会话(清理时归档),绝不碰用户会话;涉及真实浏览器的套件(m3、chrome、m2)跑在真实的本地 DSH 应用 + 真实 Chrome 配置档上。 deterministic install proof — the documented journey, end to end, on a fresh DSH home + fresh Chromium profile (never touches your real ~/.dsh): node test/install-proof.mjs # clone → boot → plugin → ext → NMH → pipes:1 PROOF_LLM=1 node test/install-proof.mjs # + a real agent drives the headless browser PROOF_SOURCE=npm PROOF_LLM=1 node test/install-proof.mjs # npm plugin path (once published) knobs: PROOF_REPO, CHROME_BIN, PROOF_PORT, PROOF_KEEP=1 — see the script header. License MIT. 共享提示词库(本地开发更新) 打开 Settings 齿轮进入 DSH。选择 Settings → Prompt library,可以创建、编辑、重命名或删除可复用的提示词。在输入框里输入 / 按快捷名筛选。方向键选择,Enter/Tab 插入草稿,Escape 关闭。插入后不会自动发送。 在 DSH web 配置档里安装独立的 dsh-prompt-library 插件。原生管道的 augmentor/prompts 方法只通过现有 DSH API 读取它的 prompt-library 设置命名空间。Augmentor 的两个界面都用这份目录;本地存储和编辑器归 DSH 管。如果之前有本地 JSON 库,插件会导入一次。扩展不再使用单独的 Python 提示词存储。这次开发更新后,重新加载一次未打包的扩展。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
ManoloRemiddi/augmentor-dsh-extension-plugin
已归档工作区 — 2026 年 9 月 23 日
相关插件 · 浏览器
智能体插件框架deepseek-ai/deepseek-harness
DeepSeek Harnessdsh是由 DeepSeek AI 开发的开源 agent harness智能体框架。
★ 270,422已汉化DSH
71.9
多设备 Agent 看板YaoApp/yao
✨ 所有 Agent 和工作区集中管理,覆盖你的每一台设备。任务看板追踪进度,桌面端、移动端、浏览器、API…
★ 8,147已汉化DSH
71.2
可扩展侧边栏工作台omdsh-dev/DSH-better-sidebar
DSH 的双工作台:原生右侧栏 + 自绘底部面板,并把 ctx.betterSidebar 服务开放给所有插件
★ 4,761已汉化DSH
71.1
浏览器自动化桥Tencent/BrowserSkill
你的 Agent。你的浏览器。连接,就能协作。
★ 9,928已汉化DSH
71
AI 小说创作工作台EthanYoQ/AI-Novel-Writer
AI 小说作家 / AI Novel Writer
★ 1,591已汉化DSH
70.7
智能体浏览器引擎platonai/Browser4
DeepSeek Harness 集成
★ 1,175已汉化DSH
70.4