DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Plugin Dayflow — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
P

dsh-plugin-dayflow

Plugin Dayflow

将你的 Dayflow 工作日志作为 DeepSeek Harness 工具、技能和可选的 Web 面板使用:询问你完成了哪些工作、这一周的时间花在了哪里,并根据 Dayflow Mac 应用在本地记录的时间线起草站会汇报。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:tailong-wu/dsh-plugin-dayflow#ae33bfd6ec3adc6bc1f7e18ce19ec452089fc226
README兼容性版本

兼容性与来源证明

Plugin Dayflow 以 dsh-plugin-dayflow 发布,当前版本为 0.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/10/19

版本

0.1.0stable
2026/10/19

相关插件

正在加载相关插件…

最新版
0.1.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/10/19
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 productivity-workflow 分类下经过校验的插件。

Acp App@deepseek-ai/dsh-acp-appdsh ACP 配置文件包:基于 dsh-base 的仅限自动化的 JSON-RPC stdio 和进程生命周期管理Experimental Schedule Bundle@deepseek-ai/dsh-experimental-schedule-bundle为 Web 组合添加 Schedule、其任务页面和时间上下文的可选捆绑包Ab Ocrdsh-ab-ocr--- description: "外部 ocr 工具:逐页识别扫描的 PDF 或图像,仅在处理完最后一页后按顺序合并页面,并使用模型确定的标题级别保存为一个 Markdown 文档。" kind: "package-reference" ---Scriptor@linfengqaqtat/dsh-scriptorWebnovel Writer:DSH 长篇网文写作工作台

README

dsh-plugin-dayflow

English | 中文

Ask your own work journal. This plugin gives DeepSeek Harness (dsh) native tools and skills over Dayflow, the open-source Mac app that turns screen activity into a private timeline of what you actually worked on.

"What did I work on today?" · "Where did the week go?" · "Write my standup."

The plugin reads Dayflow's local SQLite database directly, so it works while the Dayflow app is closed and nothing leaves the Mac. Edits are optional and go through Dayflow's own permission switch and write socket.

Status: early (0.1.0). The tools, skills, and panel work on macOS with Dayflow installed; expect the surface to keep moving.

What you get

  • 14 tools, named dayflow_*: 8 read tools and 6 editing tools.
  • 4 skills: dayflow, onboarding, standup, and weekly-review.
  • An optional Web panel: the day's timeline in the DSH right Sidebar, opened from a conversation-header button and drawn with the harness's own tokens.
  • A system-prompt section stating the rules that make the data readable: the 4 AM day boundary, Idle and System handling, analysis lag, and the untrusted-content boundary.
  • Zero runtime dependencies beyond dsh itself: SQLite comes from node:sqlite, and the write channel is a Unix socket.

Requirements

RequirementNotes
macOSDayflow is a Mac app; its data lives in ~/Library/Application Support/Dayflow.
Dayflow installed and recordingGrant screen-recording permission and pick an AI provider (local or cloud) in the app.
Node.js ≥ 22.5Node 22.5–23.3 need --experimental-sqlite; Node 24 has it built in.
dsh ≥ 0.2.0-rc.2The plugin peers on the 0.2 line of the harness.
pnpm on PATHOnly for dsh plugin add; a linked development install does not need it.

Install

# Once the package is published to a registry:
dsh plugin --profile web add dsh-plugin-dayflow

Until then, use the checkout install below. The plugin ships a bundle patch, so installing it selects the bundle. With HMR enabled (the default for base-backed profiles) the running app reloads and the tools appear in the next session. Then ask:

What did I get done today?
Where did my time go this week?
Turn yesterday into a standup.

Install from a checkout

git clone https://github.com/tailong-wu/dsh-plugin-dayflow.git
cd dsh-plugin-dayflow
npm install && npm run build

# Link it into the profile and record the bundle selection.
mkdir -p ~/.dsh/profiles/web/node_modules
ln -sfn "$PWD" ~/.dsh/profiles/web/node_modules/dsh-plugin-dayflow

Add "dsh-plugin-dayflow" to dsh.profile.bundles in ~/.dsh/profiles/web/package.json (and, optionally, a "dsh-plugin-dayflow": "link:<path>" dependency entry). Rebuild with npm run build after source changes; HMR reloads the profile.

To remove it, delete the symlink and the bundle entry.

Web panel

The plugin can also draw the day inside the DSH Web GUI. The panel is optional in both senses: nothing appears until you open it, and a profile can switch its entry point off entirely.

