Notion Agent
name: notion-agent
by chloepark85 · published 2026-03-22
$ claw add gh:chloepark85/chloepark85-notion-agent---
name: notion-agent
description: "Notion integration for OpenClaw. Manage pages, databases, and blocks via AI agent."
license: "MIT-0"
metadata:
{
"openclaw":
{
"emoji": "📝",
"requires": { "bins": ["uv"] },
"primaryEnv": "NOTION_TOKEN",
},
}
---
# Notion Agent
OpenClaw skill for managing Notion workspaces via AI agents. Provides CLI commands for pages, databases, blocks, and search.
Setup
1. **Create a Notion Integration:**
- Go to https://www.notion.so/my-integrations
- Click "New integration"
- Give it a name (e.g., "OpenClaw")
- Copy the "Internal Integration Token"
2. **Set environment variable:**
```bash
export NOTION_TOKEN=your_integration_token_here
```
3. **Share pages/databases with your integration:**
- Open the page or database in Notion
- Click "..." → "Add connections"
- Select your integration
Usage
All commands use the pattern:
uv run {baseDir}/scripts/notion.py <command> [options]Page Operations
**Create a page:**
uv run {baseDir}/scripts/notion.py page create \
--parent <parent_page_id> \
--title "My New Page" \
--content "Initial paragraph content"**Get a page:**
uv run {baseDir}/scripts/notion.py page get <page_id>**Update a page:**
uv run {baseDir}/scripts/notion.py page update <page_id> \
--title "Updated Title"**Delete (archive) a page:**
uv run {baseDir}/scripts/notion.py page delete <page_id>**List child pages:**
uv run {baseDir}/scripts/notion.py page list --parent <page_id>Database Operations
**Query a database:**
# Simple query
uv run {baseDir}/scripts/notion.py db query <db_id>
# With filter
uv run {baseDir}/scripts/notion.py db query <db_id> --filter Name=Todo
# With sort
uv run {baseDir}/scripts/notion.py db query <db_id> --sort Priority:desc**Add page to database:**
uv run {baseDir}/scripts/notion.py db add <db_id> \
--props '{"Name":{"title":[{"text":{"content":"Task"}}]},"Status":{"select":{"name":"Done"}}}'**List all databases:**
uv run {baseDir}/scripts/notion.py db listBlock Operations
**Append paragraph:**
uv run {baseDir}/scripts/notion.py block append <page_id> \
--type paragraph \
--text "This is a paragraph"**Append to-do:**
uv run {baseDir}/scripts/notion.py block append <page_id> \
--type todo \
--text "Task to complete" \
--checked**Append heading:**
uv run {baseDir}/scripts/notion.py block append <page_id> \
--type heading1 \
--text "Section Title"**Append code block:**
uv run {baseDir}/scripts/notion.py block append <page_id> \
--type code \
--text "print('Hello, World!')" \
--language python**List child blocks:**
uv run {baseDir}/scripts/notion.py block children <block_id>Search
**Search workspace:**
# Search all
uv run {baseDir}/scripts/notion.py search "project plan"
# Search only pages
uv run {baseDir}/scripts/notion.py search "meeting notes" --type page
# Search only databases
uv run {baseDir}/scripts/notion.py search "tasks" --type databaseError Handling
The CLI handles common errors:
API Reference
Limitations
Examples for AI Agents
**Create a meeting notes page:**
uv run {baseDir}/scripts/notion.py page create \
--parent <workspace_root_id> \
--title "Meeting Notes - 2026-03-10" \
--content "Attendees: Team"**Add task to project database:**
uv run {baseDir}/scripts/notion.py db add <project_db_id> \
--props '{"Name":{"title":[{"text":{"content":"Fix bug #123"}}]},"Status":{"select":{"name":"In Progress"}},"Priority":{"select":{"name":"High"}}}'**Build a structured page:**
PAGE_ID=$(uv run {baseDir}/scripts/notion.py page create --parent <parent> --title "Report" | jq -r .id)
uv run {baseDir}/scripts/notion.py block append $PAGE_ID --type heading1 --text "Executive Summary"
uv run {baseDir}/scripts/notion.py block append $PAGE_ID --type paragraph --text "Key findings..."
uv run {baseDir}/scripts/notion.py block append $PAGE_ID --type heading2 --text "Details"
uv run {baseDir}/scripts/notion.py block append $PAGE_ID --type todo --text "Review findings"Help
uv run {baseDir}/scripts/notion.py --help
uv run {baseDir}/scripts/notion.py page --help
uv run {baseDir}/scripts/notion.py db --help
uv run {baseDir}/scripts/notion.py block --helpMore tools from the same signal band
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
Sign plugins, rotate agent credentials without losing identity, and publicly attest to plugin behavior with verifiable claims and authenticated transfers.
The philosophical layer for AI agents. Maps behavior to Spinoza's 48 affects, calculates persistence scores, and generates geometric self-reports. Give your...