원클릭으로
notion
Notion API for creating and managing pages, databases, and blocks.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Notion API for creating and managing pages, databases, and blocks.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Edit Lyra's own config, memory, and personality files from Telegram. Use when Akash asks to update memory, change behavior, add rules, update skills, or modify setup.
Chief of Staff workflows — morning prep, inbox triage, calendar sanity, canonical today focus, recruiter/outreach discipline. Use when Akash asks for EA mode, daily brief, or operations-style help.
When Akash gives feedback on a draft (post, outreach, email, thread). Ensures Voice Canon + channel rules are re-applied, not only literal edits.
Manage Google Calendar events via API. List, create, update, delete events and check availability across personal, work, and shared calendars.
Complete approved work in the same turn—no hollow "I'll update" replies; never paste JSON parse noise to chat. Use on "do it" or stuck runs.
Manage reminders via Notion databases. Three databases mirror Apple Reminders lists — Akash, Shared, and Abhigna. Use the Notion API to add, query, and complete reminders.
| name | notion |
| description | Notion API for creating and managing pages, databases, and blocks. |
| homepage | https://developers.notion.com |
| metadata | {"clawdbot":{"emoji":"📝"}} |
Use the Notion API to create/read/update pages, data sources (databases), and blocks.
crud/cli.pyNEVER write directly to these databases via curl. Always use the Python CLI:
| DB name | database_id |
|---|---|
| Reminders - Akash | 32678008-9100-802f-ad9f-fb48ff5f4c1d |
| Reminders - Shared | 2054e39c-3f09-431d-8821-0e6a7513913a |
| Reminders - Abhigna | 5d6732b1-7e30-4856-b56b-edbf9c3df229 |
Use this command for ANY reminder write (eval, user, cron — all of them):
python3 /root/lyra-ai/crud/cli.py parse '<the user\'s reminder request verbatim>'
⛔ Write confirmation is MANDATORY:
After running crud/cli.py, the CLI prints a success line including the Notion page URL and/or page ID.
Examples:
python3 /root/lyra-ai/crud/cli.py parse 'Add a reminder: call the dentist tomorrow at 3pm'NOTION_REMINDERS_DB_ID=2054e39c-3f09-431d-8821-0e6a7513913a python3 /root/lyra-ai/crud/cli.py parse 'Add a reminder: X'Why this rule exists: the CLI auto-tags every page with a Source select property (user|eval|cron) based on the active session, which is what the eval cleanup pipeline relies on to keep test data out of prod. Writing directly via curl bypasses this and pollutes the production DBs.
If you genuinely cannot use the CLI (e.g., the schema needs a property the CLI doesn't set), include "Source": {"select": {"name": "user"}} (or "eval" / "cron") explicitly in your properties payload. The Source property is REQUIRED for Reminders DB writes.
ntn_ or secret_)mkdir -p ~/.config/notion
echo "ntn_your_key_here" > ~/.config/notion/api_key
All requests need:
NOTION_KEY=$NOTION_API_KEY
curl -X GET "https://api.notion.com/v1/..." \
-H "Authorization: Bearer $NOTION_KEY" \
-H "Notion-Version: 2025-09-03" \
-H "Content-Type: application/json"
Note: The
Notion-Versionheader is required. This skill uses2025-09-03(latest). In this version, databases are called "data sources" in the API.
Search for pages and data sources:
curl -X POST "https://api.notion.com/v1/search" \
-H "Authorization: Bearer $NOTION_KEY" \
-H "Notion-Version: 2025-09-03" \
-H "Content-Type: application/json" \
-d '{"query": "page title"}'
Get page:
curl "https://api.notion.com/v1/pages/{page_id}" \
-H "Authorization: Bearer $NOTION_KEY" \
-H "Notion-Version: 2025-09-03"
Get page content (blocks):
curl "https://api.notion.com/v1/blocks/{page_id}/children" \
-H "Authorization: Bearer $NOTION_KEY" \
-H "Notion-Version: 2025-09-03"
Create page in a data source:
curl -X POST "https://api.notion.com/v1/pages" \
-H "Authorization: Bearer $NOTION_KEY" \
-H "Notion-Version: 2025-09-03" \
-H "Content-Type: application/json" \
-d '{
"parent": {"database_id": "xxx"},
"properties": {
"Name": {"title": [{"text": {"content": "New Item"}}]},
"Status": {"select": {"name": "Todo"}}
}
}'
Query a data source (database):
curl -X POST "https://api.notion.com/v1/data_sources/{data_source_id}/query" \
-H "Authorization: Bearer $NOTION_KEY" \
-H "Notion-Version: 2025-09-03" \
-H "Content-Type: application/json" \
-d '{
"filter": {"property": "Status", "select": {"equals": "Active"}},
"sorts": [{"property": "Date", "direction": "descending"}]
}'
Create a data source (database):
curl -X POST "https://api.notion.com/v1/data_sources" \
-H "Authorization: Bearer $NOTION_KEY" \
-H "Notion-Version: 2025-09-03" \
-H "Content-Type: application/json" \
-d '{
"parent": {"page_id": "xxx"},
"title": [{"text": {"content": "My Database"}}],
"properties": {
"Name": {"title": {}},
"Status": {"select": {"options": [{"name": "Todo"}, {"name": "Done"}]}},
"Date": {"date": {}}
}
}'
Update page properties:
curl -X PATCH "https://api.notion.com/v1/pages/{page_id}" \
-H "Authorization: Bearer $NOTION_KEY" \
-H "Notion-Version: 2025-09-03" \
-H "Content-Type: application/json" \
-d '{"properties": {"Status": {"select": {"name": "Done"}}}}'
Add blocks to page:
curl -X PATCH "https://api.notion.com/v1/blocks/{page_id}/children" \
-H "Authorization: Bearer $NOTION_KEY" \
-H "Notion-Version: 2025-09-03" \
-H "Content-Type: application/json" \
-d '{
"children": [
{"object": "block", "type": "paragraph", "paragraph": {"rich_text": [{"text": {"content": "Hello"}}]}}
]
}'
Common property formats for database items:
{"title": [{"text": {"content": "..."}}]}{"rich_text": [{"text": {"content": "..."}}]}{"select": {"name": "Option"}}{"multi_select": [{"name": "A"}, {"name": "B"}]}{"date": {"start": "2024-01-15", "end": "2024-01-16"}}{"checkbox": true}{"number": 42}{"url": "https://..."}{"email": "a@b.com"}{"relation": [{"id": "page_id"}]}/data_sources/ endpoints for queries and retrievaldatabase_id and a data_source_id
database_id when creating pages (parent: {"database_id": "..."})data_source_id when querying (POST /v1/data_sources/{id}/query)"object": "data_source" with their data_source_idparent.data_source_id alongside parent.database_idGET /v1/data_sources/{data_source_id}is_inline: true when creating data sources to embed them in pages