@6missedcalls/notion-cli
v0.1.4
Published
Fast Notion CLI for pages, databases, and blocks
Downloads
29
Maintainers
Readme
notion-cli
Fast Notion CLI for pages, databases, and blocks.
Created for use by Openclaw.
Install
npm install -g @6missedcalls/notion-cliSetup
export NOTION_API_KEY="secret_xxx"Get your API key from https://www.notion.so/my-integrations
Usage
Pages
# Get a page
notion page get <page-id>
# Create a page
notion page create --parent <page-id> --title "My Page"
# Create in database
notion page create --parent <db-id> --title "Entry" --database
# Archive
notion page archive <page-id>Blocks
# Get block children
notion block children <page-id>
# Append blocks from JSON file
notion block append <page-id> --json blocks.json
# Append from stdin
echo '[{"type":"paragraph","paragraph":{"rich_text":[{"type":"text","text":{"content":"Hello"}}]}}]' | notion block append <page-id> --stdin
# Delete
notion block delete <block-id>Databases
# Get database schema
notion db get <database-id>
# Query with filter
notion db query <database-id> --filter '{"property":"Status","select":{"equals":"Done"}}'Search
# Search everything
notion search "query"
# Search only pages
notion search "query" --filter page
# Search only databases
notion search --filter databasePush (Markdown/JSON)
# Push markdown file to page
notion push README.md --parent <page-id>
# Push JSON blocks
notion push blocks.json --parent <page-id>
# Push from stdin
cat notes.md | notion push --stdin --parent <page-id>
# Create new page and push content
notion push content.md --parent <page-id> --title "New Page"Options
All commands support:
--json- Output as JSON--quiet- Suppress non-error output
Library Usage
import { NotionClient, markdownToBlocks } from '@6missedcalls/notion-cli';
const client = new NotionClient({ apiKey: process.env.NOTION_API_KEY });
// Push markdown
const blocks = markdownToBlocks('# Hello\n\nWorld');
await client.appendBlocks(pageId, blocks);License
MIT
