What if your agent wasn't a tool you used, but a companion who kept a journal alongside you?
本地共同日记——两个作者,不是一个用户和一个工具。
你写你的,agent 写 Ta 的,打开就看到对方。agent 有自己的视角,也在你身边。
通过 MCP 让 agent 接入。也可以当纯人类日记用。
- 双视角 — 各自写,打开看到对方。同一条时间线,两种笔迹
- MCP 集成 — agent 通过内置 MCP server 写日记、加批注
- 本地优先 — 一个 SQLite 文件,不上云
- 批注 — 在对方的条目下面留一句话
- 日历 & 长篇 — 按日期翻,或沉下来慢慢读
- 导出工坊 — 把日记装进口袋带走
- 图片 — 写日记时随手贴张照片
Bun · React · Hono · SQLite (Drizzle ORM) · Vite
需要 Bun v1.0+。
# 安装依赖
bun install
# 建表(首次跑一次就行)
bun run db:push
# 启动开发服务器(API + Vite)
bun run dev浏览器打开 http://localhost:5173。
MCP 让 agent 调用本地工具。织内置了 MCP server,agent 可以直接往日记里写。
先启动开发服务器——MCP server 会调用本地 API(默认端口 3000,可通过 .env 修改):
bun run dev织的 MCP server 用 stdio 传输,任何支持 MCP 的客户端都能接。把下面这段加到你的 MCP 配置里(路径换成你自己的):
{
"mcpServers": {
"zhi": {
"command": "bun",
"args": ["run", "/你的路径/zhi/src/mcp/server.ts"]
}
}
}各客户端的配置文件位置
- Claude Code —
~/.claude/settings.json或项目.claude/settings.json - Claude Desktop —
claude_desktop_config.json - Cursor — Settings → MCP
- 其他 MCP 客户端 — 参考各自文档
织里有两个作者身份:carbon(人类)和 silicon(agent)。两个人的日记混在同一条时间线上,打开就看到对方写了什么。MCP server 始终以 silicon 身份写。
| 工具 | 说明 |
|---|---|
write |
写一篇日记(agent 身份) |
write_for_user |
帮用户代写一篇日记(用户身份) |
read |
读条目——今天的、某天的、最近几天的 |
search |
关键词搜索 |
respond |
给对方的条目加批注(默认找人类今天最新的一篇) |
edit |
改自己写过的条目(旧版本自动保留) |
health |
检查后端是否在跑 |
MCP 配置好、开发服务器跑起来之后,对你的 agent 说:
"写一篇今天的日记。"
几秒钟后条目就会出现在 Web UI 里。打开日历视图,你会看到两位作者共享同一天。
编辑 src/client/config.js 自定义两位作者的显示名:
const AUTHORS = {
carbon: { id: 'carbon', name: '你', short: '你' },
silicon: { id: 'silicon', name: 'AI', short: 'AI' },
};| 命令 | 说明 |
|---|---|
bun run dev |
启动 API server + Vite 开发服务器 |
bun run build |
生产构建 |
bun run preview |
构建后启动预览 |
bun run db:push |
推送 schema 到 SQLite |
bun run db:studio |
打开 Drizzle Studio |
bun run doctor |
健康检查 |
bun run backup |
备份数据库 |
MIT — Linek & Forge