Notion Skill — arifOSbot
SkillSearchNotion workspace, read/write pages, databases, search, create tasks via Notion API
Then ask your AI: use the Notion Skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Add it as a step in a pipeline you build on Ahel, or connect Ahel to Claude, ChatGPT, Cursor, Claude Code or Codex and ask your AI to use it.
What this skill tells your AI
The instructions your AI receives, as published by ariffazil/arifos in skills/notion/SKILL.md and read by Ahel’s review.
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.
- Go to: https://www.notion.so/my-integrations
- Click "New integration" → name it
arifOS_bot - Select your workspace → Submit → Copy the Internal Integration Token (
secret_...) - Add the token to VPS:
# On VPS host: echo 'NOTION_API_KEY=secret_YOUR_TOKEN_HERE' >> /root/arifOS/.env docker compose up -d --force-recreate openclaw - Share pages with the integration: Open any Notion page → Share → invite
arifOS_bot
After setup, test:
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
# 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
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
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
PAGE_ID="YOUR-PAGE-ID"
CONTENT="New content to append"
curl -s -X PATCH "https://api.notion.com/v1/blocks/${PAGE_ID}/children" \
-H "Authorization: Bearer ${NOTION_API_KEY}" \
-H "Notion-Version: 2022-06-28" \
-H "Content-Type: application/json" \
-d "{
\"children\": [
{
\"object\": \"block\",
\"type\": \"paragraph\",
\"paragraph\": {
\"rich_text\": [{\"type\": \"text\", \"text\": {\"content\": \"${CONTENT}\"}}]
}
}
]
}" | python3 -c "import sys,json; d=json.load(sys.stdin); print('Appended:', len(d.get('results',[])),'blocks')"
Database — Query & Add Rows
DB_ID="YOUR-DATABASE-ID"
# Query database rows
curl -s -X POST "https://api.notion.com/v1/databases/${DB_ID}/query" \
-H "Authorization: Bearer ${NOTION_API_KEY}" \
-H "Notion-Version: 2022-06-28" \
-H "Content-Type: application/json" \
-d '{"page_size": 20}' \
| python3 -c "
import sys, json
d = json.load(sys.stdin)
print(f'Total rows: {len(d[\"results\"])}')
for row in d['results'][:5]:
props = row['properties']
for k, v in props.items():
if v.get('type') == 'title':
title = ''.join([t['plain_text'] for t in v['title']])
print(f' - {title}')
"
# Add a row to database (adjust property names to match your DB schema)
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\": {\"database_id\": \"${DB_ID}\"},
\"properties\": {
\"Name\": {\"title\": [{\"text\": {\"content\": \"New Task\"}}]},
\"Status\": {\"select\": {\"name\": \"Todo\"}}
}
}" | python3 -c "import sys,json; d=json.load(sys.stdin); print('Row created:', d.get('id'))"
Quick Shortcuts
# List all databases you have access to
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 '{"filter":{"value":"database","property":"object"}}' \
| python3 -c "
import sys, json
d = json.load(sys.stdin)
for db in d['results']:
title = ''.join([t['plain_text'] for t in db.get('title',[])])
print(f'{title}: {db[\"id\"]}')
"
arifOS_bot → Notion Pipeline
When Arif says "log this to Notion" or "save this decision to Notion":
- Search for the target page/database by name
- Append content with timestamp and source tag
- Log to
~/.openclaw/workspace/logs/audit.jsonl
arifOS_bot — Notion API v2022-06-28
Signals
- GitHub stars
- 53
- Forks
- 9
- Last commit
- Oct 2026
Ahel review
S4info
community integration, published by ariffazil, not notion
Automated review, not a security audit. Ruleset v1+k2.
Advanced
- Item type
- skill
- Key
notion-ariffazil- Source
- github.com/ariffazil/arifos
Related picks
Skill · openai
The pick for Notionnotion-spec-to-implementation
Skill · davila7
The pick for Notionnotion-databases
Skill · devin-axis
The pick for Notiondocker-agent-run
Skill · docker
The pick for Dockerendly-docker
Skill · viant
The pick for Dockernotion-api
Skill · intellectronica
The pick for Notion