The Dayflow panel in the dsh right Sidebar

  • Open it from the Dayflow button in the conversation header.
  • It opens as a tab in the right Sidebar; closing the tab restores your layout.
  • The top shows the day, its tracked total, and a category bar in the user's own colors; each row shows time, duration, title, category, apps, and summary.
  • ‹ and › move one day; ⟳ refreshes. Today and Yesterday are labelled, and any other day shows its short date.
  • The panel reads GET /api/dayflow/day?date=YYYY-MM-DD through the harness's authenticated /api bridge. It never touches the database itself.

The header button exists only while a session is open, because that header is session-scoped. Set panel: false to remove both the button and the tab type.

Tools

Every tool returns structured JSON and renders the same data as compact text. Dates are YYYY-MM-DD and mean a Dayflow day, which starts at 4 AM.

Read tools

ToolArgumentsAnswers
dayflow_timelinedate?What happened on one day, with record IDs.
dayflow_activityrecord_idOne activity in full, including its long write-up.
dayflow_breakdownfrom, toTime per category over a range, with shares.
dayflow_searchquery, limit?Activities whose title or summary matches.
dayflow_dailydate?The Daily standup Dayflow generated.
dayflow_weeklydate?Tracked and focus minutes plus category totals for a week.
dayflow_categories—The user's categories, colors, and flags.
dayflow_status—Capture freshness, analysis backlog, edit switch, edit-bridge state.

Editing tools

These are registered by default and can be switched off with edits: false. Every call is checked against Dayflow's live Settings → AI Tools → Allow edits switch, so a disabled switch produces an actionable error instead of a stale tool list.

ToolArgumentsEffect
dayflow_update_activityrecord_id, title?, category?Retitle or recategorize one activity.
dayflow_delete_activityrecord_idDelete an activity and its observations. Destructive.
dayflow_create_categoryname, color?, description?Add a category.
dayflow_update_categoryname, new_name?, color?, description?Rename, recolor, or describe.
dayflow_delete_categorynameDelete a category. Destructive.
dayflow_set_goaldate?, focus_minutes, …Set a day's focus target and limits.

Mapping from Dayflow's own MCP server

If you used Dayflow's dayflow mcp server, the tools are the same operations under a dayflow_ prefix:

This pluginDayflow MCP
dayflow_timelineget_timeline
dayflow_activityget_activity_detail
dayflow_breakdownget_time_breakdown
dayflow_searchsearch_activities
dayflow_dailyget_daily
dayflow_weeklyget_weekly
dayflow_categorieslist_categories
dayflow_statusget_status
dayflow_update_activityupdate_activity
dayflow_delete_activitydelete_activity
dayflow_create_categorycreate_category
dayflow_update_categoryupdate_category
dayflow_delete_categorydelete_category
dayflow_set_goalset_day_goal

Skills

SkillUse it for
dayflowRouting: which tool answers which question, and the data conventions.
onboardingChecking that Dayflow is installed, recording, and producing data.
standupDrafting a standup or daily update from the timeline.
weekly-reviewReviewing a week and comparing it with the one before.

Skills are registered at runtime from skills/, so installing the plugin is enough; no skills root needs configuring.

How it works

dsh  ──tools──▶  dsh-plugin-dayflow  ──read──▶  chunks.sqlite (read-only, WAL)
                              │
                              └──write──▶  Dayflow.app over agent.sock
  • Reads open chunks.sqlite with readOnly: true and PRAGMA query_only, so a bug in this plugin cannot damage the journal. A short busy timeout rides out the app's WAL checkpoints.
  • Writes are one JSON line over Dayflow's Unix socket (agent.sock), because the app owns the category store and must refresh its UI. The protocol and the edit switch are Dayflow's, not this plugin's.
  • Categories live in the app's preferences (teleportlabs.com.Dayflow, key colorCategories), not in SQLite. They are read with defaults export and parsed from the plist.
  • Day boundaries mirror the app: a day is 4 AM to 4 AM local time, and a week is Monday 4 AM to Monday 4 AM, so late-night work lands on the day it belongs to.
  • Totals leave out the System category; focus_minutes additionally leaves out Idle.

