mmk-notion-page
Manage Notion pages — invite, revoke, publish, unpublish, config, publish-settings, duplicate, list-published, markdown, transcript, get, update. Triggers on "invite to page", "revoke access", "publish page", "unpublish", "page config", "full width", "publish settings", "duplicate page", "list published", "page markdown", "page transcript", "meeting transcript", "get page", "page by id", "update page", "archive page", "lock page", "erase page".
MMK Notion — Page Commands
Prerequisite: Read
../mmk-shared/SKILL.mdfor auth, global flags, and error handling. Parent:mmk-notion
Always use -o json when parsing results or composing with other commands.
invite — Invite a user to a page
mmk notion page invite --email <email> --role <role> --block-id <page-id-or-url> -o json
Required: --email, --role, --block-id
Available roles:
| Role | Access Level | Works With |
|---|---|---|
editor | Full access — edit structure, content, manage permissions | Pages & Databases |
read_and_write | Can edit — modify content | Pages & Databases |
content_only_editor | Can edit content — edit rows but not DB structure | Databases only |
comment_only | Can comment — view and add comments only | Pages & Databases |
reader | Can view — read-only | Pages & Databases |
revoke — Revoke a user's access to a page
mmk notion page revoke --email <email> --block-id <page-id-or-url> -o json
Required: --email, --block-id
publish — Publish a page to the web
mmk notion page publish --block-id <page-id-or-url> -o json
Required: --block-id
Returns public URL on success. Returns 409 if already published (not an error — returns existing public URL).
unpublish — Unpublish a page from the web
mmk notion page unpublish --block-id <page-id-or-url> -o json
Required: --block-id
Returns 409 if already private (not an error).
config — Configure page display settings
mmk notion page config --block-id <page-id> --full-width -o json
mmk notion page config --block-id id1 --block-id id2 --small-text=false -o json
Required: --block-id (string slice — supports multiple pages)
At least one of: --full-width (bool), --small-text (bool)
publish-settings — Update publish settings for a published page
mmk notion page publish-settings --block-id <id> --allow-duplicate=false -o json
mmk notion page publish-settings --block-id <id> --seo-title "Title" --slug "my-page" -o json
Required: --block-id
At least one of: --allow-duplicate (bool), --search-engine-index (bool), --seo-title, --seo-description, --social-image, --slug
duplicate — Duplicate a page into a parent page
mmk notion page duplicate --source-id <page-id> --parent-id <parent-id> -o json
Required: --source-id, --parent-id
list-published — List all published pages in the workspace
mmk notion page list-published -o json
mmk notion page list-published --type forms -o json
Optional: --type — sites (default), forms, or links
markdown — Retrieve a Notion page as cleaned markdown
mmk notion page markdown <page_id> -o json
Required: <page_id> (positional)
get — Get a page by ID
mmk notion page get <page_id> -o json
Required: <page_id> (positional — accepts UUID or full Notion URL)
transcript — Get meeting note transcript, summary, and notes from a page
mmk notion page transcript <page_id> -o json
mmk notion page transcript <page_id> --include summary,notes -o json
Required: <page_id> (positional)
Optional: --include — sections to include: summary, notes, transcript (comma-separated, default: all)
update — Update a Notion page (archive, trash, lock, erase content)
mmk notion page update <page_id> --archive -o json
mmk notion page update <page_id> --lock -o json
mmk notion page update <page_id> --erase-content --yes -o json
mmk notion page update <page_id> --data '{"properties": {...}}' -o json
Required: <page_id> (positional)
Optional flags:
| Flag | Description |
|---|---|
--archive | Archive the page |
--unarchive | Unarchive the page |
--trash | Move page to trash |
--restore | Restore page from trash |
--lock | Lock page editing |
--unlock | Unlock page editing |
--erase-content | Erase all page content (DESTRUCTIVE, cannot be undone) |
--data | Raw JSON request body (Notion API format) |
-y, --yes | Skip confirmation for destructive operations |
WARNING: --erase-content permanently deletes all page content and cannot be undone via API.
update-markdown — Update a page's content using markdown
mmk notion page update-markdown <page_id> --markdown "# New Content" -o json
mmk notion page update-markdown <page_id> --append "## Appended Section" -o json
mmk notion page update-markdown <page_id> --replace "# Replaced Content" --timezone "Asia/Seoul" -o json
Required: <page_id> (positional), one of --markdown, --append, or --replace
Optional flags:
| Flag | Description |
|---|---|
--markdown | Full markdown content (replaces all existing content) |
--append | Markdown to append to existing content |
--replace | Markdown to replace all content (uses replace_content operation) |
--timezone | Timezone for date-related content (e.g. Asia/Seoul) |
Tips
--block-idaccepts both raw UUIDs and full Notion URLs — the CLI extracts the ID automatically- For bulk operations, run commands sequentially and check each result
- Page invite errors for non-Notion users indicate the email is not associated with a Notion account — consider using the
mmk-notion-onboardskill for automatic email fallback
See Also
- mmk-shared — Auth, global flags, error handling
- mmk-notion — All Notion commands overview
- mmk-notion-workspace — Workspace invite and remove
- mmk-notion-people — List members, guest page access