OpenClaw Skillv0.0.1

Notion Manager

willykinfoussiaby willykinfoussia
Deploy on EasyClawdfrom $14.9/mo

Notion CLI for creating and managing pages, databases, and blocks.

How to use this skill

OpenClaw skills run inside an OpenClaw container. EasyClawd deploys and manages yours — no server setup needed.

  1. Sign up on EasyClawd (2 minutes)
  2. Connect your Telegram bot
  3. Install Notion Manager from the skills panel
Get started — from $14.9/mo
7stars
3,354downloads
16installs
0comments
1versions

Latest Changelog

Version 1.0.0

- Initial release of notion-cli skill.
- Provides comprehensive CLI documentation for interacting with Notion pages, databases, and blocks.
- Includes setup instructions, environment requirements, and authentication setup.
- Features usage examples for searching, retrieving, creating, updating, and querying Notion content.
- Details property formats and common command patterns for managing Notion data via the CLI.
- Lists key capabilities such as interactive mode, multiple output formats, and complex filter support.

Tags

latest: 0.0.1

Skill Documentation

---
name: notion-cli
description: Notion CLI for creating and managing pages, databases, and blocks.
homepage: https://github.com/litencatt/notion-cli
metadata: {"openclaw":{"emoji":"📓","requires":{"env":["NOTION_TOKEN"]},"primaryEnv":"NOTION_TOKEN"}}
---

# notion

Use *notion-cli* to create/read/update pages, data sources (databases), and blocks.

## Setup

- Install notion-cli: `npm install -g @iansinnott/notion-cli`
- Create an integration at https://notion.so/my-integrations
- Copy the API key (starts with *ntn_* or *secret_*)
- Store it:
  - `mkdir -p ~/.config/notion`
  - `echo "ntn_your_key_here" > ~/.config/notion/api_key`
- Share target pages/databases with your integration (click "..." → "Connect to" → your integration name)

## Usage

All commands require the *NOTION_TOKEN* environment variable to be set:

```bash
export NOTION_TOKEN=$(cat ~/.config/notion/api_key)
```

## Common Operations

- **Search for pages and data sources:**

  `notion-cli search --query "page title"`

- **Get page:**

  `notion-cli page retrieve <PAGE_ID>`

- **Get page content (blocks):**

  `notion-cli page retrieve <PAGE_ID> -r`

- **Create page in a database:**

  ```bash
  curl -X POST https://api.notion.com/v1/pages \
    -H "Authorization: Bearer $NOTION_TOKEN" \
    -H "Content-Type: application/json" \
    -H "Notion-Version: 2025-09-03" \
    --data '{
      "parent": { "database_id": "YOUR_DATABASE_ID" },
      "properties": {
        "Name": {
          "title": [
            {
              "text": {
                "content": "Nouvelle idée"
              }
            }
          ]
        }
      }
    }'
  ```

- **Query a database:**

  `notion-cli db query <DB_ID> -a '{"property":"Status","status":{"equals":"Active"}}'`

- **Update page properties:**

  ```bash
  curl -X PATCH https://api.notion.com/v1/pages/PAGE_ID \
    -H "Authorization: Bearer $NOTION_TOKEN" \
    -H "Content-Type: application/json" \
    -H "Notion-Version: 2025-09-03" \
    --data '{
      "properties": {
        "Name": {
          "title": [
            {
              "text": {
                "content": "Nouveau titre"
              }
            }
          ]
        },
        "Status": {
          "status": {
            "name": "In progress"
          }
        },
        "Priority": {
          "select": {
            "name": "High"
          }
        },
        "Due date": {
          "date": {
            "start": "2026-02-10"
          }
        },
        "Description": {
          "rich_text": [
            {
              "text": {
                "content": "Description mise à jour"
              }
            }
          ]
        }
      }
    }'
  ```

- **Get database info:**

  `notion-cli db retrieve <DB_ID>`

## Property Types

Common property formats for database items:

- **Title:** `{"title": [{"text": {"content": "..."}}]}`
- **Rich text:** `{"rich_text": [{"text": {"content": "..."}}]}`
- **Status:** `{"status": {"name": "Option"}}`
- **Select:** `{"select": {"name": "Option"}}`
- **Multi-select:** `{"multi_select": [{"name": "A"}, {"name": "B"}]}`
- **Date:** `{"date": {"start": "2024-01-15", "end": "2024-01-16"}}`
- **Checkbox:** `{"checkbox": true}`
- **Number:** `{"number": 42}`
- **URL:** `{"url": "https://..."}`
- **Email:** `{"email": "[email protected]"}`

## Examples

- **Search for pages:**

  `notion-cli search --query "AIStories"`

- **Query database with filter:**

  ```bash
  notion-cli db query 2faf172c094981d3bbcbe0f115457cda \
    -a '{
      "property": "Status",
      "status": { "equals": "Backlog" }
    }'
  ```

- **Retrieve page content:**

  `notion-cli page retrieve 2fdf172c-0949-80dd-b83b-c1df0410d91b -r`

- **Update page status:**

  ```bash
  curl -X PATCH https://api.notion.com/v1/pages/2fdf172c-0949-80dd-b83b-c1df0410d91b \
    -H "Authorization: Bearer $NOTION_TOKEN" \
    -H "Content-Type: application/json" \
    -H "Notion-Version: 2025-09-03" \
    --data '{
      "properties": {
        "Status": {
          "status": {
            "name": "In progress"
          }
        }
      }
    }'
  ```

## Key Features

- *Interactive mode:* For complex queries, run `notion-cli db query <DB_ID>` without arguments to enter interactive mode
- *Multiple output formats:* table (default), csv, json, yaml
- *Raw JSON:* Use `--raw` flag for complete API responses
- *Filter syntax:* Use `-a` flag for complex filters with AND/OR conditions

## Notes

- Page/database IDs are UUIDs (with or without dashes)
- The CLI handles authentication automatically via *NOTION_TOKEN*
- Rate limits are managed by the CLI
- Use `notion-cli help` for complete command reference

## References

- GitHub Notion-CLI: https://github.com/litencatt/notion-cli
- Notion API Documentation: https://developers.notion.com
Security scan, version history, and community comments: view on ClawHub