SuperAPI AI 工具集

dayflow-review

办公与效率

查看项目

更新于 10-16 06:38

技能介绍

用途

Dayflow Review 用于对本地 Dayflow 数据进行回顾,可生成每日或每周的总结。它仅支持 macOS,数据来源为本地 Dayflow 的 SQLite 数据库。

数据位置与结构

数据库路径为 ~/Library/Application Support/Dayflow/chunks.sqlite,同时可能存在 WAL 文件 chunks.sqlite-wal 与 chunks.sqlite-shm。

查询时需始终过滤软删除记录,即使用 WHERE is_deleted = 0。

关键表包括:

  • timeline_cards:主要活动区块,字段有 day、start_ts、end_ts、title、category、subcategory、metadata。
  • journal_entries:每日意图与反思。

使用方式

资料提供了 Python 连接示例,使用标准库 sqlite3 连接数据库文件,并设置 busy_timeout。代码示例如下:

# /// script
# dependencies = []
# ///
import sqlite3
from pathlib import Path

path = Path.home() / "Library" / "Application Support" / "Dayflow" / "chunks.sqlite"
conn = sqlite3.connect(str(path), timeout=5.0)
conn.row_factory = sqlite3.Row
conn.execute("PRAGMA busy_timeout = 5000")

若需要把 JSON 输出给外部工具,建议用 jq 缩小字段范围。对于小型查询,尽量在 SQL 或 Python 中完成过滤,避免引入额外依赖。

主要能力与参考查询

资料给出以下时长换算辅助表达式:

(end_ts - start_ts) / 60.0 AS minutes
ROUND((end_ts - start_ts) / 3600.0, 2) AS hours

每日类别汇总:

SELECT category,
  ROUND(SUM(end_ts - start_ts) / 3600.0, 2) AS hours
FROM timeline_cards
WHERE day = date('now') AND is_deleted = 0
GROUP BY category
ORDER BY hours DESC;

每周总计:

SELECT category,
  ROUND(SUM(end_ts - start_ts) / 3600.0, 2) AS hours
FROM timeline_cards
WHERE day >= date('now', '-7 days') AND is_deleted = 0
GROUP BY category
ORDER BY hours DESC;

专注会话(30 分钟以上的工作):

SELECT day, start, end, title,
  ROUND((end_ts - start_ts) / 60.0, 1) AS duration_min
FROM timeline_cards
WHERE category = 'Work'
  AND is_deleted = 0
  AND (end_ts - start_ts) >= 1800
ORDER BY duration_min DESC;

适用场景

适合在 macOS 上对自己记录的 Dayflow 时间线做每日或每周回顾,按类别统计时间投入,并识别 30 分钟以上的连续工作会话。

限制

仅支持 macOS。其余平台、安装步骤、收费或价格信息暂未提供。