🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

会话归档到 Obsidian 121212165/dsh-plugin-obsidian-push

DeepSeek 客户端
12121216515 天前有提交已提供中文文档扫描:含敏感能力兼容 / 相关生态

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 安装
装得上吗
该类项目属生态应用(桌面端 / Web 外壳),不以 dsh plugin add 方式安装,请按仓库说明部署
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 15 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/11/1) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
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 验证本插件自身(同系列已验证同一加载路径)。
预览分享卡片长什么样 ↓121212165/dsh-plugin-obsidian-push
分享 · DeepSeek Harness Hub
121212165/dsh-plugin-obsidian-push

dsh 插件:把归档的会话记录以 Markdown 笔记推送到 Obsidian 仓库,带 YAML frontmatter,按内容哈希去重。

回到顶部