Notion Workspace Operations
SkillSearchSearch, create, update, and organize Notion pages, databases, notes, and trackers through the Notion API.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Notion Workspace Operations skill
What this skill tells your AI
The instructions your AI receives, as published by hybridaione/hybridclaw in skills/notion/SKILL.md and read by ahel’s review.
Use the Notion API for page, block, and data-source work.
Setup
If NOTION_API_KEY is not already configured:
- Create an internal integration in Notion.
- Save the token outside the repo, usually as
NOTION_API_KEY. - Share the target pages or databases with that integration.
Do not assume the integration can see a page until the user confirms sharing.
API Basics
Before API calls, write a private temp curl config and register cleanup so the Notion token stays off the shell command line and the auth file is removed on exit:
AUTH_CURL="$(mktemp)"
chmod 600 "$AUTH_CURL"
trap 'rm -f "$AUTH_CURL"' EXIT INT TERM
cat >"$AUTH_CURL" <<EOF
header = "Authorization: Bearer $NOTION_API_KEY"
header = "Notion-Version: 2025-09-03"
EOF
All requests need:
curl -s "https://api.notion.com/v1/..." -K "$AUTH_CURL"
Common Operations
Search:
curl -s -X POST "https://api.notion.com/v1/search" \
-K "$AUTH_CURL" \
-H "Content-Type: application/json" \
-d '{"query":"release notes"}'
Get page metadata:
curl -s "https://api.notion.com/v1/pages/PAGE_ID" -K "$AUTH_CURL"
Get page blocks:
curl -s "https://api.notion.com/v1/blocks/PAGE_ID/children" -K "$AUTH_CURL"
Query a data source:
curl -s -X POST "https://api.notion.com/v1/data_sources/DATA_SOURCE_ID/query" \
-K "$AUTH_CURL" \
-H "Content-Type: application/json" \
-d '{"page_size":20}'
Create a page in a database:
curl -s -X POST "https://api.notion.com/v1/pages" \
-K "$AUTH_CURL" \
-H "Content-Type: application/json" \
-d '{"parent":{"database_id":"DATABASE_ID"},"properties":{"Name":{"title":[{"text":{"content":"New item"}}]}}}'
Append blocks:
curl -s -X PATCH "https://api.notion.com/v1/blocks/PAGE_ID/children" \
-K "$AUTH_CURL" \
-H "Content-Type: application/json" \
-d '{"children":[{"object":"block","type":"paragraph","paragraph":{"rich_text":[{"text":{"content":"Hello"}}]}}]}'
Important Notes
- Notion now distinguishes
database_idfromdata_source_id. - Use
database_idwhen creating pages. - Use
data_source_idwhen querying data. - Read first, write second.
- If you are done before the shell exits, run
rm -f "$AUTH_CURL"andtrap - EXIT INT TERM.
Rules
- Confirm the exact parent page or database before creating content.
- Show the proposed page title, properties, and key block content before writing.
- Prefer databases for structured tasks, trackers, and meeting logs instead of ad hoc bullet pages.
- Respect rate limits and avoid large write bursts.
Signals
- GitHub stars
- 132
- Forks
- 12
- Last commit
- Sep 2026
ahel review
S4info
community integration — published by hybridaione, not notion
Automated review, not a security audit. Ruleset v1.
Advanced
- Catalog kind
- skill
- Gateway key
notion-hybridaione- Source
- github.com/hybridaione/hybridclaw