会话归档到 Obsidian 121212165/dsh-plugin-obsidian-push
DeepSeek 客户端dsh 插件:把归档的会话记录以 Markdown 笔记推送到 Obsidian 仓库,带 YAML frontmatter,按内容哈希去重。
30.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/17 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/121212165/dsh-plugin-obsidian-push.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 15 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/11/1) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 34 处,展示前 22 条)
- 读取本地文件lib/plugin.js:23
if (!existsSync(dataDir)) - 读取本地文件lib/plugin.js:25
for (const name of readdirSync(dataDir)) { - 读取本地文件lib/plugin.js:28
records.push(...parseJsonl(readFileSync(join(dataDir, name), 'utf8')).records); - 写入本地文件lib/plugin.js:48
mkdirSync(targetDir, { recursive: true }); - 读取本地文件lib/plugin.js:57
const existing = existsSync(file) ? readFileSync(file, 'utf8') : null; - 读取本地文件lib/plugin.js:57
const existing = existsSync(file) ? readFileSync(file, 'utf8') : null; - 写入本地文件lib/plugin.js:63
writeFileSync(file, planned.content, 'utf8'); - 读取本地文件lib/plugin.js:72
if (!existsSync(dir)) - 写入本地文件lib/plugin.js:83
mkdirSync(dirname(dest), { recursive: true }); - 写入本地文件lib/plugin.js:85
writeFileSync(tmp, content, 'utf8'); - 写入本地文件lib/plugin.js:86
renameSync(tmp, dest); - 读取本地文件src/plugin.ts:45
if (!existsSync(dataDir)) return records; - 读取本地文件src/plugin.ts:46
for (const name of readdirSync(dataDir)) { - 读取本地文件src/plugin.ts:48
records.push(...parseJsonl(readFileSync(join(dataDir, name), 'utf8')).records); - 写入本地文件src/plugin.ts:75
mkdirSync(targetDir, { recursive: true }); - 读取本地文件src/plugin.ts:83
const existing = existsSync(file) ? readFileSync(file, 'utf8') : null; - 读取本地文件src/plugin.ts:83
const existing = existsSync(file) ? readFileSync(file, 'utf8') : null; - 写入本地文件src/plugin.ts:89
writeFileSync(file, planned.content, 'utf8'); - 读取本地文件src/plugin.ts:99
if (!existsSync(dir)) return new Set(); - 写入本地文件src/plugin.ts:109
mkdirSync(dirname(dest), { recursive: true }); - 写入本地文件src/plugin.ts:111
writeFileSync(tmp, content, 'utf8'); - 写入本地文件src/plugin.ts:112
renameSync(tmp, dest);
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 推送会话记录到仓库
- 生成YAML属性
- 按内容哈希去重
README
由 DeepSeek 最新模型翻译生成dsh-plugin-obsidian-push
🧩 dsh 插件家族(22 件):总目录 dsh-plugin-family | 明星插件:ide-hub 跨 IDE 统一管理 · task-forge 跨窗口无损交接 · quota 实时用量仪表
EN · 把归档的转录(来自 dsh-plugin-transcript)推送进 Obsidian 库,存成带 YAML frontmatter 的 Markdown,文件名 YYYY-MM-DD-<short session id>.md,按内容哈希去重,重跑时跳过没变的部分(/obsidian-push)。/archive 一条命令走完整条链(归档检查 → 推送 → 检索面)。· 21 个 node --test 全绿(含 YAML 引号转义)· 加载路径与已挂载的同系列插件共用;本插件自身未实时挂载。
DeepSeek Harness (dsh) 插件:把归档的会话转录推送成 Obsidian 笔记——YAML frontmatter(title/date/session/tags,Obsidian 属性面板直接可读)、正文按时间排序渲染用户/助手/工具行,按内容哈希幂等去重。数据源是 dsh-plugin-transcript 的 JSONL 边车(同 schema 同默认目录,契约互通)。
展开完整文档(README 剩余 1 节)
dsh-plugin-obsidian-push 🧩 dsh 插件家族(22 件):总目录 dsh-plugin-family | 明星插件:ide-hub 跨 IDE 统一管理 · task-forge 跨窗口无损交接 · quota 实时用量仪表 EN · 把归档的转录(来自 dsh-plugin-transcript)推送进 Obsidian 库,存成带 YAML frontmatter 的 Markdown,文件名 YYYY-MM-DD-<short session id>.md,按内容哈希去重,重跑时跳过没变的部分(/obsidian-push)。/archive 一条命令走完整条链(归档检查 → 推送 → 检索面)。· 21 个 node --test 全绿(含 YAML 引号转义)· 加载路径与已挂载的同系列插件共用;本插件自身未实时挂载。 DeepSeek Harness (dsh) 插件:把归档的会话转录推送成 Obsidian 笔记——YAML frontmatter(title/date/session/tags,Obsidian 属性面板直接可读)、正文按时间排序渲染用户/助手/工具行,按内容哈希幂等去重。数据源是 dsh-plugin-transcript 的 JSONL 边车(同 schema 同默认目录,契约互通)。 同系列:cost-ledger · session-insights · transcript-search · relay-quota。 功能 - /obsidian-push [sessionId|all]:把一个或全部会话渲染为 vaultDir/subfolder/日期-会话短id.md。 - 幂等:内容没变的会话跳过(哈希比对),转录更新过的会话覆盖写入——反复推送安全。 - 只读边车:本插件从不写 transcript 的 JSONL,只往库里写 Markdown。 /archive:整条链一步走完 推送只是链条的中段。单独跑 /obsidian-push 看不出「有没有会话根本没归档」,也看不出「检索面通不通」,所以 /archive 按三步各出一行状态(✓/△/⚠),需要时给下一步动作: 1. transcript 归档检查 — 数 transcript-YYYY-MM.jsonl 里的会话与行数,和 <dataDir>/markdown/<short12>.md 对账;没落 markdown 的就是崩在 dispose 之前的会话,直接列出短 id 让你去 /transcript-export 补。 2. Obsidian 推送 — 原来的推送(内容哈希去重、未变跳过),但把「多少篇新写 / 多少篇已一致」放进步骤行。 3. 检索面 — 报告有多少行可被 dsh-plugin-transcript-search 检索,并如实说明它每次查询都重建索引、磁盘上没有索引文件可「刷新」——这一步不假装做「刷新」,只报可检索面和两个坑(它的短 id 取 8 位,本插件的 markdown 文件名取 12 位)。 最后 判定: 一句话说清链上哪一环卡住。 顺带修了一个真 bug:/obsidian-push <短 id> 以前永远匹配不到(过滤器拿完整 sessionId 做 startsWith),现在完整 id、任意前缀、8 位或 12 位短 id 都认。 - insert: - id: obsidian-push name: dsh-plugin-obsidian-push config: enabled: true vaultDir: "~/obsidian/MyVault" # 必填 subfolder: dsh-sessions tags: [dsh, session] dataDir: ~/.dsh/transcripts # 默认与 transcript 一致 安装 三步,实测于 @deepseek-ai/dsh@0.1.7-alpha.1(需 pnpm 在 PATH 上): ① 装进 profile:dsh plugin 把参数原样转发给 pnpm,git 包会自动跑 prepare 构建 lib/ dsh plugin --profile web add github:121212165/dsh-plugin-obsidian-push ② 把本仓库根目录 cordis.patch.yml 的内容并进 $DSH_HOME/profiles/web/cordis.patch.yml。 该文件默认是 [],所以要么整份替换,要么把 insert 条目并进同一个数组;不要直接追加——追加会形成两个 YAML 文档,启动即报 failed to parse overlay ... end of the stream or a document separator is expected(本机实测踩过)。 ③ 重启 dsh。配置层和 client 半都要重启才生效(客户端按 boot 时算出的内容 rev 下发,硬刷新浏览器没用)。 自检挂载:dsh --profile web --dump-config | grep dsh-plugin-obsidian-push,应看到该条目。 验证状态 - 21 个 node --test 全绿:push.test.ts(计划笔记/文件名/内容哈希去重/frontmatter 转义)、plugin.test.ts(装配层:真临时 sidecar + 真临时 vault 驱动推送、跳过与更新)、archive.test.ts(shortId / sessionMatches / checkArchive / renderSteps / archiveVerdict 纯函数 + 三步链端到端:两缺 → 全齐 → 再跑全跳过、空目录、坏过滤、短 id 回归)。 - frontmatter/文件名/排序/幂等决策为纯函数,5 个 node --test 测试全绿(含 YAML 引号转义)。 - 装配层(plugin.ts)测试已补齐(新增 5 条,共 12 条):test/harness.ts 用脚本化 mock ctx(commands 捕获)驱动真实 apply(),推送路径跑在 mkdtempSync 临时 vault + 临时 transcript 边车上,绝不触碰真实 ~/.dsh 或真实 vault——覆盖 disabled/空 vaultDir 不注册、注册清单、无边车报错、按会话前缀过滤推送落盘、幂等去重(字节级不变)与转录更新后覆盖写入。harness 方法论借鉴 dsh-auto-review(222★,PerryLink)的 mountHarness,实现为 node:test 版、移植自 dsh-plugin-task-forge(本家族首个落地的装配层测试模板)。 - 未在运行中的 dsh 里 live mount 验证本插件自身(同系列已验证同一加载路径)。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
121212165/dsh-plugin-obsidian-push
dsh 插件:把归档的会话记录以 Markdown 笔记推送到 Obsidian 仓库,带 YAML frontmatter,按内容哈希去重。
相关插件 · 其他
模型破甲清洗YuJunZhiXue/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 14,822已汉化DeepSeek 客户端
73
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 718已汉化DSH
71.2
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,261已汉化DSH
70.7
破甲评测WoYun520/dsh-purge
在本机分离宿主拦截与模型拒绝,做受控红队评测
★ 199已汉化DSH
69.7