From e7184eefb8a031fa5863e5804f00d68c7b63f388 Mon Sep 17 00:00:00 2001 From: SuperCLI Dev Date: Fri, 14 Aug 2026 14:20:23 +0000 Subject: [PATCH] fix(#298): expand bundled notion-cli command coverage Add full Notion CLI coverage for auth, pages, databases, blocks, users, comments, files, and raw API requests. Regenerate catalog so the plugin checksum matches the updated manifest. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- plugins/catalog.json | 4 +- plugins/notion-cli/plugin.json | 313 +++++++++++++++++++++++++++++---- 2 files changed, 281 insertions(+), 36 deletions(-) diff --git a/plugins/catalog.json b/plugins/catalog.json index 1c0f1952f..50acef6b1 100644 --- a/plugins/catalog.json +++ b/plugins/catalog.json @@ -1,6 +1,6 @@ { "version": 1, - "generated_at": "2026-08-13T09:50:57.544Z", + "generated_at": "2026-08-14T14:18:35.844Z", "count": 10163, "plugins": [ { @@ -25233,7 +25233,7 @@ }, { "name": "notion-cli", - "checksum": "a625e9f0846e8f1c" + "checksum": "812a98339f0d386b" }, { "name": "nougat", diff --git a/plugins/notion-cli/plugin.json b/plugins/notion-cli/plugin.json index 349e30271..9d2c1d6a8 100644 --- a/plugins/notion-cli/plugin.json +++ b/plugins/notion-cli/plugin.json @@ -15,6 +15,7 @@ "GOBIN=$(go env GOBIN); GOPATH=$(go env GOPATH); ln -sf \"${GOBIN:-$GOPATH/bin}/notion-cli\" \"${GOBIN:-$GOPATH/bin}/notion\"", "Verify: notion --version", "Authenticate: echo 'ntn_xxxxx' | notion auth login --with-token", + "Alternative auth: export NOTION_TOKEN=ntn_xxxxx", "supercli plugins install ./plugins/notion-cli --on-conflict replace --json" ], "note": "Primary install is `go install github.com/4ier/notion-cli@latest`, which builds a binary named `notion-cli`. Link or rename it to `notion` before the `Verify` step. Also available via Homebrew (`brew install 4ier/tap/notion-cli`), npm (`npm install -g @4ier/notion-cli`), GitHub Releases (https://github.com/4ier/notion-cli/releases), or Scoop on Windows. Token stored in ~/.config/notion-cli/config.json (mode 0600). Auto-detects JSON output when piped to another command." @@ -32,6 +33,7 @@ "adapterConfig": { "command": "notion", "baseArgs": ["--version"], + "timeout_ms": 5000, "missingDependencyHelp": "Install notion-cli: go install github.com/4ier/notion-cli@latest (the binary will be named notion-cli; symlink or rename it to notion) or brew install 4ier/tap/notion-cli" }, "args": [] @@ -50,6 +52,34 @@ }, "args": [] }, + { + "namespace": "notion", + "resource": "auth", + "action": "logout", + "description": "Log out of Notion", + "adapter": "process", + "adapterConfig": { + "command": "notion", + "baseArgs": ["auth", "logout"], + "timeout_ms": 5000, + "missingDependencyHelp": "Install notion-cli and authenticate: echo 'ntn_xxxx' | notion auth login --with-token" + }, + "args": [] + }, + { + "namespace": "notion", + "resource": "auth", + "action": "doctor", + "description": "Check authentication and API connectivity", + "adapter": "process", + "adapterConfig": { + "command": "notion", + "baseArgs": ["auth", "doctor"], + "timeout_ms": 10000, + "missingDependencyHelp": "Install notion-cli and authenticate: echo 'ntn_xxxx' | notion auth login --with-token" + }, + "args": [] + }, { "namespace": "notion", "resource": "search", @@ -61,10 +91,14 @@ "baseArgs": ["search"], "positionalArgs": ["query"], "timeout_ms": 15000, - "missingDependencyHelp": "Install notion-cli and authenticate" + "missingDependencyHelp": "Install notion-cli and authenticate: echo 'ntn_xxxx' | notion auth login --with-token" }, "args": [ - { "name": "query", "type": "string", "required": true, "description": "Search query text" } + { "name": "query", "type": "string", "required": true, "description": "Search query text" }, + { "name": "type", "type": "string", "required": false, "description": "Filter by type: page, database" }, + { "name": "limit", "type": "number", "required": false, "description": "Maximum results per page" }, + { "name": "cursor", "type": "string", "required": false, "description": "Pagination cursor from previous results" }, + { "name": "all", "type": "boolean", "required": false, "description": "Fetch all pages of results" } ] }, { @@ -78,44 +112,119 @@ "baseArgs": ["page", "view"], "positionalArgs": ["pageId"], "timeout_ms": 15000, - "missingDependencyHelp": "Install notion-cli and authenticate" + "missingDependencyHelp": "Install notion-cli and authenticate: echo 'ntn_xxxx' | notion auth login --with-token" }, "args": [ { "name": "pageId", "type": "string", "required": true, "description": "Page ID or full Notion URL" } ] }, + { + "namespace": "notion", + "resource": "page", + "action": "list", + "description": "List recent Notion pages", + "adapter": "process", + "adapterConfig": { + "command": "notion", + "baseArgs": ["page", "list"], + "timeout_ms": 15000, + "missingDependencyHelp": "Install notion-cli and authenticate: echo 'ntn_xxxx' | notion auth login --with-token" + }, + "args": [ + { "name": "limit", "type": "number", "required": false, "description": "Maximum results per page" }, + { "name": "cursor", "type": "string", "required": false, "description": "Pagination cursor from previous results" }, + { "name": "all", "type": "boolean", "required": false, "description": "Fetch all pages of results" } + ] + }, { "namespace": "notion", "resource": "page", "action": "create", - "description": "Create a new page in a Notion database", + "description": "Create a new page under a parent page or database", "adapter": "process", "adapterConfig": { "command": "notion", "baseArgs": ["page", "create"], - "positionalArgs": ["dbId"], + "positionalArgs": ["parentId"], "passthrough": true, "timeout_ms": 15000, - "missingDependencyHelp": "Install notion-cli and authenticate" + "missingDependencyHelp": "Install notion-cli and authenticate: echo 'ntn_xxxx' | notion auth login --with-token" }, "args": [ - { "name": "dbId", "type": "string", "required": true, "description": "Database ID or URL" }, - { "name": "--db", "type": "string", "required": false, "description": "Database properties in 'Name=Value' format (e.g., 'Name=Task', 'Status=Done')" } + { "name": "parentId", "type": "string", "required": true, "description": "Parent page or database ID/URL" }, + { "name": "db", "type": "boolean", "required": false, "description": "Create under a database (properties as key=value args)" }, + { "name": "title", "type": "string", "required": false, "description": "Page title (required when parent is a page)" }, + { "name": "body", "type": "string", "required": false, "description": "Page body text" } + ] + }, + { + "namespace": "notion", + "resource": "page", + "action": "archive", + "description": "Archive (soft-delete) a Notion page", + "adapter": "process", + "adapterConfig": { + "command": "notion", + "baseArgs": ["page", "archive"], + "positionalArgs": ["pageId"], + "timeout_ms": 15000, + "missingDependencyHelp": "Install notion-cli and authenticate: echo 'ntn_xxxx' | notion auth login --with-token" + }, + "args": [ + { "name": "pageId", "type": "string", "required": true, "description": "Page ID or full Notion URL" } ] }, { "namespace": "notion", "resource": "page", + "action": "restore", + "description": "Restore an archived Notion page", + "adapter": "process", + "adapterConfig": { + "command": "notion", + "baseArgs": ["page", "restore"], + "positionalArgs": ["pageId"], + "timeout_ms": 15000, + "missingDependencyHelp": "Install notion-cli and authenticate: echo 'ntn_xxxx' | notion auth login --with-token" + }, + "args": [ + { "name": "pageId", "type": "string", "required": true, "description": "Page ID or full Notion URL" } + ] + }, + { + "namespace": "notion", + "resource": "db", "action": "list", - "description": "List recent Notion pages", + "description": "List Notion databases", "adapter": "process", "adapterConfig": { "command": "notion", - "baseArgs": ["page", "list"], + "baseArgs": ["db", "list"], "timeout_ms": 15000, - "missingDependencyHelp": "Install notion-cli and authenticate" + "missingDependencyHelp": "Install notion-cli and authenticate: echo 'ntn_xxxx' | notion auth login --with-token" }, - "args": [] + "args": [ + { "name": "limit", "type": "number", "required": false, "description": "Maximum results per page" }, + { "name": "cursor", "type": "string", "required": false, "description": "Pagination cursor from previous results" }, + { "name": "all", "type": "boolean", "required": false, "description": "Fetch all pages of results" } + ] + }, + { + "namespace": "notion", + "resource": "db", + "action": "view", + "description": "Show database schema", + "adapter": "process", + "adapterConfig": { + "command": "notion", + "baseArgs": ["db", "view"], + "positionalArgs": ["dbId"], + "timeout_ms": 15000, + "missingDependencyHelp": "Install notion-cli and authenticate: echo 'ntn_xxxx' | notion auth login --with-token" + }, + "args": [ + { "name": "dbId", "type": "string", "required": true, "description": "Database ID or URL" } + ] }, { "namespace": "notion", @@ -129,34 +238,60 @@ "positionalArgs": ["dbId"], "passthrough": true, "timeout_ms": 15000, - "missingDependencyHelp": "Install notion-cli and authenticate" + "missingDependencyHelp": "Install notion-cli and authenticate: echo 'ntn_xxxx' | notion auth login --with-token" }, "args": [ { "name": "dbId", "type": "string", "required": true, "description": "Database ID or URL" }, - { "name": "--filter", "type": "string", "required": false, "description": "Filter by property (e.g., 'Status=Done', 'Priority=High')" }, - { "name": "--filter-json", "type": "string", "required": false, "description": "Complex filter in JSON (for OR/nesting)" }, - { "name": "--sort", "type": "string", "required": false, "description": "Sort by property (e.g., 'Date:desc')" } + { "name": "filter", "type": "string", "required": false, "description": "Filter expression (e.g., 'Status=Done')" }, + { "name": "filter-json", "type": "string", "required": false, "description": "Complex filter in JSON (for OR/nesting)" }, + { "name": "sort", "type": "string", "required": false, "description": "Sort expression (e.g., 'Date:desc')" }, + { "name": "limit", "type": "number", "required": false, "description": "Maximum results per page" }, + { "name": "cursor", "type": "string", "required": false, "description": "Pagination cursor from previous results" }, + { "name": "all", "type": "boolean", "required": false, "description": "Fetch all pages of results" } ] }, { "namespace": "notion", "resource": "db", - "action": "list", - "description": "List Notion databases", + "action": "add", + "description": "Add a new row (page) to a database", "adapter": "process", "adapterConfig": { "command": "notion", - "baseArgs": ["db", "list"], + "baseArgs": ["db", "add"], + "positionalArgs": ["dbId"], + "passthrough": true, "timeout_ms": 15000, - "missingDependencyHelp": "Install notion-cli and authenticate" + "missingDependencyHelp": "Install notion-cli and authenticate: echo 'ntn_xxxx' | notion auth login --with-token" }, - "args": [] + "args": [ + { "name": "dbId", "type": "string", "required": true, "description": "Database ID or URL" } + ] + }, + { + "namespace": "notion", + "resource": "db", + "action": "create", + "description": "Create a new database under a parent page", + "adapter": "process", + "adapterConfig": { + "command": "notion", + "baseArgs": ["db", "create"], + "positionalArgs": ["parentId"], + "timeout_ms": 15000, + "missingDependencyHelp": "Install notion-cli and authenticate: echo 'ntn_xxxx' | notion auth login --with-token" + }, + "args": [ + { "name": "parentId", "type": "string", "required": true, "description": "Parent page ID or URL" }, + { "name": "title", "type": "string", "required": false, "description": "Database title (required)" }, + { "name": "props", "type": "string", "required": false, "description": "Additional properties as name:type,... (e.g., Status:select,Date:date)" } + ] }, { "namespace": "notion", "resource": "block", "action": "list", - "description": "List blocks (content) of a Notion page as Markdown", + "description": "List child blocks of a page or block as Markdown", "adapter": "process", "adapterConfig": { "command": "notion", @@ -164,31 +299,71 @@ "positionalArgs": ["pageId"], "passthrough": true, "timeout_ms": 15000, - "missingDependencyHelp": "Install notion-cli and authenticate" + "missingDependencyHelp": "Install notion-cli and authenticate: echo 'ntn_xxxx' | notion auth login --with-token" + }, + "args": [ + { "name": "pageId", "type": "string", "required": true, "description": "Page or block ID/URL" }, + { "name": "depth", "type": "number", "required": false, "description": "Recursion depth for nested blocks (default 1)" }, + { "name": "md", "type": "boolean", "required": false, "description": "Output as Markdown" }, + { "name": "all", "type": "boolean", "required": false, "description": "Fetch all pages of results" }, + { "name": "cursor", "type": "string", "required": false, "description": "Pagination cursor from previous results" } + ] + }, + { + "namespace": "notion", + "resource": "block", + "action": "get", + "description": "Get a specific block by ID", + "adapter": "process", + "adapterConfig": { + "command": "notion", + "baseArgs": ["block", "get"], + "positionalArgs": ["blockId"], + "timeout_ms": 15000, + "missingDependencyHelp": "Install notion-cli and authenticate: echo 'ntn_xxxx' | notion auth login --with-token" }, "args": [ - { "name": "pageId", "type": "string", "required": true, "description": "Page ID or URL" }, - { "name": "--depth", "type": "number", "required": false, "description": "Recursion depth for nested blocks (default 1)" }, - { "name": "--md", "type": "boolean", "required": false, "description": "Output as Markdown" } + { "name": "blockId", "type": "string", "required": true, "description": "Block ID or URL" } ] }, { "namespace": "notion", "resource": "block", "action": "append", - "description": "Append Markdown content to a Notion page", + "description": "Append Markdown or blocks to a Notion page or block", "adapter": "process", "adapterConfig": { "command": "notion", "baseArgs": ["block", "append"], - "positionalArgs": ["pageId"], + "positionalArgs": ["parentId"], "passthrough": true, "timeout_ms": 15000, - "missingDependencyHelp": "Install notion-cli and authenticate" + "missingDependencyHelp": "Install notion-cli and authenticate: echo 'ntn_xxxx' | notion auth login --with-token" + }, + "args": [ + { "name": "parentId", "type": "string", "required": true, "description": "Page or block ID/URL" }, + { "name": "file", "type": "string", "required": false, "description": "Markdown file to append" }, + { "name": "type", "type": "string", "required": false, "description": "Block type: paragraph, h1, h2, h3, todo, bullet, numbered, quote, code, callout, divider" }, + { "name": "lang", "type": "string", "required": false, "description": "Language for code blocks (e.g., go, python, bash)" }, + { "name": "on-oversize", "type": "string", "required": false, "description": "Behavior for rich_text >2000 chars: split|truncate|fail" }, + { "name": "caption", "type": "string", "required": false, "description": "Caption for media blocks" } + ] + }, + { + "namespace": "notion", + "resource": "block", + "action": "delete", + "description": "Delete one or more blocks by ID", + "adapter": "process", + "adapterConfig": { + "command": "notion", + "baseArgs": ["block", "delete"], + "positionalArgs": ["blockId"], + "timeout_ms": 15000, + "missingDependencyHelp": "Install notion-cli and authenticate: echo 'ntn_xxxx' | notion auth login --with-token" }, "args": [ - { "name": "pageId", "type": "string", "required": true, "description": "Page ID or URL" }, - { "name": "--file", "type": "string", "required": false, "description": "Markdown file to append" } + { "name": "blockId", "type": "string", "required": true, "description": "Block ID or URL" } ] }, { @@ -201,10 +376,79 @@ "command": "notion", "baseArgs": ["user", "list"], "timeout_ms": 10000, - "missingDependencyHelp": "Install notion-cli and authenticate" + "missingDependencyHelp": "Install notion-cli and authenticate: echo 'ntn_xxxx' | notion auth login --with-token" + }, + "args": [ + { "name": "all", "type": "boolean", "required": false, "description": "Fetch all pages of results" }, + { "name": "cursor", "type": "string", "required": false, "description": "Pagination cursor from previous results" } + ] + }, + { + "namespace": "notion", + "resource": "user", + "action": "me", + "description": "Show current bot user", + "adapter": "process", + "adapterConfig": { + "command": "notion", + "baseArgs": ["user", "me"], + "timeout_ms": 10000, + "missingDependencyHelp": "Install notion-cli and authenticate: echo 'ntn_xxxx' | notion auth login --with-token" }, "args": [] }, + { + "namespace": "notion", + "resource": "comment", + "action": "list", + "description": "List comments on a Notion page or block", + "adapter": "process", + "adapterConfig": { + "command": "notion", + "baseArgs": ["comment", "list"], + "positionalArgs": ["pageId"], + "timeout_ms": 15000, + "missingDependencyHelp": "Install notion-cli and authenticate: echo 'ntn_xxxx' | notion auth login --with-token" + }, + "args": [ + { "name": "pageId", "type": "string", "required": true, "description": "Page or block ID/URL" }, + { "name": "all", "type": "boolean", "required": false, "description": "Fetch all pages of results" }, + { "name": "cursor", "type": "string", "required": false, "description": "Pagination cursor from previous results" } + ] + }, + { + "namespace": "notion", + "resource": "file", + "action": "list", + "description": "List file uploads", + "adapter": "process", + "adapterConfig": { + "command": "notion", + "baseArgs": ["file", "list"], + "timeout_ms": 10000, + "missingDependencyHelp": "Install notion-cli and authenticate: echo 'ntn_xxxx' | notion auth login --with-token" + }, + "args": [] + }, + { + "namespace": "notion", + "resource": "file", + "action": "upload", + "description": "Upload a file to Notion", + "adapter": "process", + "adapterConfig": { + "command": "notion", + "baseArgs": ["file", "upload"], + "positionalArgs": ["source"], + "timeout_ms": 60000, + "missingDependencyHelp": "Install notion-cli and authenticate: echo 'ntn_xxxx' | notion auth login --with-token" + }, + "args": [ + { "name": "source", "type": "string", "required": true, "description": "Local path, http(s) URL, or - for stdin" }, + { "name": "to", "type": "string", "required": false, "description": "Target page ID to attach file to" }, + { "name": "name", "type": "string", "required": false, "description": "Override filename (required for stdin/URL)" } + ] + }, { "namespace": "notion", "resource": "api", @@ -216,11 +460,12 @@ "baseArgs": ["api"], "positionalArgs": ["method", "path"], "timeout_ms": 15000, - "missingDependencyHelp": "Install notion-cli and authenticate" + "missingDependencyHelp": "Install notion-cli and authenticate: echo 'ntn_xxxx' | notion auth login --with-token" }, "args": [ { "name": "method", "type": "string", "required": true, "description": "HTTP method (GET, POST, PATCH, DELETE)" }, - { "name": "path", "type": "string", "required": true, "description": "API path (e.g., /v1/users/me)" } + { "name": "path", "type": "string", "required": true, "description": "API path (e.g., /v1/users/me)" }, + { "name": "body", "type": "string", "required": false, "description": "JSON request body. Use @ to read from file, or - for stdin" } ] }, {