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

智能体甲板 MatsuriMW/obsidian-agent-deck

DeepSeek Harness
MatsuriMW15 天前有提交已提供中文文档扫描:含敏感能力

在 Obsidian 里统一追踪本机 AI 会话,并从任务行直接委派

30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/20 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add MatsuriMW/obsidian-agent-deck
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · chat
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 15 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 38 处,展示前 32 条)
  • 写入剪贴板
    main.js:2886
    require("electron").clipboard.writeText(text);
  • 写入剪贴板
    main.js:2891
    navigator.clipboard.writeText(text);
  • 写入剪贴板
    main.js:2934
    navigator.clipboard.writeText(sid);
  • 发起网络请求
    main.js:3147
    const init = await this.request("initialize", { protocolVersion: 1, clientCapabilities: {} }, 3e4);
  • 发起网络请求
    main.js:3148
    const made = await this.request("session/new", { cwd, mcpServers: [] }, 6e4);
  • 发起网络请求
    main.js:3161
    await this.request("session/set_config_option", { sessionId: this.sessionId, configId: "model", value: m.value }, 15e3);
  • 发起网络请求
    main.js:3170
    await this.request("session/set_config_option", { sessionId: this.sessionId, configId: "reasoning_effort", value: e }, 15e3);
  • 发起网络请求
    main.js:3176
    this.request("session/prompt", { sessionId: this.sessionId, prompt: [{ type: "text", text: opts.prompt }] }, 31 * 6e4).then((r) => this.done(r)).catch
  • 写入剪贴板
    main.js:5680
    await navigator.clipboard.writeText(text);
  • 执行外部命令固定命令
    src/delegation.js:132
    try { execFile("/usr/bin/open", [url], () => {}); return true; } catch { return false; }
  • 执行外部命令固定命令
    src/delegation.js:139
    const osa = (script) => new Promise((resolve) => execFile("/usr/bin/osascript", ["-e", script], { timeout: 8000 }, (err, out) => resolve(err ? null :
  • 执行外部命令来自配置/变量
    src/delegation.js:140
    const run = (bin, args) => new Promise((resolve) => execFile(bin, args, { timeout: 8000, maxBuffer: 8 << 20 }, (err, out) => resolve(err ? "" : String
  • 执行外部命令来自配置/变量
    src/delegation.js:177
    if (!ok) { try { spawn(TERN_BIN, ["-e", "/bin/zsh", "-lc", `${command}; exec /bin/zsh -l`], { cwd: dir, detached: true, stdio: "ignore" }).unref(); }
  • 执行外部命令固定命令
    src/delegation.js:178
    if (!background) execFile("/usr/bin/open", ["-b", TERMINAL_BUNDLE.tern], () => {});
  • 执行外部命令固定命令
    src/delegation.js:186
    try { execFile("/usr/bin/osascript", ["-e", script], () => {}); return true; } catch { return false; }
  • 写入剪贴板
    src/delegation.js:315
    try { require("electron").clipboard.writeText(text); return true; } catch { }
  • 写入剪贴板
    src/delegation.js:316
    try { navigator.clipboard.writeText(text); return true; } catch { return false; }
  • 写入剪贴板
    src/delegation.js:354
    try { navigator.clipboard.writeText(sid); } catch { }
  • 发起网络请求
    src/delegation.js:564
    const init = await this.request("initialize", { protocolVersion: 1, clientCapabilities: {} }, 30000);
  • 发起网络请求
    src/delegation.js:565
    const made = await this.request("session/new", { cwd, mcpServers: [] }, 60000);
  • 发起网络请求
    src/delegation.js:577
    if (m) { try { await this.request("session/set_config_option", { sessionId: this.sessionId, configId: "model", value: m.value }, 15000); } catch { }
  • 发起网络请求
    src/delegation.js:581
    if (e) { try { await this.request("session/set_config_option", { sessionId: this.sessionId, configId: "reasoning_effort", value: e }, 15000); } catch
  • 发起网络请求
    src/delegation.js:584
    this.request("session/prompt", { sessionId: this.sessionId, prompt: [{ type: "text", text: opts.prompt }] }, 31 * 60000)
  • 执行外部命令来自配置/变量
    src/llm.js:29
    try { child = spawn(bin, args, { cwd, env, stdio: ["pipe", "pipe", "pipe"] }); }
  • 执行外部命令来自配置/变量
    src/main.js:800
    execFile(bin, ["--version"], { timeout: 10000, env: process.env }, (err, out, errOut) => {
  • 执行外部命令固定命令
    src/main.js:809
    try { execFile("/usr/bin/osascript", ["-e", script], () => {}); } catch (e) { this.notice(String(e.message || e)); }
  • 执行外部命令固定命令
    src/menubar.js:113
    const child = spawn("/usr/bin/swiftc", ["-O", "-swift-version", "5", "-framework", "AppKit", "-framework", "SwiftUI", "-framework", "Carbon", "-o", tm
  • 执行外部命令固定命令
    src/menubar.js:134
    try { execFile("/usr/bin/open", args, () => {}); } catch (e) { console.error("[agent-deck] launch menu bar", e); }
  • 执行外部命令固定命令
    src/menubar.js:144
    try { execFile("/usr/bin/pkill", ["-f", this.binPath], () => {}); } catch { }
  • 执行外部命令固定命令
    src/readers.js:305
    execFile("ps", ["-axo", "pid=,etime=,command="], { maxBuffer: 16 << 20 }, (err, text) => {
  • 执行外部命令固定命令
    src/readers.js:1005
    execFile("/usr/bin/sqlite3", ["-noheader", db, sql], { timeout: 5000, maxBuffer: 4 * 1024 * 1024 }, (err, out) => {
  • 写入剪贴板
    src/settings.js:744
    await navigator.clipboard.writeText(text);
扫描于 2026/11/4(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

Agent Deck:在 Obsidian 里跟踪 Claude Code、Codex、WorkBuddy 和 DeepSeek Harness,从任务行直接派活,智能体摘要常驻 macOS 菜单栏。

README

由 DeepSeek 最新模型翻译生成
Agent Deck(智能体甲板) 一个面板看清本机所有 AI Agent:谁在跑、谁在等你、刚才那步到哪了;需要时从正在写的任务行直接委派。 English | GitHub Releases Agent Deck 是 Obsidian 插件,把本机 Claude Code、Codex、WorkBuddy、DeepSeek Harness 四类 Agent 会话收进同一张「甲板」:主力 Agent 全量追踪,其它 Agent 只看正在跑的;在跑、等你、安静、需要你确认、额度用完、出错停下这些状态用 TODOseq 的任务关键词和颜色标出来,点一行就回到对应客户端。 委派保持命令驱动:不在每个列表项上放按钮;任务行绑定了会话后,行尾的 pill 才变成进度条,完成后把结果写回笔记。macOS 菜单栏还有一块常驻的纯色面板,菜单栏被系统藏起来时可以用自定义全局快捷键唤起。 它从螺旋日程 Nautilus Spiral 里「人机协作 / AI 追踪」那一半拆出来,补上了第二个主力 Agent、DeepSeek Harness 的 ACP 委派、模型 / 强度 / 权限模式选择、分层的模型设置页,以及一块可读性更高的 SwiftUI 菜单栏面板。
展开完整文档(README 剩余 1 节)
Agent Deck(智能体甲板)

一个面板看清本机所有 AI Agent:谁在跑、谁在等你、刚才那步到哪了;需要时从正在写的任务行直接委派。

English | GitHub Releases

Agent Deck 是 Obsidian 插件,把本机 Claude Code、Codex、WorkBuddy、DeepSeek Harness 四类 Agent 会话收进同一张「甲板」:主力 Agent 全量追踪,其它 Agent 只看正在跑的;在跑、等你、安静、需要你确认、额度用完、出错停下这些状态用 TODOseq 的任务关键词和颜色标出来,点一行就回到对应客户端。

委派保持命令驱动:不在每个列表项上放按钮;任务行绑定了会话后,行尾的 pill 才变成进度条,完成后把结果写回笔记。macOS 菜单栏还有一块常驻的纯色面板,菜单栏被系统藏起来时可以用自定义全局快捷键唤起。

它从螺旋日程 Nautilus Spiral 里「人机协作 / AI 追踪」那一半拆出来,补上了第二个主力 Agent、DeepSeek Harness 的 ACP 委派、模型 / 强度 / 权限模式选择、分层的模型设置页,以及一块可读性更高的 SwiftUI 菜单栏面板。

推荐:和螺旋日程一起用

两个插件是配套的两半,建议一起装:

| 插件 | 负责 |
| 螺旋日程 Nautilus Spiral | 日记和日程本身:螺旋排程、计时、容量、回顾,以及 Agent 的追踪展示(内圈细线、状态栏、进度条、🔗 绑定) |
| Agent Deck | AI 写入那一半:自动记日记、状态写回、💬、桌面版子会话 / side chat / subagent 子块、归档 → DONE;以及从任务行委派 |

交接只要一步:在 Agent Deck 的 设置 → 追踪 → 停用螺旋日程里的 AI 写入,然后重新加载螺旋日程。螺旋只停 AI 写入,日程、螺旋和追踪展示照常;写日记交给 Agent Deck。只装 Agent Deck 也能用,只是少了螺旋的排程和展示。

Agent Deck 设置

功能

- 本机 Agent 面板:Claude Code、Codex、WorkBuddy、DeepSeek Harness 的在跑、等你、安静会话,带项目、最近一步、时长和 token。点一行用 deeplink 回到那个会话。
- Claude 桌面版的 side chat:桌面版里从一个会话开出来的会话,侧栏里看着和它同级。Agent Deck 读 claude-code-sessions//local_.json 里的 spawnedFrom 认出母子关系,把子会话缩进一层、标出从哪个会话开出;正开着 side chat 的会话带一个标签,菜单栏里也会写 side chat ×N。桌面版里归档的会话不再列在「现在」和「最近的会话」里。
- 人机共写:自动记日记:读今天 Claude / Codex / WorkBuddy / DeepSeek Harness 的会话,用本机 claude -p 起名、对上日记里已有的任务行,接不上就新写一行 DOING HH:MM 🤖 …;停了一阵改 PAUSED 并写 ⏱ 时段;桌面版 / Codex 里归档记 DONE;前几天还挂着的行补记。设置 → 追踪里打开,或跑命令「整理 Agent 会话进今天的日记」。
- 回写日记:🔗 绑着的会话答完一轮或归档写 💬;状态关键词跟着会话切;桌面版子会话、开着的 side chat、Claude Code 的 subagent 写成缩进子块。
- 和螺旋日程分工:这些 AI 写入原来在螺旋里,现在归 Agent Deck;螺旋只保留追踪展示。螺旋的 AI 追踪还开着时 Agent Deck 不写日记,点「停用螺旋日程里的 AI 写入」并重载螺旋后完全接管。
- 最多两个主力 Agent:主力全量读(全部历史、跨天补记);其它开着的只读今天有动静的会话。
- 命令驱动委派:用 Agent Deck: 委派光标所在块…,或者继续用你原来的 块去向 → 委派给 Claude 快捷键。Agent Deck 不会在每个列表项上放「委派」按钮。需要临时改模型、强度、权限模式、工作目录时,用 Agent Deck: 委派选项…。
- 进度只长在绑定了会话的行上:有 🔗 或正在委派的行,行尾才出现状态 pill。委派中 pill 自己填充、显示已用时间,旁边有 × 取消。答完变成「完成」,结果写成任务下面一行 💬。没有会话的行保持干净。
- 记录留在笔记里:委派会写一行 🔗,状态改成 DELEGATED。删掉 🔗 就是解绑。
- 分层模型设置:默认模型、默认强度滑杆、能力标签、搜索筛选、启用开关、置顶排序、每行菜单、任务模型。改动先放在「Unsaved changes」条里,点保存才落盘。
- 只读本机:只读 ~/.claude、~/.codex、~/.workbuddy、~/.dsh,以及 Claude 桌面版的会话清单 ~/Library/Application Support/Claude/claude-code-sessions,不上传。插件目录里的 usage.json 存按天的汇总,日志被轮转掉历史还在。
- 官方 App 图标:Claude、Codex、WorkBuddy、DeepSeek Harness 四个 Agent 用各自 App 的 icon(面板、会话行、状态 pill、设置页和菜单栏一致);状态、工具和窗口图标仍是 Lucide,正在跑的图标用 CSS 旋转。
- Agent 汇总搬到 macOS 菜单栏:Obsidian 右下角不再显示 Agent 会话汇总。系统最上方只留一个小图标和一串短说明,比如 2 跑 · 1 等;点开是一块纯色面板,任务卡片可以直接跳会话。

macOS 菜单栏

macOS 菜单栏

菜单栏是一个很小的 SwiftUI 助手,第一次运行时编译。它不是面板的复制,而是「现在谁在跑、谁在等我」的快速入口。

- 纯色,不毛玻璃。 面板是一个无边框窗口,所有表面都是不透明颜色:没有 NSPopover、没有 vibrancy、没有磨砂材质,在 macOS 26 上文字对比度不会被玻璃效果吃掉。浅色背景是接近 Obsidian 主题色的浅底,深色模式也有独立的纯色配色。
- 任务关键词来自 TODOseq。 每张卡片右上角标 DOING、WAITING、NEEDOK?、HITLIMIT!、PAUSED、ERRORED、DONE、LATER、TODO,前面配 TODOseq 里同一个 SVG 图标和任务状态色;DOING 的 loader-circle 在面板打开时一直转。顶部统计 DOING / WAITING,有 NEEDOK? 会话时会出现橙色提醒条。
- 卡片就是卡片。 白底、1px 描边、柔和阴影、左侧状态色轨、Agent 图标徽章、项目名和当前步骤;鼠标悬停时卡片会轻微浮起。
- 默认五条。 一眼先看前五个会话,其余向下滑动;底部会写清楚一共多少个。
- 在右侧,也有快捷键。 状态项常驻菜单栏右侧;如果 macOS 因为菜单栏排满把它藏起来,按 ⌃⌥⌘D(Control + Option + Command + D)就能在任意 App 里打开或聚焦面板。再按一次不会关掉它;用 Esc 或点面板外面关闭。快捷键可以在 设置 → 追踪 → 菜单栏快捷键 里改,不需要辅助功能权限。
- 主力 Agent(最多两个)给更多行:正在跑的、等你的,加上最近六小时内的会话,默认每个主力最多 6 条。
- 其它 Agent 只给正在运行的会话,默认每个最多 3 条。WorkBuddy 例外:它的等待会话也会列出来,因为那是每天要接着处理的事。
- 顶部有一排所有已启用 Agent 的小标签,带在跑 / 等你数量;即使某个 Agent 当前没有可列出的会话,它的标签也在。
- 点一行和面板里的跳转一样:Claude Code / WorkBuddy 直接打开会话;DeepSeek Harness 聚焦客户端并复制会话号;Codex 复制 codex resume <id>。
- 打开面板 走 obsidian://agent-deck;重新扫描 立刻扫一遍;隐藏 从菜单栏里直接关掉。

Agent Deck 的主面板仍然保留 1.0.2 的低饱和配色;只有 macOS 菜单栏用了这套更醒目的任务状态色。

第一次启动需要 swiftc(Xcode Command Line Tools)。插件会编译 ~/.agent-deck/AgentDeckMenuBar.app 并启动它;Obsidian 退出时它也会退出。源码已经打包在插件里,不需要另外下载。菜单栏没出现时,到 追踪 → 重启菜单栏,或者先运行 xcode-select --install。

如果菜单栏已经排满(或者 Ice 把它收进了隐藏区),按 ⌃⌥⌘D 打开或聚焦面板(再按一次不会关闭,用 Esc 或点面板外面关闭)。也可以在命令面板里运行 Agent Deck: 打开 macOS 菜单栏面板。

分层模型设置

人机共写:会话写回日记

你在日记里写任务,是预计;Agent 的会话日志是自己会写的实际记录。打开「自动记日记」以后,Agent Deck 每隔一阵看一眼今天开着的会话,替你把状态和用时补上:

- 在动 → 那一行改成 DOING;日记里没有对应的行,就新写一行 - DOING 00:45 🤖 优化配色。名字和「接在哪一行」问本机的 claude -p;对不上就新写。
- 停了一阵(默认 40 分钟)→ 改成 PAUSED,实际时段写在下面:- ⏱ 00:45–01:20、04:02–04:24 · 共 52m · Claude。
- 归档 → 改成 DONE 19:20 …,前几天记下、还挂着的行也在当天日记里补上。
- 不猜 DONE:机器只在 DOING / PAUSED 之间切;你觉得做完了自己改,或者去桌面版里归档。模型说「看着做完了」只在提醒里提一句。
- 绑定会话的回写:🔗 行绑着的会话答完一轮写 💬;停在权限提示上写 NEEDOK,等你回复写 TOREVIEW,报错 ERRORED,限额 HITLIMIT;归档记 DONE + ⏱。
- 子块:桌面版里从绑定会话开出来的会话按 spawnedFrom 缩进挂成子块;开着的 side chat 一个子块;Claude Code 的 subagent 读 <会话号>/subagents/agent-.jsonl,在跑画 🤖 子代理,跑完换 DONE / FAILED + ⏱ + 💬。
- 分工:这些写入原来在螺旋日程里,现在归 Agent Deck;螺旋只保留追踪展示。螺旋的 AI 追踪还开着时 Agent Deck 不写日记,点「停用螺旋日程里的 AI 写入」并重载螺旋后完全接管。

写入按行做、不进撤销记录;正在用输入法打字的那一下不写,等下一轮;这期间日记被别处改过就放弃这一轮。

委派到哪儿

Claude Code

Agent Deck 用无头方式起一个 Claude Code 会话,把下面这些参数传过去:

- --model(Opus 5、Sonnet 5、Haiku 5.5、Fable,或自定义别名)
- --effort(low、medium、high、xhigh、max)
- --permission-mode(plan、auto、acceptEdits、manual)
- -n 会话名,--add-dir 把库加进可读目录

第一轮在后台跑完以后,可以用 claude://resume?session=<id> 在 Claude 桌面版里接着聊。

如果 Claude Code 没信任过这个库,插件会读 ~/.claude.json,找一个已经信任的目录当工作目录,再用 --add-dir 把库加进去。可以在「委派 → 库没被信任时自动换个目录」关掉。

DeepSeek Harness

通过 dsh acp 走 ACP(Agent Client Protocol):建真正的 Harness 会话,选模型和 reasoning_effort,发 prompt,跟 session/update 流。会话落在 ~/.dsh/sessions,所以面板里也能追踪到。

ACP 没有 Claude 那套 plan/auto 权限模式;插件可以选择自动允许一次工具调用,或者拒绝并在通知里提醒你。

Codex / WorkBuddy

Codex 和 WorkBuddy 只追踪,不委派。Codex 没有会话 URL,面板会复制 codex resume <id>;WorkBuddy 用 workbuddy://chat/<id> 打开。

Deeplink

| Agent | 链接 | 状态 |
| Claude Code | claude://resume?session=<id> | 可用 |
| WorkBuddy | workbuddy://chat/<id> | 可用 |
| DeepSeek Harness | dsh://open | 只能聚焦客户端;当前桌面版没有按会话跳转的 URL。插件会把会话号复制到剪贴板,方便你去侧栏找。 |
| Codex | 无 | 复制 codex resume <id> |

状态 pill

这个 pill 是 CodeMirror 的 widget,只出现在已经绑定了会话或正在委派的行上,不是每个列表项都有。四个状态:

1. 准备中,会话正在创建。
2. 委派中,液体填充 + 已用时间 + ×。
3. 等你 / 等你允许,缓慢呼吸。
4. 完成 / 出错,带打开或重试。

参数面板从命令面板的「委派选项…」打开,也可以点状态 pill 上的 ⌄:

安装

还没上社区插件市场。手动装:

1. 下载或 clone 这个仓库。
2. 把 main.js、manifest.json、styles.css 放进 <库>/.obsidian/plugins/agent-deck/。
3. 在「设置 → 第三方插件」里启用 Agent Deck。

从源码构建:

git clone https://github.com/MatsuriMW/obsidian-agent-deck.git
cd obsidian-agent-deck
npm install
npm run build

npm run build 用 esbuild 生成 main.js。运行时唯一的依赖是 fzstd,用来解 DeepSeek Harness 的 zstd 会话日志。

设置

- Agents:开关每个 Agent、选最多两个主力、立即扫描、导入螺旋日程历史。
- 委派:默认目标、模型、强度、权限模式、工作目录、提示词前后缀、写回规则、信任回退。
- Models:上面那个分层模型页。
- 追踪:日记分界、轮询间隔、安静阈值、历史天数、macOS 菜单栏开关和条数、界面开关、重算、导入,以及一键「停用螺旋日程里的 AI 写入」。
- 关于:版本、许可证、调试信息。

和螺旋日程并存

Agent Deck 认同一套 🔗 行。两个插件都开着时,螺旋日程也会看到 Claude 会话,可能把 DELEGATED 改成 TOREVIEW。

人机共写的 AI 写入(自动记日记、状态写回、💬、子会话 / side chat / subagent 子块、归档 → DONE)现在只在 Agent Deck 里做。只要螺旋的 AI 追踪还开着(showAi / resultBack / agentKw / autoLog),Agent Deck 就不碰日记,避免两套写法互相覆盖。

要完成交接:用 追踪 → 停用螺旋日程里的 AI 写入,然后到 Obsidian 设置里重新加载螺旋日程(或重启 Obsidian)。它只关自动记日记、状态写回、💬 和子块写入;螺旋的 AI 面板、螺旋、计时这些追踪展示照常。改之前会在旁边备份一份螺旋日程的 data.json。Agent Deck 不会自动启停别的插件。🤖 那一项也可以在同一个设置页恢复。

Agent Deck 会自动隐藏螺旋日程右下角的 🤖 Agent 汇总。

如果你在用 块去向(done-to-top) 和 日记整理(journal-tidy),请更新到 done-to-top 1.17.3+ 和 journal-tidy 1.9.1+。这两个版本会让带「明天 / 后天 / 大后天」的 DELEGATED 块留在今天的 DOING 区,不会搬到明天的日记;也不会再折叠第一条分割线之前的 DOING / TODO 块。

隐私

- 会话日志用 Node 的 fs 在本地读。
- 追踪部分不发任何网络请求。
- 委派只是启动本机的 claude / dsh 进程。
- usage.json 只存按天的汇总和会话摘要,不存完整对话。
- 菜单栏助手只读 ~/.agent-deck/menubar.json,不发网络请求。

发布与校验

Release 由 GitHub Actions 从对应 tag 构建;main.js、manifest.json、styles.css 带 build provenance attestation,可以用 GitHub CLI 校验:

gh attestation verify main.js --repo MatsuriMW/obsidian-agent-deck

致谢

- 从螺旋日程 Nautilus Spiral 拆出,日程仍然是它。
- 「进度长在触发按钮里」的交互参考小红书 @ZZ.X 的《AI 任务进度,长在触发按钮里》。
- 分层模型设置页参考 @ZZ.X 的《AI 产品模型设置》。

许可证

MIT,见 LICENSE。
预览分享卡片长什么样 ↓MatsuriMW/obsidian-agent-deck
分享 · DeepSeek Harness Hub
MatsuriMW/obsidian-agent-deck

在 Obsidian 里统一追踪本机 AI 会话,并从任务行直接委派

这是你的仓库?认领条目

回到顶部