Skip to main content
skill Claude Code CX Codex Cursor GitHub Copilot

notion — Claude Code skill: what it does, how to install

This skill connects an agent to Notion through the ntn CLI and API, for reading and editing pages, querying data sources, and uploading files.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add openclaw/openclaw --skill notion -a claude-code
Open on GitHub

What notion does

The skill uses the official ntn CLI by default. It reads pages as Markdown, creates or updates them from text or page.md, and can move them to trash. Data-source queries support filters and sorting; ntn api handles raw API calls, including search and comments. File commands upload files and list them. The skill also supports Codex, Cursor, GitHub Copilot, Gemini CLI, and OpenCode.

Install the CLI with npm install -g ntn, then sign in with ntn login; headless scripts can use NOTION_API_TOKEN. curl is the fallback when ntn is unavailable or a direct request is clearer. Workers can be created and deployed, with run logs available; use may require a Business or Enterprise plan and workspace enablement. Install this skill if your agent needs to change Notion content. Otherwise, you can skip it.

What it helps with

  • Create a Notion page from page.md
  • Update an existing page in Markdown
  • Query a data source with a filter or sort order
  • Upload a file and list uploads
  • Search Notion through the API

Example prompts for the agent

  • Create a Notion page from `page.md`.
  • Search Notion for `roadmap` through the API.
  • Query a data source where `Done` equals `true`.

How to install notion

1Skills CLI (Vercel)

npx skills add openclaw/openclaw --skill notion -a claude-code

2Manually: put the files in place

~/.claude/skills/notion/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/notion/

From the same set45

The whole set →
summarize openclaw Runs a CLI tool to summarize or transcribe web articles, YouTube videos, podcasts, and local PDF documents directly within your AI assistant. Claude Code CX Codex Cursor +1 26,900installs weather openclaw This skill fetches current conditions and forecasts for a city, region, airport code, or coordinates. Use it to check rain and temperature or plan a trip. Claude Code CX Codex Cursor +1 9,300installs gog openclaw Guides an agent using the gog CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs. Use it when Google Workspace tasks need to run from a terminal. Claude Code CX Codex Cursor +1 8,500installs tmux openclaw Lets an agent work with live tmux sessions: read pane output, send keys and text, wait for a prompt line to show up. Claude Code CX Codex Cursor +1 8,400installs openai-whisper openclaw This skill lets your agent call the Whisper CLI to transcribe audio on your own machine. No API key needed. Claude Code CX Codex Cursor +1 7,100installs nano-pdf openclaw Edit PDF pages with plain text instructions through the nano-pdf CLI. Useful when you need to fix a typo or swap a heading without leaving your terminal. Claude Code CX Codex Cursor +1 7,100installs skill-creator openclaw A skill for writing, repairing and reviewing other skills. It splits behaviour into branches, sets the frontmatter and sorts resources into folders. Useful once your skill folder gets crowded. Claude Code CX Codex Cursor +1 6,700installs coding-agent openclaw This skill sends large coding tasks to Codex, Claude Code, or OpenCode as background workers. Use it for refactors, PR reviews, and issue-to-PR work. Claude Code CX Codex Cursor +1 6,500installs

Similar

analytics coreyhaines31 Helps design tracking plans, implement events for GA4, GTM, Mixpanel, or Segment, and audit data collection accuracy. Claude Code CX Codex Cursor +1 83,700installs gws-sheets-append official googleworkspace This skill appends rows to Google Sheets through the gws CLI. Use it when an agent needs to write structured results into a spreadsheet. Claude Code CX Codex Cursor +1 46,600installs attribution coreyhaines31 Works out which channel actually drives conversions and revenue, picks an attribution model, and reconciles numbers that disagree across tools. Claude Code CX Codex Cursor +1 38,000installs nature-data Yuan1z skill, refactored into static/dynamic layers nature-data drafts or audits manuscript data and code availability statements, dataset access routes, repository plans, and FAIR metadata. Claude Code CX Codex Cursor +1 15,300installs data-visualization official anthropics Selects chart types based on data structure and produces Python visualization code in matplotlib, seaborn, and plotly. Useful for reports and research figures. Claude Code CX Codex Cursor +1 13,700installs xlsx official anthropics Creates, reads, edits, and converts spreadsheet files. Use it when the requested deliverable is an Excel workbook or another tabular file. Claude Code Claude.ai 187,223installs google-agents-cli-observability official Google This skill guides you through tracing and monitoring AI agents, including ADK agents. Use it when you need to inspect agent execution or monitor a deployed agent. Claude Code CX Codex Cursor +1 509,900installs caveman-evidence-review JuliusBrussee A read-only skill reviews Caveman Cloud evidence on LLM spend, traces, and routing. Use it to see where a project’s model budget goes. Claude Code CX Codex Cursor +1 103,500installs

