← Back to Skills Marketplace
breeze-r

Notion Diary

by breeze-r · GitHub ↗ · v1.0.2 · MIT-0
cross-platform ✓ Security Clean
133
Downloads
0
Stars
0
Active Installs
3
Versions
Install in OpenClaw
/install notion-diary
Description
Write diary entries or short 24-hour reports in Chinese or English, then sync them into Notion using a user-supplied NOTION_API_KEY and the bundled Python sc...
README (SKILL.md)

Notion Diary

Use this skill to turn user input into a diary entry or a short 24-hour report, then sync it into Notion through the bundled Python helper at {baseDir}/scripts/notion_diary_sync.py.

Command Surface

OpenClaw sanitizes the skill name to the slash command /notion_diary.

Accept these command patterns:

  • /notion_diary diary style=\x3Cplain|gentle|reflective|lyrical>
  • /notion_diary diary date=\x3CYYYY-MM-DD> style=\x3C...>
  • /notion_diary report24h style=\x3Cplain|gentle|reflective|lyrical>
  • /notion_diary auto style=\x3C...>

Chinese aliases are also valid:

  • diary -> 日记
  • report24h -> 日报
  • auto -> 自动

Treat the first token after /notion_diary as the mode. Parse date= and style= when present. Everything else in the message is source material for the entry.

Style Presets

Support exactly four preset styles. Read references/style-presets.md before drafting when the user does not define their own style.

  • plain: concise, factual, diary-as-log.
  • gentle: warm, smooth, personal.
  • reflective: restrained, lived-in, slightly introspective. Prefer this by default.
  • lyrical: more scene and atmosphere, but still grounded.

If the user gives no style, use:

  1. reflective when the material contains emotion, travel, or relationships.
  2. plain when the material is mostly work updates.

Authorization And Runtime Inputs

This skill expects NOTION_API_KEY to be injected by OpenClaw. Read references/openclaw-config.example.jsonc before first use.

Keep this package registry-safe:

  • Do not bundle real API keys.
  • Do not bundle personal page ids, data source ids, or workspace-specific URLs.
  • Keep the example config fully placeholder-based so the skill can be published to ClawHub safely.

Optional environment variables:

  • NOTION_DIARY_DATA_SOURCE_ID: preferred existing target.
  • NOTION_DIARY_DATABASE_ID: existing database id if the data source id is not known.
  • NOTION_DIARY_PARENT_PAGE_ID: parent page used to find or create the Daily Journal database.
  • NOTION_DIARY_DATABASE_NAME: default database title. Defaults to Daily Journal.
  • NOTION_DIARY_DEFAULT_STYLE: default style code. Defaults to reflective.

Prefer NOTION_DIARY_DATA_SOURCE_ID when available. If it is missing, use NOTION_DIARY_DATABASE_ID. If both are missing, use NOTION_DIARY_PARENT_PAGE_ID to locate or create the diary database.

The script creates a date-ready database schema. If you want a visible calendar layout in Notion, create the calendar view once in the Notion UI using the Date property.

Diary Workflow

  1. Parse the mode, date, and style.
  2. Gather the raw diary material from the command body, the attached text, and the current conversation context.
  3. Draft a first-pass diary in the requested style without inventing facts.
  4. After the first pass, ask 1 to 3 targeted follow-up questions that help deepen missing moments, transitions, or emotional shifts.
  5. Revise the diary with the user's answers.
  6. Create or update the Notion entry for that date through the bundled script.

Only skip the follow-up questions when one of these is true:

  • the user explicitly says to sync immediately
  • the material is already complete enough for a polished diary
  • the mode is report24h and the user asked for a short brief rather than a refined diary

Prefer titles in this shape:

  • YYYY-MM-DD | 一句话主题

Prefer a short summary sentence for the Notion Summary property.

Follow-Up Question Rules

Ask questions that improve the diary rather than expand it mechanically.

  • Prefer questions about one missing moment, one emotional turn, or one concrete detail.
  • Ask at most 3 questions.
  • Ask only what would noticeably improve the final diary.
  • Keep the questions short and specific.

Good follow-up examples:

  • 当时你最强烈的感受是什么?
  • 下午去古城的时候,现场的状态更像是轻松、匆忙,还是有点收尾的感觉?
  • 晚上学 AI 时,你是兴奋、平静,还是有点疲惫但充实?

Avoid generic questions like:

  • 还有什么想补充的吗?
  • 今天开心吗?
  • 详细说说。

24-Hour Report Workflow

Use this mode when:

  • the user explicitly invokes report24h or 日报
  • the user invokes auto and there is no usable diary material for today
  • the user asks for a short daily recap instead of a full diary

Before drafting a 24-hour report:

  1. Use sessions_list to identify the current sender's most relevant session from the last 24 hours.
  2. Prefer the literal key main for direct chat when it is clearly the active thread.
  3. Use sessions_history to fetch the recent transcript. Keep includeTools off unless tool outputs are part of the substance the user wants summarized.
  4. Summarize only the last 24 hours of visible conversation for the relevant session. Do not pull unrelated sessions unless the user explicitly asks for a broader recap.

The 24-hour report must stay shorter than a full diary:

  • 1 short summary paragraph
  • 2 to 5 bullets or short paragraphs for key actions, blockers, and progress
  • no embellished storytelling unless the user explicitly asks for it

If a proper diary entry for today already exists and the user asks for auto, prefer updating that diary instead of generating a separate short report.

Photo Handling

When the user provides one or more photos, insert image placement markers into the content before calling the sync script:

  • [[image:1]]
  • [[image:2]]

Each marker must appear on its own line between paragraphs. Pass the real local file paths or public URLs through repeated --image arguments to the script in the same order.

