Journal

io.github.sjh9714由 GitHub 帳號 sjh9714 發布v0.1.0更新於 Nov 6, 2026

Personal journal kept as Markdown files: search, On This Day, append to today, Day One import.

概覽

AI 產生的概覽

本機 MCP 伺服器,為以 Markdown 檔案保存的個人日記提供搜尋、每日草稿與帶時間軸的記憶。

可以做什麼
  • 搜尋、讀取並新增日記條目,支援「往年今日」與統計
  • 從 git 提交、行事曆訂閱和照片資料夾產生當日草稿,再決定保留或捨棄
  • 記錄、檢索與回溯記憶事實,含起始日期與取代歷史
  • 匯入 Day One 匯出內容,並管理標籤、範本和垃圾桶
  • 執行晚間回顧等引導式提示詞
適用情境
適合把個人日記保存為純 Markdown 檔案、並希望助理搜尋日記、依自己的提交和行事曆起草當日條目,或回答「上週做了什麼」「何時搬到首爾」這類問題的人。
執行需求
以本機程序在使用者電腦上執行(僅桌面端),可透過 Homebrew、發行版二進位檔或 Claude Desktop 的 .mcpb 套件安裝,並需用初始化指令建立日記資料夾。未宣告帳號、API 金鑰或環境變數。選用的行事曆、git 和照片來源在本機設定。
安裝前請注意
密碼鎖畫面只是隱藏應用程式,檔案在磁碟上仍是未加密的純文字。助理的條目更新會整段取代內文且無法復原,建議把資料夾放入 git 或具版本歷史的同步目錄,或使用唯讀模式。git 來源會涵蓋所列資料夾下的所有儲存庫,提交訊息可能進入日記和助理。選用的位置與天氣查詢會把資料傳送給 ipapi.co 和 Open-Meteo。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Journal,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Dayfile

A journal in a folder of Markdown files you own. Three things set it apart: each day drafts itself from the traces you already left (git commits, calendar, photos); the memory your agent builds from it records not only what is true but since when and when the journal learned it; and nothing is behind an account or a subscription.

[Dayfile demo: a drafted day, the entry, memory over time, and an agent answering from the journal over MCP]

Why

Journals die because writing every day is work. Agents forget you because their memory lives in someone else's cloud, in a form you cannot read or fix. Dayfile does both jobs with one folder. Day One has an agent connector too, on Mac with a subscription, against its own database; Dayfile's version is a folder you can open, diff, sync and correct, and it is the only one that reads your commits.

  • A day that writes its first draft. Point it at your code folders, a calendar feed and a photo folder. When you open the app (or at your reminder time) it drafts today: meetings, what you committed, where the photos were taken. You add a line about how it went and keep it, or discard it. Nothing runs in the background and nothing is read that you did not list.
  • Memory with a timeline. Your agent pulls durable facts out of entries (where you live, who people are, what you are working on) into memory/<topic>.md. Facts are never overwritten. A new fact ends the old one, so "where did I live in 2023?" and "what did the journal believe last month?" both have answers, and every fact links to the entry it came from. You can open the file and correct it.
  • Plain files. One .md per entry with YAML frontmatter, photos in a content-addressed folder, memory as readable YAML. Sync with iCloud Drive, Dropbox, Syncthing or git. The SQLite index is a cache rebuilt from the files. See docs/format.md.
  • A real journal app. Timeline, calendar, On This Day, full-text search (works for Korean, Japanese, Chinese), tags, templates, a passcode screen, a reminder, a trash with Undo, and Day One import.

Install

Desktop app: download the build for macOS, Windows or Linux from Releases. The macOS builds are signed and notarized.

CLI (also the MCP server):

sh
brew install --cask sjh9714/tap/dayfile   # macOS; or grab a binary from Releasesdayfile init                              # creates ~/Journal (or follows the app's folder)

Draft your day