Questions about notion

How do I install the notion skill in Claude Code?

Run npx skills add openclaw/openclaw --skill notion -a claude-code.

What does the notion skill do?

It lets an agent work with Notion pages and data sources, call the API, and upload files through ntn.

Does using Workers require a particular plan?

Workers may require a Business or Enterprise plan and workspace enablement.

Source text

SKILL.md · MIT
---
name: notion
description: "Notion CLI/API for pages, Markdown content, data sources, files, comments, search, Workers, and raw API calls."
homepage: https://developers.notion.com/cli/get-started/overview
metadata:
  {
    "openclaw":
      {
        "emoji": "📝",
        "requires": { "anyBins": ["ntn", "curl"] },
        "primaryEnv": "NOTION_API_TOKEN",
        "install":
          [
            {
              "id": "node",
              "kind": "node",
              "package": "ntn",
              "bins": ["ntn"],
              "label": "Install official Notion CLI (npm)",
            },
          ],
      },
  }
---

# Notion

Prefer official `ntn` CLI. Use curl only when `ntn` is unavailable or a raw request is clearer.

## Setup

```bash
npm install -g ntn
ntn --version
ntn login
```

Script/headless auth:

```bash
export NOTION_API_TOKEN=secret_or_ntn_token
export NOTION_API_VERSION=2026-03-11
```

`ntn api` sets `Authorization` and `Notion-Version` automatically. It uses CLI login by default, or `NOTION_API_TOKEN` when set.

## Inspect

```bash
ntn doctor
ntn api ls
ntn api ls --json
ntn api v1/comments --help
ntn api v1/comments --spec -X POST
ntn api v1/comments --docs -X POST
```

## Pages

Markdown-first helpers:

```bash
ntn pages get <page-id>
ntn pages get <page-id> --json
ntn pages create --parent page:<page-id> --content '# Title\n\nBody'
ntn pages create --parent data-source:<data-source-id> < page.md
ntn pages update <page-id> --content '# Updated'
ntn pages update <page-id> < page.md
ntn pages trash <page-id> --yes
```

Notes:

- `pages get` prints Markdown with page properties as frontmatter.
- Content input: `--content`, stdin, or editor in a TTY.
- Parent refs: `page:<id>`, `database:<id>`, `data-source:<id>`.
- For properties/templates/full Pages API, use `ntn api v1/pages`.

## Data sources

```bash
ntn datasources resolve <database-id>
ntn datasources resolve <database-id> --json
ntn datasources query <data-source-id>
ntn datasources query <data-source-id> --limit 50 --json
ntn datasources query <data-source-id> --sort 'Date desc'
ntn datasources query <data-source-id> --filter '{"property":"Done","checkbox":{"equals":true}}'
```

Use `resolve` when you have a database ID. Query needs a data source ID.

## Raw API

```bash
ntn api v1/users/me
ntn api v1/search query=roadmap page_size:=10
ntn api v1/pages 'parent[data_source_id]='"$DS_ID" 'properties[Name][title][0][text][content]=New item'
ntn api "v1/pages/$PAGE_ID" -X PATCH in_trash:=true
ntn api "v1/blocks/$PAGE_ID/children" -X PATCH \
  'children[0][type]=paragraph' \
  'children[0][paragraph][rich_text][0][text][content]=Hello'
```

Input syntax:

- `path=value`: string body field.
- `path:=json`: typed JSON body field.
- `name==value`: query parameter.
- `Header:Value`: request header.
- `--data '<json>'` or stdin JSON for larger bodies.
- Only one body source per request.

## Files

```bash
ntn files create < image.png
ntn files create --filename photo.png --content-type image/png < /tmp/photo
ntn files create --external-url https://example.com/photo.png
ntn files get <upload-id>
ntn files list
```

## Workers

```bash
ntn workers new
ntn workers deploy
ntn workers list --json
ntn workers runs list --json
ntn workers runs logs <run-id>
```

Workers may require Business/Enterprise plan and workspace enablement.

## Curl fallback

```bash
curl -sS "https://api.notion.com/v1/users/me" \
  -H "Authorization: Bearer $NOTION_API_TOKEN" \
  -H "Notion-Version: 2026-03-11" \
  -H "Content-Type: application/json"
```

## Version notes

- Current latest API version: `2026-03-11`.
- Use `in_trash`, not `archived`.
- Append block positioning uses `position`, not flat `after`.
- `transcription` block renamed to `meeting_notes`.
- Databases can contain multiple data sources; page parents generally use `data_source_id`.

© openclaw · MIT · openclaw/openclaw

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor