Notion Agent
/install notion-agent
Notion Agent
OpenClaw skill for managing Notion workspaces via AI agents. Provides CLI commands for pages, databases, blocks, and search.
Setup
-
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"
-
Set environment variable:
export NOTION_TOKEN=your_integration_token_here -
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 \x3Ccommand> [options]
Page Operations
Create a page:
uv run {baseDir}/scripts/notion.py page create \
--parent \x3Cparent_page_id> \
--title "My New Page" \
--content "Initial paragraph content"
Get a page:
uv run {baseDir}/scripts/notion.py page get \x3Cpage_id>
Update a page:
uv run {baseDir}/scripts/notion.py page update \x3Cpage_id> \
--title "Updated Title"
Delete (archive) a page:
uv run {baseDir}/scripts/notion.py page delete \x3Cpage_id>
List child pages:
uv run {baseDir}/scripts/notion.py page list --parent \x3Cpage_id>
Database Operations
Query a database:
# Simple query
uv run {baseDir}/scripts/notion.py db query \x3Cdb_id>
# With filter
uv run {baseDir}/scripts/notion.py db query \x3Cdb_id> --filter Name=Todo
# With sort
uv run {baseDir}/scripts/notion.py db query \x3Cdb_id> --sort Priority:desc
Add page to database:
uv run {baseDir}/scripts/notion.py db add \x3Cdb_id> \
--props '{"Name":{"title":[{"text":{"content":"Task"}}]},"Status":{"select":{"name":"Done"}}}'
List all databases:
uv run {baseDir}/scripts/notion.py db list
Block Operations
Append paragraph:
uv run {baseDir}/scripts/notion.py block append \x3Cpage_id> \
--type paragraph \
--text "This is a paragraph"
Append to-do:
uv run {baseDir}/scripts/notion.py block append \x3Cpage_id> \
--type todo \
--text "Task to complete" \
--checked
Append heading:
uv run {baseDir}/scripts/notion.py block append \x3Cpage_id> \
--type heading1 \
--text "Section Title"
Append code block:
uv run {baseDir}/scripts/notion.py block append \x3Cpage_id> \
--type code \
--text "print('Hello, World!')" \
--language python
List child blocks:
uv run {baseDir}/scripts/notion.py block children \x3Cblock_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 database
Error Handling
The CLI handles common errors:
NOTION_TOKEN not set— Set the environment variableInvalid NOTION_TOKEN— Check your integration tokenResource not found— Page/database doesn't exist or integration lacks accessPermission denied— Share the resource with your integration
API Reference
- Base URL:
https://api.notion.com/v1 - API Version:
2022-06-28 - Authentication: Bearer token via
NOTION_TOKEN
Limitations
- Uses
requestslibrary only (no Notion SDK) - Simple filter/sort syntax (single property)
- Rich text limited to plain text content
- Database properties must be formatted as JSON
Examples for AI Agents
Create a meeting notes page:
uv run {baseDir}/scripts/notion.py page create \
--parent \x3Cworkspace_root_id> \
--title "Meeting Notes - 2026-03-10" \
--content "Attendees: Team"
Add task to project database:
uv run {baseDir}/scripts/notion.py db add \x3Cproject_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 \x3Cparent> --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 --help
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install notion-agent - 安装完成后,直接呼叫该 Skill 的名称或使用
/notion-agent触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Notion Agent 是什么?
Notion integration for OpenClaw. Manage pages, databases, and blocks via AI agent. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 327 次。
如何安装 Notion Agent?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install notion-agent」即可一键安装,无需额外配置。
Notion Agent 是免费的吗?
是的,Notion Agent 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Notion Agent 支持哪些平台?
Notion Agent 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Notion Agent?
由 Chloe Park(@chloepark85)开发并维护,当前版本 v1.0.1。