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" } ] }, {