sh
dayfile sources add git ~/codedayfile sources author [email protected]      # only your commitsdayfile sources add calendar "https://calendar.google.com/calendar/ical/…/basic.ics"dayfile sources add photos ~/Pictures/Phonedayfile capture                             # today's draftdayfile drafts                              # what waits for reviewdayfile keep <id>                           # or discard it: `dayfile delete <id>`

A draft looks like this, and stays out of the timeline, search and stats until you keep it:

markdown
Standup +1, 4 commits to shop-api, 3 photos
- 09:30–09:45 · Standup- 10:12–16:40 · shop-api · 4 commits (Add order endpoint; Fix refund rounding; +2 more)- 19:00–21:00 · Algorithms study- 18:20–18:41 · 3 photos

Capturing the same day again only adds what is new. The app does the same from Settings → Capture.

Let your agent in

sh
claude mcp add dayfile -- dayfile mcp serve

Claude Desktop: download the .mcpb file from Releases and open it.

The server has 19 tools and two prompts. Run the review_day prompt in the evening: the agent captures the day, asks you a couple of questions, writes the entry in your words, and records what it learned in memory. Then ask things like "what did I work on last week?", "when did I move to Seoul?", or "summarise my month". --read-only if you only want it to read. Details in docs/mcp.md.

Memory from the shell

sh
dayfile remember Home "Lives in Seoul" --since 2024-03-01 --replaces f3a9c2e1dayfile recall --topic home --as-of 2023-06-01      # Lives in Busandayfile history Homedayfile topics

Everyday journaling

sh
dayfile add "First entry" -t lifedayfile add --template gratitudedayfile search riverdayfile on-this-daydayfile statsdayfile delete <id>                # to the trash; `dayfile trash restore <id>` undoes it

Import from Day One

Day One → Export → JSON. Then in the app: Settings → Import Day One export, or:

sh
dayfile import dayone ~/Downloads/Export.zip

Entries, photos, tags, location, weather and stars come across. Re-importing never duplicates.

On your phone

There is no mobile app yet. Because entries are plain Markdown files, keep the journal folder in iCloud Drive (or Dropbox, Syncthing) and open it with any Markdown editor on the phone. On iPhone, Obsidian (free) works well: create a vault, choose "Existing folder", pick the journal folder in iCloud Drive, and new entries follow the format in docs/format.md. The desktop app picks the edits up the next time it is focused.

Privacy

No account, no server, no telemetry. Capture reads only the folders and feeds you list, only when you or your agent ask (or at app launch and the reminder). A git source covers every repository under that folder (four levels deep), your own commits only, so keep work repositories out of the folders you list if their commit messages should not reach the journal or the agent you review it with. Calendar and git sources stay in the app's config on this machine, not in the synced folder. Optional location and weather for new entries use the OS location service or a city-level guess from ipapi.co, then Open-Meteo; one toggle turns that off.

Build from source

sh
(cd apps/desktop && npm install)scripts/check.sh                       # tests, clippy, web buildcd apps/desktop && npm run tauri build

Status and limitations

Desktop app (macOS, Windows, Linux), CLI, MCP, capture from git, calendars and photos, bi-temporal memory, Day One import. Not yet: mobile, built-in sync, encryption at rest, more capture sources (shell history, browser).

Know these before you rely on it:

  • The passcode screen hides the app. It does not encrypt anything; the files stay plain text on disk.
  • An agent's update_entry replaces the body and there is no undo for it (deletes go to the trash, edits do not). Keep the journal folder in git or a synced folder with version history if agents may write to it, or pass --read-only.
  • Windows and Linux builds come from CI and have not been tried on real hardware.

MIT. "Day One" is a trademark of Automattic; this project only reads its export format.

來源:README.md,提交 138b498

工具

0
SourceWeft 曾在隔離沙箱中以無憑證方式啟動該軟體包一次,以列出其工具,但未能完成:該軟體包類型無法在沙箱中執行。

版本歷史

1
  1. v0.1.0最新Oct 29, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分