---
name: notion-writer
description: |
  Markdown to Notion page writer with database row creation support.
  Triggers: write to Notion, export to Notion, push content, create Notion page.
---

# Notion Writer Skill

Push markdown content to Notion pages or databases via Claude Code.

## Prerequisites

- Python virtual environment at `~/Project/our-claude-skills/custom-skills/02-notion-writer/code/scripts/venv`
- Notion API key configured in `.env` file
- Target pages/databases must be shared with the integration

## Quick Start

```bash
cd ~/Project/our-claude-skills/custom-skills/02-notion-writer/code/scripts
source venv/bin/activate
```

## Commands

### Test Connection
```bash
python notion_writer.py --test
```

### List Accessible Content
```bash
python notion_writer.py --list
python notion_writer.py --list --filter pages
python notion_writer.py --list --filter databases
```

### Get Page/Database Info
```bash
python notion_writer.py -p PAGE_URL --info
python notion_writer.py -d DATABASE_URL --info
```

### Write to Page
```bash
# Append content
python notion_writer.py -p PAGE_URL -f content.md

# Replace content
python notion_writer.py -p PAGE_URL -f content.md --replace

# From stdin
cat report.md | python notion_writer.py -p PAGE_URL --stdin
```

### Create Database Row
```bash
python notion_writer.py -d DATABASE_URL -t "Entry Title" -f content.md
```

## Supported Markdown

| Markdown | Notion Block |
|----------|--------------|
| `# Heading` | Heading 1 |
| `## Heading` | Heading 2 |
| `### Heading` | Heading 3 |
| `- item` | Bulleted list |
| `1. item` | Numbered list |
| `- [ ] task` | To-do (unchecked) |
| `- [x] task` | To-do (checked) |
| `> quote` | Quote |
| `` ```code``` `` | Code block |
| `---` | Divider |
| Paragraphs | Paragraph |

## Workflow Example

Integrate with Jamie YouTube Manager to log video info:
```bash
# Check video and save to markdown
python jamie_youtube_api_test.py VIDEO_URL

# Write to Notion
python notion_writer.py -p LOG_PAGE_URL -f output/video_status.md
```
