内容
<h1 align="center">每日仪表盘</h1>
<p align="center">
<b>适用于Claude Code的本地、常驻每日仪表盘。</b><br>
每天早晨,它会将您的信息汇总成清晰、可扫描的卡片 — 然后帮助您采取行动。
</p>
<p align="center">
<img src="docs/screenshots/today.png" alt="今日视图:Slack、GitHub、Linear 和日历的晨间简报卡片,任务并排显示" width="820">
</p>
一个无头 `claude -p` 扫描程序会每天早晨将 Slack、Linear、Notion、Datadog、电子邮件、日历和 GitHub 聚合到一个地方。任何一行都可以变成任务;未完成的任务会延续到下一天;所有内容都保留为历史记录。一个 **大脑** 标签页会建立一个知识图谱,涵盖您的笔记和过去的 Claude Code 会话,并呈现跨文档的发现。
所有操作都在 **您的机器上运行** — 您的数据永远不会离开本地。任何个人信息或组织特定信息都存放在一个 gitignored 的 `data/config.json` 文件中,因此应用程序是通用的,您可以配置它,而不是编辑代码。
本项目特别设计,以适应多动症/阅读障碍:采用平静的暖纸色调、阅读障碍友好字体、形状 + 颜色 + 标签冗余(而非仅使用颜色),以及单一焦点“当前任务”。
## 亮点
- ☀️ **晨间简报** — 您的连接器,会被扫描成卡片。每个卡片行都可以一键变成任务。
- ✅ **持续的任务** — 一个固定的“当前任务”,一个跨天的待办事项列表,截止日期,以及一个提醒未完成的任务。
- 🧠 **大脑** — 一个交互式的知识图谱,涵盖您的学习内容 + Claude 会话,具有 AI 综合的发现。Cmd-click 两个主题,**查看关联**,了解它们如何连接。
- 📥 **PRs / 会话 / 趋势** — 您的打开的 PRs,本地 Claude Code 会话(过滤掉代理/扫描噪音),以及使用趋势。
- ⚙️ **管理面板** — 切换标签页和例行程序,查看和编辑每个扫描提示,运行设置检查,以及重新安排晨间扫描 — 所有操作均在应用内完成。
- 🔌 **配置驱动** — 指向您自己的连接器、路径和例行程序。不需要编辑代码。
## 快速入门
```bash
git clone https://github.com/jah2488/dayboard.git && cd dayboard
npm install
cp dayboard.config.example.json data/config.json # 您的本地配置(gitignored)
# 编辑 data/config.json:设置 identity.name、路径、github.org(可选)— 参见配置
npm run build
npm start # http://localhost:4747
```
在首次启动时(尚未配置),dayboard 会用引导式设置 + 实时检查来迎接您:
<p align="center">
<img src="docs/screenshots/first-run.png" alt="首次运行引导:欢迎,需要的内容,以及实时设置检查" width="560">
</p>
随时打开 **⚙ 设置 → 设置检查** 以确认您的路径、`claude` 二进制文件和连接器是否已连接。点击 **↻ 新扫描** 以在今日运行您的首次扫描。
对于热重载开发:`npm run dev`(Vite UI 在 `:5173`,API 在 `:4747`)。
### 要求
- **Node 22.5+** (使用内置的 `node:sqlite` — 无需原生构建步骤)。
- **Claude Code CLI** (`claude`)已安装并认证 — 扫描运行 `claude -p`。
- **可选:** `gh` CLI(PRs 标签页 + GitHub 在简报中)和您想要的 MCP 连接器(Slack、Linear、Notion、Datadog、Gmail、日历)。扫描使用可用连接器并记录缺少的连接器 — 无需任何连接器。
## 配置
没有任何个人信息是硬编码的。您的实际值存放在 **`data/config.json`** (gitignored)中;仓库提供 **`dayboard.config.example.json`** 作为模板。编辑文件,或 — 更简单 — 使用 **⚙ 设置** 标签页:
<p align="center">
<img src="docs/screenshots/settings.png" alt="设置管理面板:设置检查、身份和路径、标签页切换、扫描计划和每个例行程序的提示编辑" width="640">
</p>
| 键 | 功能 |
| --- | --- |
| `identity.name` | 问候语 + 例行程序如何称呼您(空白 = 通用)。 |
| `paths.learningsDir` / `claudeProjectsDir` | 您的笔记和 Claude Code 转录(大脑 + 会话来源)。 |
| `schedule` | 晨间扫描运行时间(驱动 launchd 代理)。 |
| `models` | `tag` (廉价层,索引)和 `reason` (中档,简报)。 |
| `github.org` + `repoChannels` / `repoKeywordRules` | PRs 标签页范围和存储库→审查通道路由(空白组织禁用 PRs)。 |
| `tabs` | 显示/隐藏每个导航标签页。 |
| `routines` | 扫描运行的例行程序,按顺序。 |
| `connectors` | 扫描使用的连接器(驱动设置检查)。 |
### 填充学习标签页和大脑
注意:**dayboard 只读取您的学习目录 — 它从不写入。**
学习标签页和大脑的学习部分保持为空,直到 *您* 将 markdown 笔记放入其中。(您的 Claude Code **会话** 不同 — 它们由使用 Claude Code 自动创建,因此会话标签页和大脑的会话部分会自行填充。)
填充它的推荐方法是让 Claude 在工作时将研究笔记保存到那里。在您的全局 `~/.claude/CLAUDE.md` 中添加类似的内容:
```
当被要求生成笔记、总结、调查报告或其他我稍后会重访的文档时,请将它们写入 ~/Projects/learnings/YYYY-MM-DD-{kebab-slug}.md
(与 dayboard 配置中的 paths.learningsDir 匹配)。
```
或者,您可以直接在目录中放置 `.md` 文件。设置检查(⚙ 设置)会报告它找到的文档数量,因此您会知道它是否为空。
### 扫描提示
一个 **例行程序** 是在扫描期间运行的提示;其 markdown 输出被 `##` 标题分割成卡片。已发货的提示是 `routines/` 中的通用模板,使用 `{{identity.name}}` 样式的占位符。要自定义一个,请打开 **设置 → 扫描提示**,编辑它,然后保存 — 这会将 gitignored 的覆盖写入 `data/routines/<name>.md`,覆盖模板。清除它以恢复原状。这是您在不触及公共仓库的情况下使 dayboard 成为您自己的。
## 常驻 + 晨间扫描(macOS)
```bash
npm run build
scripts/install-launchd.sh # 服务器(KeepAlive)+ 晨间扫描
MORNING_HOUR=8 MORNING_MIN=30 scripts/install-launchd.sh # 自定义时间
bin/morning-run.sh # 手动运行晨间扫描
```
晨间代理 POST `/api/sweep`;常驻服务器执行 `claude -p` 扫描,因此机器必须在计划时间唤醒。日志:`~/Library/Logs/dayboard/`。完整运行手册:[`ACTIVATION.md`](ACTIVATION.md)。
## Claude 钩子(MCP)
dayboard 配备了一个 MCP 服务器(`server/mcp.ts`),以便 Claude 可以读取和操作面板 — `get_day`、`list_tasks`、`create_task`、`complete_task`、`trigger_sweep`、`search_brain`、`trigger_brain_sweep` 等。通过 [`ACTIVATION.md`](ACTIVATION.md) 注册它。一个 `state/today.json` 快照也会在每次更改时刷新,以便直接读取文件。
## 大脑(知识图谱)
每日 AI 扫描将您的学习内容和本地 Claude Code 会话转换为主题/链接图,呈现为交互式思维导图,以及跨文档的 **发现** (趋势、线索、模式、修复和交叉关联 / 矛盾 / 沉默类型),由整个图谱合成,然后针对您的连接器进行验证。`data/brain/` 下的文件是真实来源 — 无 DB 表。Cmd/Ctrl-click 两个主题,**查看关联**,以综合它们之间的联系。可调提示位于 `routines/`。
## 技术栈
- **服务器:** Node 22.5+, [Hono](https://hono.dev) — 提供 UI + `/api` + `/mcp`。
- **数据库:** 内置 `node:sqlite`,纯 SQL 迁移位于 `db/migrations/`。
- **UI:** Vite + React + TypeScript,Tailwind v4。
## 目录结构
```
server/ Hono 服务器,SQLite,扫描,大脑,MCP
src/ React UI
shared/ 服务器和 UI 共享的类型
routines/ 泛型提示模板({{占位符}}驱动)
db/ SQL 迁移
data/ config.json,例行程序覆盖,SQLite 数据库,大脑图谱(全部 gitignored)
```
## 许可证
MIT — 参见 [LICENSE](LICENSE)。