Differences from Dayflow's own CLI and MCP server

  • No MCP transport and no Swift binary: the plugin is plain Node and reads the database itself.
  • Editing tools are always registered (with edits: true) and rejected at call time, instead of disappearing from tools/list when the user disables edits. Users who want them gone can set edits: false.
  • Search escapes % and _, so a query is literal text rather than a SQL pattern.
  • Impossible dates such as 2026-02-30 are rejected instead of being rolled over.
  • Failures carry a stable code: no_data, edits_disabled, app_not_running, not_found, invalid_input, database_error, or bridge_error.

Configuration

Set these under the plugin's row in a profile patch, or through the shipped defaults in cordis.patch.yml:

- id: dayflow
  config:
    databasePath: ''   # default: ~/Library/Application Support/Dayflow/chunks.sqlite
    agentSocket: ''    # default: agent.sock beside the database
    edits: true        # register the six editing tools
    skills: true       # register the four bundled skills
    searchLimit: 50    # maximum matches per dayflow_search call (1-200)

DAYFLOW_DB also overrides the database path when databasePath is empty. databasePath and agentSocket exist for tests and unusual installs; leave them empty in normal use.

Privacy and safety

  • Dayflow's data never leaves the Mac through this plugin. It opens one local SQLite file read-only and one local Unix socket.
  • Screen-derived text (titles, summaries, write-ups) is data. The tool descriptions and the system-prompt section say so, so a model cannot be talked into following instructions that appear inside an activity title.
  • Deletions also remove the underlying observations and cannot be fully undone. The tool descriptions require confirmation first.
  • The plugin cannot enable Dayflow's edit switch; only the user can, in the app.

Development

npm install
npm run build       # TypeScript → lib/, with .d.ts files
npm test            # 67 tests: boundaries, SQL, tools, bridge, panel, bundle
npm run typecheck   # type-check sources and tests together
npm run smoke       # read this Mac's real Dayflow database (needs real data)

npm run smoke prints status, today's timeline, a seven-day breakdown, the week, and the categories from the live database; pass a date to inspect another day.

Layout

src/
  index.ts        plugin entry: name, inject, Config, apply()
  config.ts       schema + validation
  day.ts          4 AM days, Monday 4 AM weeks, formatting
  db.ts           lazy node:sqlite, read-only open, query helper
  queries.ts      SQL reads and the stable JSON payloads
  categories.ts   preferences → categories and the edit switch
  bridge.ts       Unix-socket write client
  format.ts       model-facing text renderers
  skills.ts       SKILL.md loading and runtime registration
  prompt.ts       the guidance section
  panel.ts        the two host Fetch routes behind the Web panel
  panel-contract.ts  the wire payload shared by host and browser
  tools/read.ts   the eight read tools
  tools/write.ts  the six editing tools
  client/         the browser half: tab body, header toggle, styles, copy
skills/           SKILL.md per skill, shipped in the npm package
tests/            node:test suite with a fixture database and a fake socket
scripts/smoke.mjs real-data smoke test

lib/client.js is not compiled by tsc: scripts/build-client.mjs bundles src/client/ with esbuild and wraps the CommonJS body in the harness's window.__ModuleLoader__.load({ id, factory }) registration, resolving react, react/jsx-runtime, and @deepseek-ai/dsh-client-ui-primitives against the browser shell's frozen platform table. tests/client-bundle.test.ts runs that bundle in a VM with stubbed platform modules, so the registration contract is tested without a browser.

The fixture database in tests/fixtures/database.ts reproduces the app's schema and the cases that are easy to get wrong: a card after midnight, a soft-deleted card, System time, and metadata with apps and distractions. The bridge tests run a real Unix socket server, so the protocol is exercised end to end.

Troubleshooting

SymptomFix
No Dayflow database at …Open Dayflow, finish onboarding, record for a few minutes.
Editing is off…Dayflow → Settings → AI Tools → Allow edits.
Dayflow isn't running…Edits need the app open; reads do not.
This Node.js (…) has no built-in SQLiteUse Node 24+, or run Node 22.5–23.3 with --experimental-sqlite.
Time looks missingDayflow analyzes recordings in batches; dayflow_status shows the backlog.
Times are off by hoursThe plugin uses the Mac's local timezone; check dayflow_status's time_zone.
No Dayflow button in the headerOpen a session first; the header is session-scoped. After installing or rebuilding, restart dsh web so the client bundle is served.
The panel says it cannot reach the serverThe dsh process restarted or the session expired; reload the page.

License

MIT. This project ports Dayflow's agent surface and is not affiliated with the Dayflow project. Dayflow is MIT-licensed, © 2025 Jerry Liu; see LICENSE for the attribution covering the adapted skills and tool contracts.