Your journal, open to your agents. Dayleaf for Mac can serve a small local API so scripts, the dayleaf command line and any MCP-capable agent can read and write entries, stickers and goals. Nothing leaves your Mac.
What it unlocks. An agent that already knows your calendar, your health data, your screen time or the weather can file them into Dayleaf as it would into a notebook — a line about the day's weather in a Weather planner, your steps and sleep in Health, a summary of what you shipped in Work. Entries written this way carry a small "via name" label, so your own words and an agent's notes never blur.
http://127.0.0.1:7317 while the app is open. It never binds to a network interface.npm install -g dayleaf # or: npx dayleaf …
dayleaf auth <token>
dayleaf add "Ran 5k along the river before work" --planner Health
dayleaf day today
dayleaf list --from -7 --q sleep --json
dayleaf help lists everything: add, edit, rm, list, day, show, planners, stickers, stamp, goals. A planner named in --planner is created if it does not exist. Add --json to any command for machine-readable output.
dayleaf-mcp is a Model Context Protocol server. Point Claude, ChatGPT, Muse or any MCP client at it and the journal becomes a set of tools: dayleaf_add_entry, dayleaf_list_entries, dayleaf_get_day, dayleaf_stamp_sticker, dayleaf_add_goal and friends.
{ "mcpServers": { "dayleaf": { "command": "npx", "args": ["-y", "dayleaf-mcp"],
"env": { "DAYLEAF_SOURCE": "claude" } } } }
claude mcp add dayleaf -- npx -y dayleaf-mcp
Then ask: "Log today's weather in my Weather planner", "What did I write about sleep last week?", "Stamp a workout sticker on yesterday."
Hosted agents cannot reach a laptop. For them Dayleaf has a cloud door: in the app (iPhone, Mac or Android, signed in) open Settings → Cloud access for agents, switch it on and tap Create API key. Dayleaf then keeps a text-only copy of your entries on its server (never photos, audio or video) and every device of your account pulls what agents write.
Muse builds its own connector from an MCP URL. Paste this into a Muse chat, then give it the API key when it asks through its credential flow:
Build a custom integration to Dayleaf. Its MCP server URL is
https://date-jotter-production.up.railway.app/mcp and it needs a bearer token.
I want you to be able to write my daily weather, health and screen-time notes
into my journal and read back what I wrote, from any future conversation.
Connect to it, test every capability end to end, show me the results, and
save the integration as a reusable skill.
# MCP (Streamable HTTP, stateless)
POST https://date-jotter-production.up.railway.app/mcp
Authorization: Bearer <API key>
# REST — same routes as the local API
curl -s -X POST https://date-jotter-production.up.railway.app/v1/entries \
-H "Authorization: Bearer $DAYLEAF_KEY" -H "Content-Type: application/json" \
-d '{"content":"Cloudy, 18°C. 7,100 steps.","planner":"Weather","source":"muse"}'
# The CLI works against the cloud too
dayleaf auth <API key> --url https://date-jotter-production.up.railway.app
The cloud door covers planners, entries and search. Stickers and goals stay on the Mac local API for now. Revoke keys or switch the whole thing off at any time in Settings; switching it off deletes the server copy.
curl -s "wttr.in/San+Jose?format=%C+%t" | xargs -I{} dayleaf add "{}" --planner Weather --source wttr in a nightly cron.dayleaf day today --json), writes a two-line summary and ticks the goals you finished.dayleaf list --q "decided" gives an assistant a searchable record of what you chose and why.Base URL http://127.0.0.1:7317. Send Authorization: Bearer <token>. JSON in, JSON out. Dates are YYYY-MM-DD; planners accept an id or a name.
| Method | Path | Body / query |
|---|---|---|
| GET | /v1/ping | no auth · version, build, authenticated |
| GET · POST | /v1/planners | POST {name, color?} |
| GET | /v1/entries | ?from&to&planner&q&limit |
| POST | /v1/entries | {content, date?, planner?, source?} |
| GET · PATCH · DELETE | /v1/entries/:id | PATCH {content?, date?, planner?} |
| GET | /v1/days/:date | entries, stickers, daily goals, note |
| GET | /v1/stickers | catalog + custom stickers |
| POST · DELETE | /v1/days/:date/stickers[/:id] | POST {id} |
| GET · POST | /v1/goals | ?kind=daily|weekly|monthly&date · POST {kind, date?, text} |
| PATCH | /v1/goals/:id | {kind, date?, done?, text?} |
curl -s -X POST http://127.0.0.1:7317/v1/entries \
-H "Authorization: Bearer $DAYLEAF_TOKEN" -H "Content-Type: application/json" \
-d '{"content":"Sunny, 22°C. Walked 6,200 steps.","planner":"Weather","source":"my-script"}'
Prefer files? Settings → Export as Markdown files (iPhone, iPad, Mac and Android) writes one note per day — 2026/2026-10-06.md — with YAML front matter listing the day's planners, stickers, agent sources and attachment names, plus weeks/ and months/ pages for goals and a README. It is zipped and handed to the share sheet, so it drops straight into Obsidian, Files or an agent's working folder. Text only; media is referenced by file name. Part of Dayleaf Pro (7-day free trial); the plain text and CSV email exports stay free.
---
date: 2026-10-06
planners: ["Weather", "Health", "Work"]
sources: ["muse", "claude"]
entries: 3
---
# Tuesday, October 6, 2026
## Weather
**07:00** Cloudy, 18°C, light rain after 4 pm. _(via muse)_
The API is loopback-only and off by default. The token is generated on your Mac and never sent anywhere. Agents see only what you let them query, and every entry they write is labelled with its source. Your journal stays on your devices and in your own iCloud or Google Drive backups, exactly as before.
Questions or ideas? The community board is where the developer reads everything. The CLI and MCP server are open source: github.com/icyriver2023/Date-Jotter/cli.