If there are images but no obvious placement, append them after the body.

When image paths or public image URLs are available, the sync should do all three:

  • insert the photos into the page body at the matching marker positions
  • write the photos into the Notion Photos property
  • use the first valid photo as the page cover

Sync Script

Use {baseDir}/scripts/notion_diary_sync.py.

Typical calls:

python3 {baseDir}/scripts/notion_diary_sync.py lookup \
  --date 2026-03-28 \
  --mode diary
python3 {baseDir}/scripts/notion_diary_sync.py sync \
  --date 2026-03-28 \
  --mode diary \
  --style reflective \
  --title "2026-03-28 | 曼谷的最后一天" \
  --summary "曼谷最后一天的收尾、想念和被回应。" \
  --content-file /tmp/diary.txt \
  --image /absolute/path/photo1.jpg
python3 {baseDir}/scripts/notion_diary_sync.py sync \
  --date 2026-03-28 \
  --mode report \
  --style plain \
  --title "2026-03-28 | 24h 简短日报" \
  --summary "过去 24 小时的工作与交流简报。" \
  --content-file /tmp/report.txt

The script will:

  • find or create the diary database
  • create or update the page for the target date and mode
  • store the body in page content
  • keep Title, Date, Mode, Style, and Summary properties in sync
  • best-effort upload local images up to 20 MB through the Notion file upload API
  • populate the Photos property and page cover when photos are provided

Drafting Rules

  • Mirror the user's language unless asked otherwise.
  • Keep facts intact and do not invent details.
  • For plain, optimize for clear sequence and compactness.
  • For gentle, allow warmth but keep it natural.
  • For reflective, use the user's preferred balanced style: first set the day's overall state, then move through concrete events and emotional changes gradually.
  • For reflective, the priority is not “more literary”; the priority is natural pacing, light transitions, and a sense of inner movement without over-writing.
  • Let the sentences breathe a little, but keep them readable and grounded.
  • For lyrical, add atmosphere lightly; do not become purple or melodramatic.

Failure Handling

  • If the Notion API key is missing, explain that the skill needs skills.entries["notion-diary"].apiKey or NOTION_API_KEY.
  • If the integration cannot access the target page or database, ask the user to share the parent page with the integration and provide the correct page or data source id.
  • If image upload fails, keep the diary sync successful and add a short text fallback instead of failing the whole run.
  • If some images fail but others succeed, keep the successful photos in Notion and fall back to text only for the failed ones.
  • If session history is unavailable for report24h, summarize only the visible recent chat and say that the report used a limited context window.

Resources

Usage Guidance
This skill appears to do what it says: draft diary/report text and create/update pages in Notion. Before installing: 1) only provide a Notion integration key with the minimum scopes needed (avoid a workspace-wide admin key); 2) understand the skill will read recent conversation history and any attached files you include and may upload image files to Notion (single-file uploads limited to 20 MB); 3) if you need stricter privacy, consider creating a Notion integration limited to a single database or page and use that integration key; 4) review the bundled script if you want to confirm exact behavior (it talks directly to api.notion.com and contains the upload logic).
Capability Analysis
Type: OpenClaw Skill Name: notion-diary Version: 1.0.2 The notion-diary skill bundle is a legitimate tool designed to sync user-generated diary entries and automated 24-hour reports to Notion. The bundled Python script (notion_diary_sync.py) uses the official Notion REST API to manage database entries and perform image uploads using standard multipart/form-data requests. The instructions in SKILL.md are well-defined, providing the AI agent with clear constraints on drafting content and accessing session history for the report feature. No evidence of malicious intent, data exfiltration to unauthorized domains, or obfuscated code was found.
Capability Assessment
Purpose & Capability
Name/description ask to draft diary entries and sync to Notion; required binary (python3), primary env (NOTION_API_KEY), and the bundled Python script all match that purpose. No unrelated credentials or binaries are requested.
Instruction Scope
SKILL.md instructs the agent to gather command body, attached text/photos, and recent conversation context (sessions_list / sessions_history) to generate entries — this is expected for a diary/24h-report skill but is privacy-sensitive because it accesses chat history and attached files. The workflow and follow-up-question limits are explicit and scoped.
Install Mechanism
Install spec only suggests installing Python via Homebrew on macOS (formula: python). No remote downloads, extract steps, or unfamiliar endpoints are present; the script is bundled locally.
Credentials
Only NOTION_API_KEY is required as the primary credential; several optional Notion identifiers are allowed to choose the target database — these are reasonable for the stated functionality.
Persistence & Privilege
always is false and the skill does not request system-wide configuration changes or persistent elevated privileges. It can be invoked autonomously (platform default), which is expected for skills.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install notion-diary
  3. After installation, invoke the skill by name or use /notion-diary
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.2
Improve follow-up questions and photo sync reliability.
v1.0.1
Add follow-up refinement questions, stronger reflective default tone, and real photo sync into page body, Photos property, and cover.
v1.0.0
Initial release: Notion diary sync with 4 writing styles and 24h fallback report
Metadata
Slug notion-diary
Version 1.0.2
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 3
Frequently Asked Questions

What is Notion Diary?

Write diary entries or short 24-hour reports in Chinese or English, then sync them into Notion using a user-supplied NOTION_API_KEY and the bundled Python sc... It is an AI Agent Skill for Claude Code / OpenClaw, with 133 downloads so far.

How do I install Notion Diary?

Run "/install notion-diary" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Notion Diary free?

Yes, Notion Diary is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Notion Diary support?

Notion Diary is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Notion Diary?

It is built and maintained by breeze-r (@breeze-r); the current version is v1.0.2.

💬 Comments