{
  "schemaVersion": "1.0",
  "item": {
    "slug": "notioncli",
    "name": "Notion",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/JordanCoin/notioncli",
    "canonicalUrl": "https://clawhub.ai/JordanCoin/notioncli",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/notioncli",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=notioncli",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "install.sh",
      "marketplace.json"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "notioncli",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T12:01:43.522Z",
      "expiresAt": "2026-05-07T12:01:43.522Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=notioncli",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=notioncli",
        "contentDisposition": "attachment; filename=\"notioncli-0.1.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "notioncli"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/notioncli"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/notioncli",
    "agentPageUrl": "https://openagent3.xyz/skills/notioncli/agent",
    "manifestUrl": "https://openagent3.xyz/skills/notioncli/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/notioncli/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "notioncli — Notion API Skill",
        "body": "A powerful CLI for the Notion API. Query databases, manage pages, add comments, and automate your workspace from the terminal. Built for AI agents and humans alike."
      },
      {
        "title": "Setup",
        "body": "npm install -g notioncli\nnotion init --key $NOTION_API_KEY\n\nThe init command saves your API key and auto-discovers all databases shared with your integration. Each database gets an alias (a short slug derived from the database title) so you never need to type raw UUIDs.\n\nTip: In Notion, you must share each database with your integration first: open the database → ••• menu → Connections → Add your integration."
      },
      {
        "title": "Auto-Aliases",
        "body": "When you run notion init, every shared database is automatically assigned a slug alias:\n\nFound 3 databases:\n\n  ✅ projects                   → Projects\n  ✅ tasks                      → Tasks  \n  ✅ reading-list               → Reading List\n\nYou can then use projects instead of a1b2c3d4-e5f6-... everywhere. Manage aliases manually with:\n\nnotion alias list                  # Show all aliases\nnotion alias add mydb <db-id>     # Add a custom alias\nnotion alias rename old new        # Rename an alias\nnotion alias remove mydb           # Remove an alias"
      },
      {
        "title": "Database Discovery",
        "body": "notion dbs                         # List all databases shared with your integration\nnotion alias list                  # Show configured aliases with IDs"
      },
      {
        "title": "Querying Data",
        "body": "notion query tasks                                     # Query all rows\nnotion query tasks --filter Status=Active              # Filter by property\nnotion query tasks --sort Date:desc                    # Sort results\nnotion query tasks --filter Status=Active --limit 10   # Combine options\nnotion query tasks --output csv                        # CSV output\nnotion query tasks --output yaml                       # YAML output\nnotion query tasks --output json                       # JSON output\nnotion --json query tasks                              # JSON (shorthand)\n\nOutput formats:\n\ntable — formatted ASCII table (default)\ncsv — header row + comma-separated values\njson — full API response as JSON\nyaml — simple key/value YAML format"
      },
      {
        "title": "Creating Pages",
        "body": "notion add tasks --prop \"Name=Buy groceries\" --prop \"Status=Todo\"\nnotion add projects --prop \"Name=New Feature\" --prop \"Priority=High\" --prop \"Due=2026-03-01\"\n\nMultiple --prop flags for multiple properties. Property names are case-insensitive and matched against the database schema."
      },
      {
        "title": "Updating Pages",
        "body": "By page ID:\n\nnotion update <page-id> --prop \"Status=Done\"\nnotion update <page-id> --prop \"Priority=Low\" --prop \"Notes=Updated by CLI\"\n\nBy alias + filter (zero UUIDs):\n\nnotion update tasks --filter \"Name=Ship feature\" --prop \"Status=Done\"\nnotion update workouts --filter \"Name=LEGS #5\" --prop \"Notes=Great session\""
      },
      {
        "title": "Reading Pages & Content",
        "body": "By page ID:\n\nnotion get <page-id>               # Page properties\nnotion blocks <page-id>            # Page content (headings, text, lists, etc.)\n\nBy alias + filter:\n\nnotion get tasks --filter \"Name=Ship feature\"\nnotion blocks tasks --filter \"Name=Ship feature\""
      },
      {
        "title": "Deleting (Archiving) Pages",
        "body": "notion delete <page-id>                              # By page ID\nnotion delete tasks --filter \"Name=Old task\"         # By alias + filter\nnotion delete workouts --filter \"Date=2026-02-09\"    # By alias + filter"
      },
      {
        "title": "Relations & Rollups",
        "body": "notion relations tasks --filter \"Name=Ship feature\"           # See linked pages with titles\nnotion relations projects --filter \"Name=Launch CLI\"          # Explore connections\n\nRelations are automatically resolved to page titles in get output. Rollups are parsed into numbers, dates, or arrays instead of raw JSON."
      },
      {
        "title": "Blocks CRUD",
        "body": "notion blocks tasks --filter \"Name=Ship feature\"              # View page content\nnotion blocks tasks --filter \"Name=Ship feature\" --ids        # View with block IDs\nnotion append tasks \"New paragraph\" --filter \"Name=Ship feature\"  # Append block\nnotion block-edit <block-id> \"Updated text\"                   # Edit a block\nnotion block-delete <block-id>                                # Delete a block\n\nUse --ids to get block IDs, then target specific blocks with block-edit or block-delete."
      },
      {
        "title": "Appending Content",
        "body": "notion append <page-id> \"Meeting notes: discussed Q2 roadmap\"\nnotion append tasks \"Status update: phase 1 complete\" --filter \"Name=Ship feature\"\n\nAppends a paragraph block to the page."
      },
      {
        "title": "Users",
        "body": "notion users                       # List all workspace users\nnotion user <user-id>              # Get details for a specific user"
      },
      {
        "title": "Comments",
        "body": "notion comments <page-id>                                      # By page ID\nnotion comments tasks --filter \"Name=Ship feature\"             # By alias + filter\nnotion comment <page-id> \"Looks good, shipping this!\"          # By page ID\nnotion comment tasks \"AI review complete ✅\" --filter \"Name=Ship feature\"  # By alias + filter"
      },
      {
        "title": "Page Inspector",
        "body": "notion props tasks --filter \"Name=Ship feature\"    # Quick property dump\nnotion me                                          # Show bot identity and owner"
      },
      {
        "title": "Database Management",
        "body": "notion db-create <parent-page-id> \"New DB\" --prop \"Name:title\" --prop \"Status:select\"\nnotion db-update tasks --add-prop \"Rating:number\"      # Add a column\nnotion db-update tasks --remove-prop \"Old Column\"      # Remove a column\nnotion db-update tasks --title \"Renamed DB\"            # Rename database\nnotion templates tasks                                 # List page templates"
      },
      {
        "title": "Moving Pages",
        "body": "notion move tasks --filter \"Name=Done task\" --to archive     # Move by alias\nnotion move tasks --filter \"Name=Done task\" --to <page-id>   # Move to page"
      },
      {
        "title": "File Uploads",
        "body": "notion upload tasks --filter \"Name=Ship feature\" ./report.pdf\nnotion upload <page-id> ./screenshot.png\n\nSupports images, PDFs, text files, documents. MIME types auto-detected from extension."
      },
      {
        "title": "Search",
        "body": "notion search \"quarterly report\"   # Search across all pages and databases"
      },
      {
        "title": "JSON Output",
        "body": "Add --json before any command to get the raw Notion API response:\n\nnotion --json query tasks\nnotion --json get <page-id>\nnotion --json users\nnotion --json comments <page-id>"
      },
      {
        "title": "1. Discover available databases",
        "body": "notion dbs\nnotion alias list"
      },
      {
        "title": "2. Query and filter data",
        "body": "notion query tasks --filter Status=Active --sort Date:desc\nnotion --json query tasks --filter Status=Active    # Parse JSON programmatically\nnotion query tasks --output csv                     # CSV for spreadsheet tools"
      },
      {
        "title": "3. Create a new entry",
        "body": "notion add tasks --prop \"Name=Review PR #42\" --prop \"Status=Todo\" --prop \"Priority=High\""
      },
      {
        "title": "4. Update an existing entry (zero UUIDs)",
        "body": "# By alias + filter — no page ID needed\nnotion update tasks --filter \"Name=Review PR #42\" --prop \"Status=Done\"\n\n# Or by page ID if you already have it\nnotion update <page-id> --prop \"Status=Done\""
      },
      {
        "title": "5. Read page content (zero UUIDs)",
        "body": "# By alias + filter\nnotion get tasks --filter \"Name=Review PR #42\"\nnotion blocks tasks --filter \"Name=Review PR #42\"\n\n# Or by page ID\nnotion get <page-id>\nnotion blocks <page-id>"
      },
      {
        "title": "6. Append notes to a page",
        "body": "notion append tasks \"Status update: completed phase 1\" --filter \"Name=Review PR #42\"\nnotion append <page-id> \"Status update: completed phase 1\""
      },
      {
        "title": "7. Collaborate with comments",
        "body": "notion comments tasks --filter \"Name=Review PR #42\"              # Check existing\nnotion comment tasks \"AI review complete ✅\" --filter \"Name=Review PR #42\"  # Add comment\n\n# Or by page ID\nnotion comments <page-id>\nnotion comment <page-id> \"AI review complete ✅\""
      },
      {
        "title": "8. Delete by alias + filter",
        "body": "notion delete tasks --filter \"Name=Old task\"\nnotion delete workouts --filter \"Date=2026-02-09\""
      },
      {
        "title": "9. Manage database schema",
        "body": "notion db-update tasks --add-prop \"Priority:select\"    # Add column\nnotion db-update tasks --remove-prop \"Old Field\"       # Remove column\nnotion db-create <parent-page-id> \"New DB\" --prop \"Name:title\" --prop \"Status:select\""
      },
      {
        "title": "10. Move pages and upload files",
        "body": "notion move tasks --filter \"Name=Done\" --to archive\nnotion upload tasks --filter \"Name=Ship feature\" ./report.pdf"
      },
      {
        "title": "11. Inspect and debug",
        "body": "notion me                                       # Check integration identity\nnotion props tasks --filter \"Name=Ship feature\" # Quick property dump\nnotion templates tasks                          # List available templates"
      },
      {
        "title": "Property Type Reference",
        "body": "When using --prop key=value, the CLI auto-detects the property type from the database schema:\n\nTypeExample ValueNotestitleName=Hello WorldMain title propertyrich_textNotes=Some textPlain text contentnumberAmount=42.5Numeric valuesselectStatus=ActiveSingle select optionmulti_selectTags=bug,urgentComma-separated optionsdateDue=2026-03-01ISO 8601 date stringcheckboxDone=truetrue, 1, or yesurlLink=https://example.comFull URLemailContact=user@example.comEmail addressphone_numberPhone=+1234567890Phone number stringstatusStatus=In ProgressStatus property"
      },
      {
        "title": "Multi-Workspace Profiles",
        "body": "Manage multiple Notion accounts from one CLI:\n\nnotion workspace add work --key ntn_work_key       # Add workspace\nnotion workspace add personal --key ntn_personal    # Add another\nnotion workspace list                               # Show all\nnotion workspace use work                           # Switch active\nnotion workspace remove old                         # Remove one\n\n# Per-command override\nnotion query tasks --workspace personal\nnotion -w work add projects --prop \"Name=Q2 Plan\"\n\n# Init with workspace\nnotion init --workspace work --key ntn_work_key\n\nAliases are scoped per workspace. Old single-key configs auto-migrate to a \"default\" workspace."
      },
      {
        "title": "Notion API 2025 — Dual IDs",
        "body": "The Notion API (2025-09-03) uses dual IDs for databases: a database_id and a data_source_id. notioncli handles this automatically — when you run notion init or notion alias add, both IDs are discovered and stored. You never need to think about it."
      },
      {
        "title": "Troubleshooting",
        "body": "\"No Notion API key found\" — Run notion init --key ntn_... or export NOTION_API_KEY=ntn_...\n\"Unknown database alias\" — Run notion alias list to see available aliases, or notion init to rediscover\n\"Not found\" errors — Make sure the database/page is shared with your integration in Notion\nFilter/sort property not found — Property names are case-insensitive; run notion --json query <alias> --limit 1 to see available properties"
      }
    ],
    "body": "notioncli — Notion API Skill\n\nA powerful CLI for the Notion API. Query databases, manage pages, add comments, and automate your workspace from the terminal. Built for AI agents and humans alike.\n\nSetup\nnpm install -g notioncli\nnotion init --key $NOTION_API_KEY\n\n\nThe init command saves your API key and auto-discovers all databases shared with your integration. Each database gets an alias (a short slug derived from the database title) so you never need to type raw UUIDs.\n\nTip: In Notion, you must share each database with your integration first: open the database → ••• menu → Connections → Add your integration.\n\nAuto-Aliases\n\nWhen you run notion init, every shared database is automatically assigned a slug alias:\n\nFound 3 databases:\n\n  ✅ projects                   → Projects\n  ✅ tasks                      → Tasks  \n  ✅ reading-list               → Reading List\n\n\nYou can then use projects instead of a1b2c3d4-e5f6-... everywhere. Manage aliases manually with:\n\nnotion alias list                  # Show all aliases\nnotion alias add mydb <db-id>     # Add a custom alias\nnotion alias rename old new        # Rename an alias\nnotion alias remove mydb           # Remove an alias\n\nCommands Reference\nDatabase Discovery\nnotion dbs                         # List all databases shared with your integration\nnotion alias list                  # Show configured aliases with IDs\n\nQuerying Data\nnotion query tasks                                     # Query all rows\nnotion query tasks --filter Status=Active              # Filter by property\nnotion query tasks --sort Date:desc                    # Sort results\nnotion query tasks --filter Status=Active --limit 10   # Combine options\nnotion query tasks --output csv                        # CSV output\nnotion query tasks --output yaml                       # YAML output\nnotion query tasks --output json                       # JSON output\nnotion --json query tasks                              # JSON (shorthand)\n\n\nOutput formats:\n\ntable — formatted ASCII table (default)\ncsv — header row + comma-separated values\njson — full API response as JSON\nyaml — simple key/value YAML format\nCreating Pages\nnotion add tasks --prop \"Name=Buy groceries\" --prop \"Status=Todo\"\nnotion add projects --prop \"Name=New Feature\" --prop \"Priority=High\" --prop \"Due=2026-03-01\"\n\n\nMultiple --prop flags for multiple properties. Property names are case-insensitive and matched against the database schema.\n\nUpdating Pages\n\nBy page ID:\n\nnotion update <page-id> --prop \"Status=Done\"\nnotion update <page-id> --prop \"Priority=Low\" --prop \"Notes=Updated by CLI\"\n\n\nBy alias + filter (zero UUIDs):\n\nnotion update tasks --filter \"Name=Ship feature\" --prop \"Status=Done\"\nnotion update workouts --filter \"Name=LEGS #5\" --prop \"Notes=Great session\"\n\nReading Pages & Content\n\nBy page ID:\n\nnotion get <page-id>               # Page properties\nnotion blocks <page-id>            # Page content (headings, text, lists, etc.)\n\n\nBy alias + filter:\n\nnotion get tasks --filter \"Name=Ship feature\"\nnotion blocks tasks --filter \"Name=Ship feature\"\n\nDeleting (Archiving) Pages\nnotion delete <page-id>                              # By page ID\nnotion delete tasks --filter \"Name=Old task\"         # By alias + filter\nnotion delete workouts --filter \"Date=2026-02-09\"    # By alias + filter\n\nRelations & Rollups\nnotion relations tasks --filter \"Name=Ship feature\"           # See linked pages with titles\nnotion relations projects --filter \"Name=Launch CLI\"          # Explore connections\n\n\nRelations are automatically resolved to page titles in get output. Rollups are parsed into numbers, dates, or arrays instead of raw JSON.\n\nBlocks CRUD\nnotion blocks tasks --filter \"Name=Ship feature\"              # View page content\nnotion blocks tasks --filter \"Name=Ship feature\" --ids        # View with block IDs\nnotion append tasks \"New paragraph\" --filter \"Name=Ship feature\"  # Append block\nnotion block-edit <block-id> \"Updated text\"                   # Edit a block\nnotion block-delete <block-id>                                # Delete a block\n\n\nUse --ids to get block IDs, then target specific blocks with block-edit or block-delete.\n\nAppending Content\nnotion append <page-id> \"Meeting notes: discussed Q2 roadmap\"\nnotion append tasks \"Status update: phase 1 complete\" --filter \"Name=Ship feature\"\n\n\nAppends a paragraph block to the page.\n\nUsers\nnotion users                       # List all workspace users\nnotion user <user-id>              # Get details for a specific user\n\nComments\nnotion comments <page-id>                                      # By page ID\nnotion comments tasks --filter \"Name=Ship feature\"             # By alias + filter\nnotion comment <page-id> \"Looks good, shipping this!\"          # By page ID\nnotion comment tasks \"AI review complete ✅\" --filter \"Name=Ship feature\"  # By alias + filter\n\nPage Inspector\nnotion props tasks --filter \"Name=Ship feature\"    # Quick property dump\nnotion me                                          # Show bot identity and owner\n\nDatabase Management\nnotion db-create <parent-page-id> \"New DB\" --prop \"Name:title\" --prop \"Status:select\"\nnotion db-update tasks --add-prop \"Rating:number\"      # Add a column\nnotion db-update tasks --remove-prop \"Old Column\"      # Remove a column\nnotion db-update tasks --title \"Renamed DB\"            # Rename database\nnotion templates tasks                                 # List page templates\n\nMoving Pages\nnotion move tasks --filter \"Name=Done task\" --to archive     # Move by alias\nnotion move tasks --filter \"Name=Done task\" --to <page-id>   # Move to page\n\nFile Uploads\nnotion upload tasks --filter \"Name=Ship feature\" ./report.pdf\nnotion upload <page-id> ./screenshot.png\n\n\nSupports images, PDFs, text files, documents. MIME types auto-detected from extension.\n\nSearch\nnotion search \"quarterly report\"   # Search across all pages and databases\n\nJSON Output\n\nAdd --json before any command to get the raw Notion API response:\n\nnotion --json query tasks\nnotion --json get <page-id>\nnotion --json users\nnotion --json comments <page-id>\n\nCommon Patterns for AI Agents\n1. Discover available databases\nnotion dbs\nnotion alias list\n\n2. Query and filter data\nnotion query tasks --filter Status=Active --sort Date:desc\nnotion --json query tasks --filter Status=Active    # Parse JSON programmatically\nnotion query tasks --output csv                     # CSV for spreadsheet tools\n\n3. Create a new entry\nnotion add tasks --prop \"Name=Review PR #42\" --prop \"Status=Todo\" --prop \"Priority=High\"\n\n4. Update an existing entry (zero UUIDs)\n# By alias + filter — no page ID needed\nnotion update tasks --filter \"Name=Review PR #42\" --prop \"Status=Done\"\n\n# Or by page ID if you already have it\nnotion update <page-id> --prop \"Status=Done\"\n\n5. Read page content (zero UUIDs)\n# By alias + filter\nnotion get tasks --filter \"Name=Review PR #42\"\nnotion blocks tasks --filter \"Name=Review PR #42\"\n\n# Or by page ID\nnotion get <page-id>\nnotion blocks <page-id>\n\n6. Append notes to a page\nnotion append tasks \"Status update: completed phase 1\" --filter \"Name=Review PR #42\"\nnotion append <page-id> \"Status update: completed phase 1\"\n\n7. Collaborate with comments\nnotion comments tasks --filter \"Name=Review PR #42\"              # Check existing\nnotion comment tasks \"AI review complete ✅\" --filter \"Name=Review PR #42\"  # Add comment\n\n# Or by page ID\nnotion comments <page-id>\nnotion comment <page-id> \"AI review complete ✅\"\n\n8. Delete by alias + filter\nnotion delete tasks --filter \"Name=Old task\"\nnotion delete workouts --filter \"Date=2026-02-09\"\n\n9. Manage database schema\nnotion db-update tasks --add-prop \"Priority:select\"    # Add column\nnotion db-update tasks --remove-prop \"Old Field\"       # Remove column\nnotion db-create <parent-page-id> \"New DB\" --prop \"Name:title\" --prop \"Status:select\"\n\n10. Move pages and upload files\nnotion move tasks --filter \"Name=Done\" --to archive\nnotion upload tasks --filter \"Name=Ship feature\" ./report.pdf\n\n11. Inspect and debug\nnotion me                                       # Check integration identity\nnotion props tasks --filter \"Name=Ship feature\" # Quick property dump\nnotion templates tasks                          # List available templates\n\nProperty Type Reference\n\nWhen using --prop key=value, the CLI auto-detects the property type from the database schema:\n\nType\tExample Value\tNotes\ntitle\tName=Hello World\tMain title property\nrich_text\tNotes=Some text\tPlain text content\nnumber\tAmount=42.5\tNumeric values\nselect\tStatus=Active\tSingle select option\nmulti_select\tTags=bug,urgent\tComma-separated options\ndate\tDue=2026-03-01\tISO 8601 date string\ncheckbox\tDone=true\ttrue, 1, or yes\nurl\tLink=https://example.com\tFull URL\nemail\tContact=user@example.com\tEmail address\nphone_number\tPhone=+1234567890\tPhone number string\nstatus\tStatus=In Progress\tStatus property\nMulti-Workspace Profiles\n\nManage multiple Notion accounts from one CLI:\n\nnotion workspace add work --key ntn_work_key       # Add workspace\nnotion workspace add personal --key ntn_personal    # Add another\nnotion workspace list                               # Show all\nnotion workspace use work                           # Switch active\nnotion workspace remove old                         # Remove one\n\n# Per-command override\nnotion query tasks --workspace personal\nnotion -w work add projects --prop \"Name=Q2 Plan\"\n\n# Init with workspace\nnotion init --workspace work --key ntn_work_key\n\n\nAliases are scoped per workspace. Old single-key configs auto-migrate to a \"default\" workspace.\n\nNotion API 2025 — Dual IDs\n\nThe Notion API (2025-09-03) uses dual IDs for databases: a database_id and a data_source_id. notioncli handles this automatically — when you run notion init or notion alias add, both IDs are discovered and stored. You never need to think about it.\n\nTroubleshooting\n\"No Notion API key found\" — Run notion init --key ntn_... or export NOTION_API_KEY=ntn_...\n\"Unknown database alias\" — Run notion alias list to see available aliases, or notion init to rediscover\n\"Not found\" errors — Make sure the database/page is shared with your integration in Notion\nFilter/sort property not found — Property names are case-insensitive; run notion --json query <alias> --limit 1 to see available properties"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/JordanCoin/notioncli",
    "publisherUrl": "https://clawhub.ai/JordanCoin/notioncli",
    "owner": "JordanCoin",
    "version": "0.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/notioncli",
    "downloadUrl": "https://openagent3.xyz/downloads/notioncli",
    "agentUrl": "https://openagent3.xyz/skills/notioncli/agent",
    "manifestUrl": "https://openagent3.xyz/skills/notioncli/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/notioncli/agent.md"
  }
}