notion/SKILL.md
Notion API for creating and managing pages, databases, and blocks.
npx skillsauth add lidge-jun/cli-jaw-skills notionInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Create, read, and update Notion pages, data sources (databases), and blocks via the API.
ntn_ prefix) stored at ~/.config/notion/api_keyNOTION_KEY=$(cat ~/.config/notion/api_key)NOTION_KEY=$(cat ~/.config/notion/api_key)
# Helper — all examples below use this
notion_api() {
local method=$1 endpoint=$2 data=$3
curl -s -X "$method" "https://api.notion.com/v1$endpoint" \
-H "Authorization: Bearer $NOTION_KEY" \
-H "Notion-Version: 2025-09-03" \
-H "Content-Type: application/json" \
${data:+-d "$data"}
}
API version 2025-09-03 (latest). Databases are called "data sources" in this version.
# Search
notion_api POST /search '{"query": "page title"}'
# Get page
notion_api GET /pages/{page_id}
# Get page content (blocks)
notion_api GET /blocks/{page_id}/children
# Create page in a data source
notion_api POST /pages '{
"parent": {"database_id": "xxx"},
"properties": {
"Name": {"title": [{"text": {"content": "New Item"}}]},
"Status": {"select": {"name": "Todo"}}
}
}'
# Query a data source
notion_api POST /data_sources/{data_source_id}/query '{
"filter": {"property": "Status", "select": {"equals": "Active"}},
"sorts": [{"property": "Date", "direction": "descending"}]
}'
# Create a data source
notion_api POST /data_sources '{
"parent": {"page_id": "xxx"},
"title": [{"text": {"content": "My Database"}}],
"properties": {
"Name": {"title": {}},
"Status": {"select": {"options": [{"name": "Todo"}, {"name": "Done"}]}},
"Date": {"date": {}}
}
}'
# Update page properties
notion_api PATCH /pages/{page_id} \
'{"properties": {"Status": {"select": {"name": "Done"}}}}'
# Add blocks to page
notion_api PATCH /blocks/{page_id}/children '{
"children": [
{"object": "block", "type": "paragraph", "paragraph": {"rich_text": [{"text": {"content": "Hello"}}]}}
]
}'
{"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": "[email protected]"}{"relation": [{"id": "page_id"}]}/data_sources/ endpoints for queriesdatabase_id (for creating pages) and data_source_id (for querying)"object": "data_source"parent.data_source_id and parent.database_id~/.config/notion/api_key (also ~/.config/notion/access_token)~/.config/notion/oauth.envnotion_api POST /search '{"query": "page name"}'Mention links create backlinks and show page icons automatically.
// ✓ mention
{"type": "mention", "mention": {"type": "page", "page": {"id": "페이지-UUID"}}}
// ✗ plain text
{"type": "text", "text": {"content": "페이지 이름"}}
Mentions display the page icon automatically — adding emoji causes duplication.
{"object": "block", "type": "callout", "callout": {
"rich_text": [
{"type": "mention", "mention": {"type": "page", "page": {"id": "대시보드-UUID"}}},
{"type": "text", "text": {"content": " · "}},
{"type": "mention", "mention": {"type": "page", "page": {"id": "운영-UUID"}}}
],
"icon": {"type": "emoji", "emoji": "🏠"},
"color": "gray_background"
}}
Deleting child_page blocks archives subpages permanently. Always filter them out:
for block in children:
if block["type"] != "child_page":
delete_block(block["id"])
callout (intro/slogan) + color_background
divider
heading_2 (section)
callout (mention links) + gray_background ← navigation
divider
heading_2 (Quick Links)
bulleted_list_item (mention → description)
time.sleep(0.35)is_inline: true to embed data sources in pagestools
Use only on the Codex CLI for native image generation or image editing without an API key. Save final PNG files under ~/.cli-jaw/uploads, report web-ready absolute-path markdown, and send to Telegram or Discord only when explicitly requested.
tools
Ranked repository structure map via `cli-jaw map`. Use for codebase overview, structure map, symbol overview, unfamiliar codebase exploration, architecture orientation. Triggers: repo map, structure map, codebase overview, 와꾸, project structure, unfamiliar code.
tools
cli-jaw Design workspace: create, preview, run, and export design pages from the right sidebar. Covers panel UX, direct-write workflow, artifact lifecycle, wireframe generation, design system, and Open Design adapter.
development
MUST USE for infrastructure and delivery work — container builds, deploy pipelines, Kubernetes, Infrastructure as Code, SRE foundations, edge/serverless, ML infrastructure. Triggers: Dockerfile, K8s manifests, CI/CD pipeline, Terraform/IaC, release/deploy, devops/infra/deploy or release_cd task_tags.