Skip to content
Agentmart
Submit a tool

notion

Notion workspace — read/write pages, databases, search, create tasks via Notion API

Skill by ariffazil

IndexedAGPL-3.0★ 54
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/ariffazil-notion

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Notion workspace — read/write pages, databases, search, create tasks via Notion API

Use cases: backend, writing, productivity

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/notion

What's inside

Skill name
notion
Description
Notion workspace — read/write pages, databases, search, create tasks via Notion API
License
AGPL-3.0
Instructions
211 lines in SKILL.md · view on GitHub

Before installing

  • Instructions call the network

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Notion Skill — arifOS_bot

Triggers: "notion", "note", "add to notion", "search notion", "create page",
          "update notion", "notion database", "my notes", "add task to notion",
          "notion doc", "write to notion"

API: `https://api.notion.com/v1` | Auth: `NOTION_API_KEY` (Integration Token)

---

## ⚙️ One-Time Setup (do once, then forget)

**Status: NOTION_API_KEY not yet configured.**

1. Go to: https://www.notion.so/my-integrations
2. Click **"New integration"** → name it `arifOS_bot`
3. Select your workspace → Submit → Copy the **Internal Integration Token** (`secret_...`)
4. Add the token to VPS:
   ```bash
   # On VPS host:
   echo 'NOTION_API_KEY=secret_YOUR_TOKEN_HERE' >> /root/arifOS/.env
   docker compose up -d --force-recreate openclaw
   ```
5. **Share pages with the integration**: Open any Notion page → **Share** → invite `arifOS_bot`

After setup, test:
```bash
curl -s https://api.notion.com/v1/users/me \
  -H "Authorization: Bearer ${NOTION_API_KEY}" \
  -H "Notion-Version: 2022-06-28" | python3 -m json.tool
```

---

## Search

```bash
# Search across your Notion workspace
curl -s -X POST https://api.notion.com/v1/search \
  -H "Authorization: Bearer ${NOTION_API_KEY}" \
  -H "Notion-Version: 2022-06-28" \
  -H "Content-Type: application/json" \
  -d '{"query":"YOUR SEARCH TERM","page_size":10}' \
  | python3 -c "
import sys, json
d = json.load(sys.stdin)
for r in d.get('results',[]):
    title = ''
    if r['object'] == 'page':
        props = r.get('properties',{})
        for k,v in props.items():
            if v.get('type') == 'title':
                title = ''.join([t['plain_text'] for t in v['title']])
                break
    elif r['object'] == 'database':
        title = ''.join([t['plain_text'] for t in r.get('title',[])])
    print(f\"{r['object']}: {title} — {r['id']}\")
"
```

---

## Read a Page

```bash
PAGE_ID="YOUR-PAGE-ID-HERE"  # from URL: notion.so/PAGE_ID

# Get page metadata
curl -s https://api.notion.com/v1/pages/${PAGE_ID} \
  -H "Authorization: Bearer ${NOTION_API_KEY}" \
  -H "Notion-Version: 2022-06-28" | python3 -m json.tool

# Get page content (blocks)
curl -s https://api.notion.com/v1/blocks/${PAGE_ID}/children \
  -H "Authorization: Bearer ${NOTION_API_KEY}" \
  -H "Notion-Version: 2022-06-28" \
  | python3 -c "
import sys, json
d = json.load(sys.stdin)
for block in d.get('results', []):
    bt = block['type']
    content = block.get(bt, {})
    text = ''.join([t.get('plain_text','') for t in content.get('rich_text',[])])
    if text: print(f'[{bt}] {text}')
"
```

---

## Create a Page

```bash
PARENT_PAGE_ID="YOUR-PARENT-PAGE-ID"

curl -s -X POST https://api.notion.com/v1/pages \
  -H "Authorization: Bearer ${NOTION_API_KEY}" \
  -H "Notion-Version: 2022-06-28" \
  -H "Content-Type: application/json" \
  -d "{
    \"parent\": {\"page_id\": \"${PARENT_PAGE_ID}\"},
    \"properties\": {
      \"title\": {\"title\": [{\"text\": {\"content\": \"YOUR TITLE HERE\"}}]}
    },
    \"children\": [
      {
        \"object\": \"block\",
        \"type\": \"paragraph\",
        \"paragraph\": {
          \"rich_text\": [{\"type\": \"text\", \"text\": {\"content\": \"Page content here.\"}}]
        }
      }
    ]
  }" | python3 -c "import sys,json; d=json.load(sys.stdin); print('Created:', d.get('id'), d.get('url'))"
```

---

## Append to Existing Page

From ariffazil/arifOS, AGPL-3.0.

More from ariffazil/arifOS

Compare and alternatives

    Featured in

    Signals

    Stars
    54
    Forks
    9
    Open issues
    3
    Contributors
    98
    Last commit (this folder)
    May 11, 2026 (5 months ago)
    Last release
    Oct 17, 2026 (10 days ago)

    From GitHub (fetched Oct 24, 2026).

    Details

    License
    AGPL-3.0
    First seen
    Oct 24, 2026
    Last checked
    Oct 24, 2026

    More from ariffazil

    Cite this page

    notion skill. Agent Mart. https://agentmart.dev/skills/ariffazil-notion (last updated 2026-10-24)