notion

Create pages, search content, and manage Notion workspaces. Use when asked to create Notion pages, search Notion, add content to pages, or fetch Notion data.

9 stars

Best use case

notion is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Create pages, search content, and manage Notion workspaces. Use when asked to create Notion pages, search Notion, add content to pages, or fetch Notion data.

Teams using notion should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/notion/SKILL.md --create-dirs "https://raw.githubusercontent.com/orthogonal-sh/skills/main/skills/notion/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/notion/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How notion Compares

Feature / AgentnotionStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Create pages, search content, and manage Notion workspaces. Use when asked to create Notion pages, search Notion, add content to pages, or fetch Notion data.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Notion

Create pages, search content, fetch data, and add content to your Notion workspace. Connect your Notion account to manage pages, databases, and content programmatically.

## Requirements

- Install the `orth` CLI
- Connect your Notion workspace at https://orthogonal.com/dashboard/integrations
- OAuth connection must be active (HTTP 428 response means not connected)

## Actions

### Create Page

Create a new page in your Notion workspace.

```bash
orth run notion /create-page --body '{
  "title": "Meeting Notes",
  "parent_id": "parent-page-or-database-id"
}'
```

**Parameters:**
- `title` (required) - Page title
- `parent_id` (required) - Parent page or database ID where page will be created
- `icon` - Page icon (emoji or external URL)
- `cover` - Cover image URL for the page

### Search

Search for pages and databases in your Notion workspace.

```bash
orth run notion /search --body '{
  "query": "meeting notes",
  "filter_value": "page"
}'
```

**Parameters:**
- `query` - Search query text
- `filter_value` - Filter results by type (page, database)
- `direction` - Sort direction (ascending, descending)
- `timestamp` - Property to sort by timestamp
- `page_size` - Number of results per page
- `start_cursor` - Cursor for pagination
- `filter_property` - Property to filter by

### Fetch Data

Retrieve pages and databases from your Notion workspace.

```bash
orth run notion /fetch-data --body '{
  "get_pages": true,
  "page_size": 20
}'
```

**Parameters:**
- `query` - Optional search query
- `get_pages` - Retrieve pages (only one of get_pages, get_databases, get_all can be true)
- `get_databases` - Retrieve databases (only one of get_pages, get_databases, get_all can be true)
- `get_all` - Retrieve both pages and databases (only one of get_pages, get_databases, get_all can be true)
- `page_size` - Number of items per page

### Add Content

Add content blocks to an existing Notion page.

```bash
orth run notion /add-content --body '{
  "parent_block_id": "page-block-id",
  "content_blocks": [
    {"type": "paragraph", "text": "This is a paragraph with **markdown** support."},
    {"type": "heading_1", "text": "Main Heading"}
  ]
}'
```

**Parameters:**
- `parent_block_id` (required) - ID of the parent block/page to add content to
- `content_blocks` (required) - Array of content blocks to add (supports markdown)
- `after` - Insert content after specific block ID

## Usage Examples

**Create a new project page:**
```bash
orth run notion /create-page -b '{"title":"Q1 Project Plan","parent_id":"abc123-def456-ghi789","icon":"📋"}'
```

**Search for meeting notes:**
```bash
orth run notion /search -b '{"query":"team meeting","filter_value":"page","page_size":10}'
```

**Get all pages:**
```bash
orth run notion /fetch-data -b '{"get_pages":true,"page_size":50}'
```

**Get all databases:**
```bash
orth run notion /fetch-data -b '{"get_databases":true}'
```

**Add structured content:**
```bash
orth run notion /add-content -b '{"parent_block_id":"page123","content_blocks":[{"type":"heading_2","text":"Action Items"},{"type":"paragraph","text":"- Complete user testing\n- Update documentation\n- Schedule follow-up meeting"}]}'
```

**Add content with markdown:**
```bash
orth run notion /add-content -b '{"parent_block_id":"page456","content_blocks":[{"type":"paragraph","text":"This **important** note has [a link](https://example.com) and `inline code`."}]}'
```

## Content Block Types

When adding content, you can use these block types:
- `paragraph` - Regular text paragraph
- `heading_1` - Main heading (H1)
- `heading_2` - Section heading (H2)
- `heading_3` - Subsection heading (H3)
- `bulleted_list_item` - Bullet point
- `numbered_list_item` - Numbered list item
- `to_do` - Checkbox item
- `code` - Code block
- `quote` - Block quote

## Error Handling

- **HTTP 428** - Notion integration not connected. Visit https://orthogonal.com/dashboard/integrations to connect your workspace
- **400 Bad Request** - Invalid parameters or malformed content blocks
- **401 Unauthorized** - Invalid or expired Notion token
- **403 Forbidden** - Insufficient permissions for page or database
- **404 Not Found** - Page, database, or block does not exist
- **429 Rate Limited** - Notion API rate limit exceeded
- **validation_error** - Invalid block content or structure

## Tips

- Get parent_id from existing pages by using the search or fetch-data actions
- Page IDs can be found in the URL when viewing a page in Notion
- Content blocks support markdown formatting (bold, italic, links, code)
- Use only one of get_pages, get_databases, or get_all in fetch-data
- Icons can be emoji characters or external image URLs
- Search is case-insensitive and searches titles and content
- Pagination uses start_cursor from previous responses
- Block IDs are returned when creating pages or adding content

Related Skills

yt-dlp-downloader

9
from orthogonal-sh/skills

Download videos from YouTube, Bilibili, Twitter, and thousands of other sites using yt-dlp. Use when the user provides a video URL and wants to download it, extract audio (MP3), download subtitles, or select video quality. Triggers on phrases like "下载视频", "download video", "yt-dlp", "YouTube", "B站", "抖音", "提取音频", "extract audio".

slack

9
from orthogonal-sh/skills

Send messages and manage Slack channels. Use when asked to send Slack messages, post to channels, list channels, or fetch message history.

yc-batch-evaluator

9
from orthogonal-sh/skills

Evaluate YC batch companies for investment — scrapes the YC directory, researches each company and its founders (work history, LinkedIn, website), assesses founder-company fit, and exports to Google Sheets with priority rankings. Use when asked to evaluate YC companies, research a YC batch, screen startups, or do due diligence on YC companies.

website-screenshot

9
from orthogonal-sh/skills

Take screenshots of websites and web pages

weather

9
from orthogonal-sh/skills

Get current weather and forecasts using free APIs (no API key required). Use when asked about weather, temperature, forecasts, or climate conditions for any location.

weather-forecast

9
from orthogonal-sh/skills

Get weather forecasts - temperature, precipitation, wind, and conditions

vhs-terminal-recordings

9
from orthogonal-sh/skills

Create polished terminal GIF recordings using VHS (Video Hardware Software) by Charmbracelet. Use when asked to create terminal demos, CLI gifs, command-line recordings, or animated terminal screenshots for documentation, READMEs, or marketing.

verify-email

9
from orthogonal-sh/skills

Verify if an email address is valid and deliverable

valyu

9
from orthogonal-sh/skills

Web search, AI answers, content extraction, and async deep research

uptime-monitor

9
from orthogonal-sh/skills

Monitor website uptime - check availability, response times, and status

twitter-profile-lookup

9
from orthogonal-sh/skills

Look up Twitter/X profiles - get bio, followers, tweets, and engagement

tomba

9
from orthogonal-sh/skills

Email finder and verifier - find emails from domains, LinkedIn, or company search