pi-notion
v1.2.0
Published
Notion integration for Pi Coding Agent — search, fetch, create, and update Notion pages as Markdown with a TUI config editor
Maintainers
Readme
pi-notion
Notion integration for Pi Coding Agent — search, fetch, create, and update Notion pages as Markdown.
Installation
pi install npm:pi-notionFeatures
Tools
| Tool | Description |
|------|-------------|
| notion_search | Search pages and databases by title |
| notion_fetch | Fetch a page by ID, convert blocks to Markdown, save as .md |
| notion_create | Create a new page from Markdown content |
| notion_update | Replace a page's content with new Markdown |
| notion_databases | List or query Notion databases |
TUI Config Editor
Run /notion-config inside Pi to interactively set your API token and options — no JSON editing needed.
Bi-directional Markdown ↔ Notion Blocks
- Notion → Markdown: Headings, lists, code blocks, tables, callouts, toggles, images, bookmarks, equations, and more
- Markdown → Notion: Headings, lists, code blocks, quotes, checkboxes, images, dividers
- YAML frontmatter with page metadata (ID, URL, timestamps)
Configuration
Credentials are loaded from (in priority order):
.pi/notion.json(project-local)~/.pi/agent/notion.json(global)- Environment variables:
NOTION_API_TOKEN,NOTION_OUTPUT_DIR
Config format
{
"apiToken": "ntn_xxxxx",
"outputDir": "./notion-docs",
"notionVersion": "2022-06-28"
}You can reference environment variables with the ENV: prefix:
{
"apiToken": "ENV:NOTION_API_TOKEN",
"outputDir": "./notion-docs"
}Setup
- Create an integration at https://www.notion.so/my-integrations
- Copy the Internal Integration Secret (
ntn_...) - Share pages/databases with your integration in Notion (⋯ → Connections → Add)
- Run
/notion-configin Pi or create the config file manually
Usage Examples
> Search my workspace for API docs
→ notion_search query="API docs"
> Download the onboarding guide
→ notion_fetch pageId="abc123-def456"
> Create a meeting notes page
→ notion_create parentPageId="..." title="Sprint Review 2025-03" content="## Highlights\n- ..."
> Update the runbook
→ notion_update pageId="..." content="## Updated Runbook\n..."
> List all databases
→ notion_databases action="list"
> Query a task tracker
→ notion_databases action="query" databaseId="..."License
MIT
