mirror of
https://github.com/jackwener/OpenCLI.git
synced 2026-09-14 18:25:42 +08:00
d2974a9ff6
* refactor(adapters): convert adapter layer from TypeScript to JavaScript Core framework stays TypeScript; adapter layer moves to JS-first. Adapters are essentially "executable config + browser scripts" that barely use TS features — this simplifies the build/distribution pipeline by removing the dist/clis/ intermediate compilation step. Changes: - Convert all 753 adapter files in clis/ from .ts to .js - Update tsconfig to exclude clis/ from compilation - Simplify build-manifest to scan clis/*.js directly (no dist/clis/) - Update discovery, main, fetch-adapters to load JS adapters from clis/ - Update generate-verified to output .js artifacts - Update package.json files field: dist/clis/ → clis/ - Fix all test files for the .ts → .js transition * fix(main): use findPackageRoot for BUILTIN_CLIS path The previous relative path (../../clis from __dirname) only worked for dist/src/main.js but broke dev mode (tsx src/main.ts) where __dirname is <repo>/src — resolving to /clis instead of <repo>/clis. Use findPackageRoot() which works for both dev and prod paths.
16836 lines
362 KiB
JSON
16836 lines
362 KiB
JSON
[
|
||
{
|
||
"site": "1688",
|
||
"name": "assets",
|
||
"description": "列出 1688 商品页可提取的图片/视频素材",
|
||
"domain": "www.1688.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "input",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "1688 商品 URL 或 offer ID(如 887904326744)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"offer_id",
|
||
"title",
|
||
"main_count",
|
||
"sku_count",
|
||
"detail_count",
|
||
"video_count"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "1688/assets.js",
|
||
"sourceFile": "1688/assets.js"
|
||
},
|
||
{
|
||
"site": "1688",
|
||
"name": "download",
|
||
"description": "批量下载 1688 商品页可提取的图片和视频素材",
|
||
"domain": "www.1688.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "input",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "1688 商品 URL 或 offer ID(如 887904326744)"
|
||
},
|
||
{
|
||
"name": "output",
|
||
"type": "str",
|
||
"default": "./1688-downloads",
|
||
"required": false,
|
||
"help": "输出目录"
|
||
}
|
||
],
|
||
"columns": [
|
||
"index",
|
||
"type",
|
||
"status",
|
||
"size"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "1688/download.js",
|
||
"sourceFile": "1688/download.js"
|
||
},
|
||
{
|
||
"site": "1688",
|
||
"name": "item",
|
||
"description": "1688 商品详情(公开商品字段、价格阶梯、卖家基础信息)",
|
||
"domain": "www.1688.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "input",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "1688 商品 URL 或 offer ID(如 887904326744)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"offer_id",
|
||
"title",
|
||
"price_text",
|
||
"moq_text",
|
||
"seller_name",
|
||
"origin_place"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "1688/item.js",
|
||
"sourceFile": "1688/item.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "1688",
|
||
"name": "search",
|
||
"description": "1688 商品搜索(结果候选、卖家链接、价格/MOQ/销量文本)",
|
||
"domain": "www.1688.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "搜索关键词,如 \"置物架\""
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "结果数量上限(默认 20,最大 100)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"price_text",
|
||
"moq_text",
|
||
"seller_name",
|
||
"location"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "1688/search.js",
|
||
"sourceFile": "1688/search.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "1688",
|
||
"name": "store",
|
||
"description": "1688 店铺/供应商公开信息(联系方式、主营、入驻年限、公开服务信号)",
|
||
"domain": "www.1688.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "input",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "1688 店铺 URL 或 member ID(如 b2b-22154705262941f196)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"store_name",
|
||
"years_on_platform_text",
|
||
"location",
|
||
"return_rate_text"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "1688/store.js",
|
||
"sourceFile": "1688/store.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "36kr",
|
||
"name": "article",
|
||
"description": "获取36氪文章正文内容",
|
||
"domain": "www.36kr.com",
|
||
"strategy": "intercept",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Article ID or full 36kr article URL"
|
||
}
|
||
],
|
||
"columns": [
|
||
"field",
|
||
"value"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "36kr/article.js",
|
||
"sourceFile": "36kr/article.js"
|
||
},
|
||
{
|
||
"site": "36kr",
|
||
"name": "hot",
|
||
"description": "36氪热榜 — trending articles (renqi/zonghe/shoucang/catalog)",
|
||
"domain": "www.36kr.com",
|
||
"strategy": "public",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of items (max 50)"
|
||
},
|
||
{
|
||
"name": "type",
|
||
"type": "string",
|
||
"default": "catalog",
|
||
"required": false,
|
||
"help": "List type: renqi (人气), zonghe (综合), shoucang (收藏), catalog (热门资讯)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "36kr/hot.js",
|
||
"sourceFile": "36kr/hot.js"
|
||
},
|
||
{
|
||
"site": "36kr",
|
||
"name": "news",
|
||
"description": "Latest tech/startup news from 36kr (36氪)",
|
||
"domain": "www.36kr.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of articles (max 50)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"summary",
|
||
"date",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "36kr/news.js",
|
||
"sourceFile": "36kr/news.js"
|
||
},
|
||
{
|
||
"site": "36kr",
|
||
"name": "search",
|
||
"description": "搜索36氪文章",
|
||
"domain": "www.36kr.com",
|
||
"strategy": "public",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search keyword (e.g. \"AI\", \"OpenAI\")"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of results (max 50)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"date",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "36kr/search.js",
|
||
"sourceFile": "36kr/search.js"
|
||
},
|
||
{
|
||
"site": "amazon",
|
||
"name": "bestsellers",
|
||
"description": "Amazon Best Sellers pages for category candidate discovery",
|
||
"domain": "amazon.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "input",
|
||
"type": "str",
|
||
"required": false,
|
||
"positional": true,
|
||
"help": "Ranking URL or supported Amazon path. Omit to use the list root."
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 100,
|
||
"required": false,
|
||
"help": "Maximum number of ranked items to return (default 100)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"list_type",
|
||
"rank",
|
||
"asin",
|
||
"title",
|
||
"price_text",
|
||
"rating_value",
|
||
"review_count"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "amazon/bestsellers.js",
|
||
"sourceFile": "amazon/bestsellers.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "amazon",
|
||
"name": "discussion",
|
||
"description": "Amazon review summary and sample customer discussion from product review pages",
|
||
"domain": "amazon.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "input",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "ASIN or product URL, for example B0FJS72893"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Maximum number of review samples to return (default 10)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"asin",
|
||
"average_rating_value",
|
||
"total_review_count"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "amazon/discussion.js",
|
||
"sourceFile": "amazon/discussion.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "amazon",
|
||
"name": "movers-shakers",
|
||
"description": "Amazon Movers & Shakers pages for short-term growth signals",
|
||
"domain": "amazon.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "input",
|
||
"type": "str",
|
||
"required": false,
|
||
"positional": true,
|
||
"help": "Ranking URL or supported Amazon path. Omit to use the list root."
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 100,
|
||
"required": false,
|
||
"help": "Maximum number of ranked items to return (default 100)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"list_type",
|
||
"rank",
|
||
"asin",
|
||
"title",
|
||
"price_text",
|
||
"rating_value",
|
||
"review_count"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "amazon/movers-shakers.js",
|
||
"sourceFile": "amazon/movers-shakers.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "amazon",
|
||
"name": "new-releases",
|
||
"description": "Amazon New Releases pages for early momentum discovery",
|
||
"domain": "amazon.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "input",
|
||
"type": "str",
|
||
"required": false,
|
||
"positional": true,
|
||
"help": "Ranking URL or supported Amazon path. Omit to use the list root."
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 100,
|
||
"required": false,
|
||
"help": "Maximum number of ranked items to return (default 100)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"list_type",
|
||
"rank",
|
||
"asin",
|
||
"title",
|
||
"price_text",
|
||
"rating_value",
|
||
"review_count"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "amazon/new-releases.js",
|
||
"sourceFile": "amazon/new-releases.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "amazon",
|
||
"name": "offer",
|
||
"description": "Amazon seller, buy box, and fulfillment facts from the product page",
|
||
"domain": "amazon.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "input",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "ASIN or product URL, for example B0FJS72893"
|
||
}
|
||
],
|
||
"columns": [
|
||
"asin",
|
||
"price_text",
|
||
"sold_by",
|
||
"ships_from",
|
||
"is_amazon_sold",
|
||
"is_amazon_fulfilled"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "amazon/offer.js",
|
||
"sourceFile": "amazon/offer.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "amazon",
|
||
"name": "product",
|
||
"description": "Amazon product page facts for candidate validation",
|
||
"domain": "amazon.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "input",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "ASIN or product URL, for example B0FJS72893"
|
||
}
|
||
],
|
||
"columns": [
|
||
"asin",
|
||
"title",
|
||
"price_text",
|
||
"rating_value",
|
||
"review_count"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "amazon/product.js",
|
||
"sourceFile": "amazon/product.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "amazon",
|
||
"name": "search",
|
||
"description": "Amazon search results for product discovery and coarse filtering",
|
||
"domain": "amazon.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search query, for example \"desk shelf organizer\""
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Maximum number of results to return (default 20)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"asin",
|
||
"title",
|
||
"price_text",
|
||
"rating_value",
|
||
"review_count"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "amazon/search.js",
|
||
"sourceFile": "amazon/search.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "antigravity",
|
||
"name": "dump",
|
||
"description": "Dump the DOM to help AI understand the UI",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"htmlFile",
|
||
"snapFile"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "antigravity/dump.js",
|
||
"sourceFile": "antigravity/dump.js"
|
||
},
|
||
{
|
||
"site": "antigravity",
|
||
"name": "extract-code",
|
||
"description": "Extract multi-line code blocks from the current Antigravity conversation",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"code"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "antigravity/extract-code.js",
|
||
"sourceFile": "antigravity/extract-code.js"
|
||
},
|
||
{
|
||
"site": "antigravity",
|
||
"name": "model",
|
||
"description": "Switch the active LLM model in Antigravity",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "name",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Target model name (e.g. claude, gemini, o1)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Status"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "antigravity/model.js",
|
||
"sourceFile": "antigravity/model.js"
|
||
},
|
||
{
|
||
"site": "antigravity",
|
||
"name": "new",
|
||
"description": "Start a new conversation / clear context in Antigravity",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"status"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "antigravity/new.js",
|
||
"sourceFile": "antigravity/new.js"
|
||
},
|
||
{
|
||
"site": "antigravity",
|
||
"name": "read",
|
||
"description": "Read the latest chat messages from Antigravity AI",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "last",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Number of recent messages to read (not fully implemented due to generic structure, currently returns full history text or latest chunk)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"role",
|
||
"content"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "antigravity/read.js",
|
||
"sourceFile": "antigravity/read.js"
|
||
},
|
||
{
|
||
"site": "antigravity",
|
||
"name": "send",
|
||
"description": "Send a message to Antigravity AI via the internal Lexical editor",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "message",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "The message text to send"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Status",
|
||
"Message"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "antigravity/send.js",
|
||
"sourceFile": "antigravity/send.js"
|
||
},
|
||
{
|
||
"site": "antigravity",
|
||
"name": "status",
|
||
"description": "Check Antigravity CDP connection and get current page state",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"status",
|
||
"url",
|
||
"title"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "antigravity/status.js",
|
||
"sourceFile": "antigravity/status.js"
|
||
},
|
||
{
|
||
"site": "antigravity",
|
||
"name": "watch",
|
||
"description": "Stream new chat messages from Antigravity in real-time",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [],
|
||
"timeout": 86400,
|
||
"type": "js",
|
||
"modulePath": "antigravity/watch.js",
|
||
"sourceFile": "antigravity/watch.js"
|
||
},
|
||
{
|
||
"site": "apple-podcasts",
|
||
"name": "episodes",
|
||
"description": "List recent episodes of an Apple Podcast (use ID from search)",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Podcast ID (collectionId from search output)"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 15,
|
||
"required": false,
|
||
"help": "Max episodes to show"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"duration",
|
||
"date"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "apple-podcasts/episodes.js",
|
||
"sourceFile": "apple-podcasts/episodes.js"
|
||
},
|
||
{
|
||
"site": "apple-podcasts",
|
||
"name": "search",
|
||
"description": "Search Apple Podcasts",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search keyword"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Max results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"id",
|
||
"title",
|
||
"author",
|
||
"episodes",
|
||
"genre",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "apple-podcasts/search.js",
|
||
"sourceFile": "apple-podcasts/search.js"
|
||
},
|
||
{
|
||
"site": "apple-podcasts",
|
||
"name": "top",
|
||
"description": "Top podcasts chart on Apple Podcasts",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of podcasts (max 100)"
|
||
},
|
||
{
|
||
"name": "country",
|
||
"type": "str",
|
||
"default": "us",
|
||
"required": false,
|
||
"help": "Country code (e.g. us, cn, gb, jp)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"id"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "apple-podcasts/top.js",
|
||
"sourceFile": "apple-podcasts/top.js"
|
||
},
|
||
{
|
||
"site": "arxiv",
|
||
"name": "paper",
|
||
"description": "Get arXiv paper details by ID",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "arXiv paper ID (e.g. 1706.03762)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"id",
|
||
"title",
|
||
"authors",
|
||
"published",
|
||
"abstract",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "arxiv/paper.js",
|
||
"sourceFile": "arxiv/paper.js"
|
||
},
|
||
{
|
||
"site": "arxiv",
|
||
"name": "search",
|
||
"description": "Search arXiv papers",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search keyword (e.g. \"attention is all you need\")"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Max results (max 25)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"id",
|
||
"title",
|
||
"authors",
|
||
"published",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "arxiv/search.js",
|
||
"sourceFile": "arxiv/search.js"
|
||
},
|
||
{
|
||
"site": "band",
|
||
"name": "bands",
|
||
"description": "List all Bands you belong to",
|
||
"domain": "www.band.us",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"band_no",
|
||
"name",
|
||
"members"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "band/bands.js",
|
||
"sourceFile": "band/bands.js"
|
||
},
|
||
{
|
||
"site": "band",
|
||
"name": "mentions",
|
||
"description": "Show Band notifications where you are @mentioned",
|
||
"domain": "www.band.us",
|
||
"strategy": "intercept",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "filter",
|
||
"type": "str",
|
||
"default": "mentioned",
|
||
"required": false,
|
||
"help": "Filter: mentioned (default) | all | post | comment",
|
||
"choices": [
|
||
"mentioned",
|
||
"all",
|
||
"post",
|
||
"comment"
|
||
]
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Max results"
|
||
},
|
||
{
|
||
"name": "unread",
|
||
"type": "bool",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "Show only unread notifications"
|
||
}
|
||
],
|
||
"columns": [
|
||
"time",
|
||
"band",
|
||
"type",
|
||
"from",
|
||
"text",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "band/mentions.js",
|
||
"sourceFile": "band/mentions.js"
|
||
},
|
||
{
|
||
"site": "band",
|
||
"name": "post",
|
||
"description": "Export full content of a post including comments",
|
||
"domain": "www.band.us",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "band_no",
|
||
"type": "int",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Band number"
|
||
},
|
||
{
|
||
"name": "post_no",
|
||
"type": "int",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Post number"
|
||
},
|
||
{
|
||
"name": "output",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "Directory to save attached photos"
|
||
},
|
||
{
|
||
"name": "comments",
|
||
"type": "bool",
|
||
"default": true,
|
||
"required": false,
|
||
"help": "Include comments (default: true)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"type",
|
||
"author",
|
||
"date",
|
||
"text"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "band/post.js",
|
||
"sourceFile": "band/post.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "band",
|
||
"name": "posts",
|
||
"description": "List posts from a Band",
|
||
"domain": "www.band.us",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "band_no",
|
||
"type": "int",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Band number (get it from: band bands)"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Max results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"date",
|
||
"author",
|
||
"content",
|
||
"comments",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "band/posts.js",
|
||
"sourceFile": "band/posts.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "barchart",
|
||
"name": "flow",
|
||
"description": "Barchart unusual options activity / options flow",
|
||
"domain": "www.barchart.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "type",
|
||
"type": "str",
|
||
"default": "all",
|
||
"required": false,
|
||
"help": "Filter: all, call, or put",
|
||
"choices": [
|
||
"all",
|
||
"call",
|
||
"put"
|
||
]
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"symbol",
|
||
"type",
|
||
"strike",
|
||
"expiration",
|
||
"last",
|
||
"volume",
|
||
"openInterest",
|
||
"volOiRatio",
|
||
"iv"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "barchart/flow.js",
|
||
"sourceFile": "barchart/flow.js"
|
||
},
|
||
{
|
||
"site": "barchart",
|
||
"name": "greeks",
|
||
"description": "Barchart options greeks overview (IV, delta, gamma, theta, vega)",
|
||
"domain": "www.barchart.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "symbol",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Stock ticker (e.g. AAPL)"
|
||
},
|
||
{
|
||
"name": "expiration",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Expiration date (YYYY-MM-DD). Defaults to the nearest available expiration."
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of near-the-money strikes per type"
|
||
}
|
||
],
|
||
"columns": [
|
||
"type",
|
||
"strike",
|
||
"last",
|
||
"iv",
|
||
"delta",
|
||
"gamma",
|
||
"theta",
|
||
"vega",
|
||
"rho",
|
||
"volume",
|
||
"openInterest",
|
||
"expiration"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "barchart/greeks.js",
|
||
"sourceFile": "barchart/greeks.js"
|
||
},
|
||
{
|
||
"site": "barchart",
|
||
"name": "options",
|
||
"description": "Barchart options chain with greeks, IV, volume, and open interest",
|
||
"domain": "www.barchart.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "symbol",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Stock ticker (e.g. AAPL)"
|
||
},
|
||
{
|
||
"name": "type",
|
||
"type": "str",
|
||
"default": "Call",
|
||
"required": false,
|
||
"help": "Option type: Call or Put",
|
||
"choices": [
|
||
"Call",
|
||
"Put"
|
||
]
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Max number of strikes to return"
|
||
}
|
||
],
|
||
"columns": [
|
||
"strike",
|
||
"bid",
|
||
"ask",
|
||
"last",
|
||
"change",
|
||
"volume",
|
||
"openInterest",
|
||
"iv",
|
||
"delta",
|
||
"gamma",
|
||
"theta",
|
||
"vega",
|
||
"expiration"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "barchart/options.js",
|
||
"sourceFile": "barchart/options.js"
|
||
},
|
||
{
|
||
"site": "barchart",
|
||
"name": "quote",
|
||
"description": "Barchart stock quote with price, volume, and key metrics",
|
||
"domain": "www.barchart.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "symbol",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Stock ticker (e.g. AAPL, MSFT, TSLA)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"symbol",
|
||
"name",
|
||
"price",
|
||
"change",
|
||
"changePct",
|
||
"open",
|
||
"high",
|
||
"low",
|
||
"prevClose",
|
||
"volume",
|
||
"avgVolume",
|
||
"marketCap",
|
||
"peRatio",
|
||
"eps"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "barchart/quote.js",
|
||
"sourceFile": "barchart/quote.js"
|
||
},
|
||
{
|
||
"site": "bbc",
|
||
"name": "news",
|
||
"description": "BBC News headlines (RSS)",
|
||
"domain": "www.bbc.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of headlines (max 50)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"description",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "bbc/news.js",
|
||
"sourceFile": "bbc/news.js"
|
||
},
|
||
{
|
||
"site": "bilibili",
|
||
"name": "comments",
|
||
"description": "获取 B站视频评论(使用官方 API + WBI 签名)",
|
||
"domain": "www.bilibili.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "bvid",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Video BV ID (e.g. BV1WtAGzYEBm)"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of comments (max 50)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"author",
|
||
"text",
|
||
"likes",
|
||
"replies",
|
||
"time"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "bilibili/comments.js",
|
||
"sourceFile": "bilibili/comments.js"
|
||
},
|
||
{
|
||
"site": "bilibili",
|
||
"name": "download",
|
||
"description": "下载B站视频(需要 yt-dlp)",
|
||
"domain": "www.bilibili.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "bvid",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Video BV ID (e.g., BV1xxx)"
|
||
},
|
||
{
|
||
"name": "output",
|
||
"type": "str",
|
||
"default": "./bilibili-downloads",
|
||
"required": false,
|
||
"help": "Output directory"
|
||
},
|
||
{
|
||
"name": "quality",
|
||
"type": "str",
|
||
"default": "best",
|
||
"required": false,
|
||
"help": "Video quality (best, 1080p, 720p, 480p)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"bvid",
|
||
"title",
|
||
"status",
|
||
"size"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "bilibili/download.js",
|
||
"sourceFile": "bilibili/download.js"
|
||
},
|
||
{
|
||
"site": "bilibili",
|
||
"name": "dynamic",
|
||
"description": "Get Bilibili user dynamic feed",
|
||
"domain": "www.bilibili.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 15,
|
||
"required": false,
|
||
"help": ""
|
||
}
|
||
],
|
||
"columns": [
|
||
"id",
|
||
"author",
|
||
"text",
|
||
"likes",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "bilibili/dynamic.js",
|
||
"sourceFile": "bilibili/dynamic.js"
|
||
},
|
||
{
|
||
"site": "bilibili",
|
||
"name": "favorite",
|
||
"description": "我的默认收藏夹",
|
||
"domain": "www.bilibili.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
},
|
||
{
|
||
"name": "page",
|
||
"type": "int",
|
||
"default": 1,
|
||
"required": false,
|
||
"help": "Page number"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"plays",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "bilibili/favorite.js",
|
||
"sourceFile": "bilibili/favorite.js"
|
||
},
|
||
{
|
||
"site": "bilibili",
|
||
"name": "feed",
|
||
"description": "关注的人的动态时间线",
|
||
"domain": "www.bilibili.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
},
|
||
{
|
||
"name": "type",
|
||
"type": "str",
|
||
"default": "all",
|
||
"required": false,
|
||
"help": "Filter: all, video, article"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"author",
|
||
"title",
|
||
"type",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "bilibili/feed.js",
|
||
"sourceFile": "bilibili/feed.js"
|
||
},
|
||
{
|
||
"site": "bilibili",
|
||
"name": "following",
|
||
"description": "获取 Bilibili 用户的关注列表",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "uid",
|
||
"type": "str",
|
||
"required": false,
|
||
"positional": true,
|
||
"help": "目标用户 ID(默认为当前登录用户)"
|
||
},
|
||
{
|
||
"name": "page",
|
||
"type": "int",
|
||
"default": 1,
|
||
"required": false,
|
||
"help": "页码"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 50,
|
||
"required": false,
|
||
"help": "每页数量 (最大 50)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"mid",
|
||
"name",
|
||
"sign",
|
||
"following",
|
||
"fans"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "bilibili/following.js",
|
||
"sourceFile": "bilibili/following.js"
|
||
},
|
||
{
|
||
"site": "bilibili",
|
||
"name": "history",
|
||
"description": "我的观看历史",
|
||
"domain": "www.bilibili.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"progress",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "bilibili/history.js",
|
||
"sourceFile": "bilibili/history.js"
|
||
},
|
||
{
|
||
"site": "bilibili",
|
||
"name": "hot",
|
||
"description": "B站热门视频",
|
||
"domain": "www.bilibili.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of videos"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"play",
|
||
"danmaku"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "bilibili/hot.js",
|
||
"sourceFile": "bilibili/hot.js"
|
||
},
|
||
{
|
||
"site": "bilibili",
|
||
"name": "me",
|
||
"description": "My Bilibili profile info",
|
||
"domain": "www.bilibili.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"name",
|
||
"uid",
|
||
"level",
|
||
"coins",
|
||
"followers",
|
||
"following"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "bilibili/me.js",
|
||
"sourceFile": "bilibili/me.js"
|
||
},
|
||
{
|
||
"site": "bilibili",
|
||
"name": "ranking",
|
||
"description": "Get Bilibili video ranking board",
|
||
"domain": "www.bilibili.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": ""
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"score",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "bilibili/ranking.js",
|
||
"sourceFile": "bilibili/ranking.js"
|
||
},
|
||
{
|
||
"site": "bilibili",
|
||
"name": "search",
|
||
"description": "Search Bilibili videos or users",
|
||
"domain": "www.bilibili.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search keyword"
|
||
},
|
||
{
|
||
"name": "type",
|
||
"type": "str",
|
||
"default": "video",
|
||
"required": false,
|
||
"help": "video or user"
|
||
},
|
||
{
|
||
"name": "page",
|
||
"type": "int",
|
||
"default": 1,
|
||
"required": false,
|
||
"help": "Result page"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"score",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "bilibili/search.js",
|
||
"sourceFile": "bilibili/search.js"
|
||
},
|
||
{
|
||
"site": "bilibili",
|
||
"name": "subtitle",
|
||
"description": "获取 Bilibili 视频的字幕",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "bvid",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": ""
|
||
},
|
||
{
|
||
"name": "lang",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "字幕语言代码 (如 zh-CN, en-US, ai-zh),默认取第一个"
|
||
}
|
||
],
|
||
"columns": [
|
||
"index",
|
||
"from",
|
||
"to",
|
||
"content"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "bilibili/subtitle.js",
|
||
"sourceFile": "bilibili/subtitle.js"
|
||
},
|
||
{
|
||
"site": "bilibili",
|
||
"name": "user-videos",
|
||
"description": "查看指定用户的投稿视频",
|
||
"domain": "www.bilibili.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "uid",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "User UID or username"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
},
|
||
{
|
||
"name": "order",
|
||
"type": "str",
|
||
"default": "pubdate",
|
||
"required": false,
|
||
"help": "Sort: pubdate, click, stow"
|
||
},
|
||
{
|
||
"name": "page",
|
||
"type": "int",
|
||
"default": 1,
|
||
"required": false,
|
||
"help": "Page number"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"plays",
|
||
"likes",
|
||
"date",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "bilibili/user-videos.js",
|
||
"sourceFile": "bilibili/user-videos.js"
|
||
},
|
||
{
|
||
"site": "bloomberg",
|
||
"name": "businessweek",
|
||
"description": "Bloomberg Businessweek top stories (RSS)",
|
||
"domain": "feeds.bloomberg.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 1,
|
||
"required": false,
|
||
"help": "Number of feed items to return (max 20)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"summary",
|
||
"link",
|
||
"mediaLinks"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "bloomberg/businessweek.js",
|
||
"sourceFile": "bloomberg/businessweek.js"
|
||
},
|
||
{
|
||
"site": "bloomberg",
|
||
"name": "economics",
|
||
"description": "Bloomberg Economics top stories (RSS)",
|
||
"domain": "feeds.bloomberg.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 1,
|
||
"required": false,
|
||
"help": "Number of feed items to return (max 20)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"summary",
|
||
"link",
|
||
"mediaLinks"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "bloomberg/economics.js",
|
||
"sourceFile": "bloomberg/economics.js"
|
||
},
|
||
{
|
||
"site": "bloomberg",
|
||
"name": "feeds",
|
||
"description": "List the Bloomberg RSS feed aliases used by the adapter",
|
||
"domain": "feeds.bloomberg.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [],
|
||
"columns": [
|
||
"name",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "bloomberg/feeds.js",
|
||
"sourceFile": "bloomberg/feeds.js"
|
||
},
|
||
{
|
||
"site": "bloomberg",
|
||
"name": "industries",
|
||
"description": "Bloomberg Industries top stories (RSS)",
|
||
"domain": "feeds.bloomberg.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 1,
|
||
"required": false,
|
||
"help": "Number of feed items to return (max 20)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"summary",
|
||
"link",
|
||
"mediaLinks"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "bloomberg/industries.js",
|
||
"sourceFile": "bloomberg/industries.js"
|
||
},
|
||
{
|
||
"site": "bloomberg",
|
||
"name": "main",
|
||
"description": "Bloomberg homepage top stories (RSS)",
|
||
"domain": "feeds.bloomberg.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 1,
|
||
"required": false,
|
||
"help": "Number of feed items to return (max 20)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"summary",
|
||
"link",
|
||
"mediaLinks"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "bloomberg/main.js",
|
||
"sourceFile": "bloomberg/main.js"
|
||
},
|
||
{
|
||
"site": "bloomberg",
|
||
"name": "markets",
|
||
"description": "Bloomberg Markets top stories (RSS)",
|
||
"domain": "feeds.bloomberg.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 1,
|
||
"required": false,
|
||
"help": "Number of feed items to return (max 20)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"summary",
|
||
"link",
|
||
"mediaLinks"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "bloomberg/markets.js",
|
||
"sourceFile": "bloomberg/markets.js"
|
||
},
|
||
{
|
||
"site": "bloomberg",
|
||
"name": "news",
|
||
"description": "Read a Bloomberg story/article page and return title, full content, and media links",
|
||
"domain": "www.bloomberg.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "link",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Bloomberg story/article URL or relative Bloomberg path"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"summary",
|
||
"link",
|
||
"mediaLinks",
|
||
"content"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "bloomberg/news.js",
|
||
"sourceFile": "bloomberg/news.js"
|
||
},
|
||
{
|
||
"site": "bloomberg",
|
||
"name": "opinions",
|
||
"description": "Bloomberg Opinion top stories (RSS)",
|
||
"domain": "feeds.bloomberg.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 1,
|
||
"required": false,
|
||
"help": "Number of feed items to return (max 20)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"summary",
|
||
"link",
|
||
"mediaLinks"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "bloomberg/opinions.js",
|
||
"sourceFile": "bloomberg/opinions.js"
|
||
},
|
||
{
|
||
"site": "bloomberg",
|
||
"name": "politics",
|
||
"description": "Bloomberg Politics top stories (RSS)",
|
||
"domain": "feeds.bloomberg.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 1,
|
||
"required": false,
|
||
"help": "Number of feed items to return (max 20)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"summary",
|
||
"link",
|
||
"mediaLinks"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "bloomberg/politics.js",
|
||
"sourceFile": "bloomberg/politics.js"
|
||
},
|
||
{
|
||
"site": "bloomberg",
|
||
"name": "tech",
|
||
"description": "Bloomberg Tech top stories (RSS)",
|
||
"domain": "feeds.bloomberg.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 1,
|
||
"required": false,
|
||
"help": "Number of feed items to return (max 20)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"summary",
|
||
"link",
|
||
"mediaLinks"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "bloomberg/tech.js",
|
||
"sourceFile": "bloomberg/tech.js"
|
||
},
|
||
{
|
||
"site": "bluesky",
|
||
"name": "feeds",
|
||
"description": "Popular Bluesky feed generators",
|
||
"domain": "public.api.bsky.app",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of feeds"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"name",
|
||
"likes",
|
||
"creator",
|
||
"description"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "bluesky/feeds.js",
|
||
"sourceFile": "bluesky/feeds.js"
|
||
},
|
||
{
|
||
"site": "bluesky",
|
||
"name": "followers",
|
||
"description": "List followers of a Bluesky user",
|
||
"domain": "public.api.bsky.app",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "handle",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Bluesky handle"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of followers"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"handle",
|
||
"name",
|
||
"description"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "bluesky/followers.js",
|
||
"sourceFile": "bluesky/followers.js"
|
||
},
|
||
{
|
||
"site": "bluesky",
|
||
"name": "following",
|
||
"description": "List accounts a Bluesky user is following",
|
||
"domain": "public.api.bsky.app",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "handle",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Bluesky handle"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of accounts"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"handle",
|
||
"name",
|
||
"description"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "bluesky/following.js",
|
||
"sourceFile": "bluesky/following.js"
|
||
},
|
||
{
|
||
"site": "bluesky",
|
||
"name": "profile",
|
||
"description": "Get Bluesky user profile info",
|
||
"domain": "public.api.bsky.app",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "handle",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Bluesky handle (e.g. bsky.app, jay.bsky.team)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"handle",
|
||
"name",
|
||
"followers",
|
||
"following",
|
||
"posts",
|
||
"description"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "bluesky/profile.js",
|
||
"sourceFile": "bluesky/profile.js"
|
||
},
|
||
{
|
||
"site": "bluesky",
|
||
"name": "search",
|
||
"description": "Search Bluesky users",
|
||
"domain": "public.api.bsky.app",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search query"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"handle",
|
||
"name",
|
||
"followers",
|
||
"description"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "bluesky/search.js",
|
||
"sourceFile": "bluesky/search.js"
|
||
},
|
||
{
|
||
"site": "bluesky",
|
||
"name": "starter-packs",
|
||
"description": "Get starter packs created by a Bluesky user",
|
||
"domain": "public.api.bsky.app",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "handle",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Bluesky handle"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of starter packs"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"name",
|
||
"description",
|
||
"members",
|
||
"joins"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "bluesky/starter-packs.js",
|
||
"sourceFile": "bluesky/starter-packs.js"
|
||
},
|
||
{
|
||
"site": "bluesky",
|
||
"name": "thread",
|
||
"description": "Get a Bluesky post thread with replies",
|
||
"domain": "public.api.bsky.app",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "uri",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Post AT URI (at://did:.../app.bsky.feed.post/...) or bsky.app URL"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of replies"
|
||
}
|
||
],
|
||
"columns": [
|
||
"author",
|
||
"text",
|
||
"likes",
|
||
"reposts",
|
||
"replies_count"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "bluesky/thread.js",
|
||
"sourceFile": "bluesky/thread.js"
|
||
},
|
||
{
|
||
"site": "bluesky",
|
||
"name": "trending",
|
||
"description": "Trending topics on Bluesky",
|
||
"domain": "public.api.bsky.app",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of topics"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"topic",
|
||
"link"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "bluesky/trending.js",
|
||
"sourceFile": "bluesky/trending.js"
|
||
},
|
||
{
|
||
"site": "bluesky",
|
||
"name": "user",
|
||
"description": "Get recent posts from a Bluesky user",
|
||
"domain": "public.api.bsky.app",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "handle",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Bluesky handle (e.g. bsky.app)"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of posts"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"text",
|
||
"likes",
|
||
"reposts",
|
||
"replies"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "bluesky/user.js",
|
||
"sourceFile": "bluesky/user.js"
|
||
},
|
||
{
|
||
"site": "boss",
|
||
"name": "batchgreet",
|
||
"description": "BOSS直聘批量向推荐候选人发送招呼",
|
||
"domain": "www.zhipin.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "job-id",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "Filter by encrypted job ID (greet all jobs if empty)"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 5,
|
||
"required": false,
|
||
"help": "Max candidates to greet"
|
||
},
|
||
{
|
||
"name": "text",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "Custom greeting message (uses default if empty)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"name",
|
||
"status",
|
||
"detail"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "boss/batchgreet.js",
|
||
"sourceFile": "boss/batchgreet.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "boss",
|
||
"name": "chatlist",
|
||
"description": "BOSS直聘查看聊天列表(招聘端)",
|
||
"domain": "www.zhipin.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "page",
|
||
"type": "int",
|
||
"default": 1,
|
||
"required": false,
|
||
"help": "Page number"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
},
|
||
{
|
||
"name": "job-id",
|
||
"type": "str",
|
||
"default": "0",
|
||
"required": false,
|
||
"help": "Filter by job ID (0=all)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"name",
|
||
"job",
|
||
"last_msg",
|
||
"last_time",
|
||
"uid",
|
||
"security_id"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "boss/chatlist.js",
|
||
"sourceFile": "boss/chatlist.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "boss",
|
||
"name": "chatmsg",
|
||
"description": "BOSS直聘查看与候选人的聊天消息",
|
||
"domain": "www.zhipin.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "uid",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Encrypted UID (from chatlist)"
|
||
},
|
||
{
|
||
"name": "page",
|
||
"type": "int",
|
||
"default": 1,
|
||
"required": false,
|
||
"help": "Page number"
|
||
}
|
||
],
|
||
"columns": [
|
||
"from",
|
||
"type",
|
||
"text",
|
||
"time"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "boss/chatmsg.js",
|
||
"sourceFile": "boss/chatmsg.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "boss",
|
||
"name": "detail",
|
||
"description": "BOSS直聘查看职位详情",
|
||
"domain": "www.zhipin.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "security-id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Security ID from search results (securityId field)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"name",
|
||
"salary",
|
||
"experience",
|
||
"degree",
|
||
"city",
|
||
"district",
|
||
"description",
|
||
"skills",
|
||
"welfare",
|
||
"boss_name",
|
||
"boss_title",
|
||
"active_time",
|
||
"company",
|
||
"industry",
|
||
"scale",
|
||
"stage",
|
||
"address",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "boss/detail.js",
|
||
"sourceFile": "boss/detail.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "boss",
|
||
"name": "exchange",
|
||
"description": "BOSS直聘交换联系方式(请求手机/微信)",
|
||
"domain": "www.zhipin.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "uid",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Encrypted UID of the candidate"
|
||
},
|
||
{
|
||
"name": "type",
|
||
"type": "str",
|
||
"default": "phone",
|
||
"required": false,
|
||
"help": "Exchange type: phone or wechat",
|
||
"choices": [
|
||
"phone",
|
||
"wechat"
|
||
]
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"detail"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "boss/exchange.js",
|
||
"sourceFile": "boss/exchange.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "boss",
|
||
"name": "greet",
|
||
"description": "BOSS直聘向新候选人发送招呼(开始聊天)",
|
||
"domain": "www.zhipin.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "uid",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Encrypted UID of the candidate (from recommend)"
|
||
},
|
||
{
|
||
"name": "security-id",
|
||
"type": "str",
|
||
"required": true,
|
||
"help": "Security ID of the candidate"
|
||
},
|
||
{
|
||
"name": "job-id",
|
||
"type": "str",
|
||
"required": true,
|
||
"help": "Encrypted job ID"
|
||
},
|
||
{
|
||
"name": "text",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "Custom greeting message (uses default template if empty)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"detail"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "boss/greet.js",
|
||
"sourceFile": "boss/greet.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "boss",
|
||
"name": "invite",
|
||
"description": "BOSS直聘发送面试邀请",
|
||
"domain": "www.zhipin.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "uid",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Encrypted UID of the candidate"
|
||
},
|
||
{
|
||
"name": "time",
|
||
"type": "str",
|
||
"required": true,
|
||
"help": "Interview time (e.g. 2025-04-01 14:00)"
|
||
},
|
||
{
|
||
"name": "address",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "Interview address (uses saved address if empty)"
|
||
},
|
||
{
|
||
"name": "contact",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "Contact person name (uses saved contact if empty)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"detail"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "boss/invite.js",
|
||
"sourceFile": "boss/invite.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "boss",
|
||
"name": "joblist",
|
||
"description": "BOSS直聘查看我发布的职位列表",
|
||
"domain": "www.zhipin.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"job_name",
|
||
"salary",
|
||
"city",
|
||
"status",
|
||
"encrypt_job_id"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "boss/joblist.js",
|
||
"sourceFile": "boss/joblist.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "boss",
|
||
"name": "mark",
|
||
"description": "BOSS直聘给候选人添加标签",
|
||
"domain": "www.zhipin.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "uid",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Encrypted UID of the candidate"
|
||
},
|
||
{
|
||
"name": "label",
|
||
"type": "str",
|
||
"required": true,
|
||
"help": "Label name (新招呼/沟通中/已约面/已获取简历/已交换电话/已交换微信/不合适/收藏) or label ID"
|
||
},
|
||
{
|
||
"name": "remove",
|
||
"type": "boolean",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "Remove the label instead of adding"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"detail"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "boss/mark.js",
|
||
"sourceFile": "boss/mark.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "boss",
|
||
"name": "recommend",
|
||
"description": "BOSS直聘查看推荐候选人(新招呼列表)",
|
||
"domain": "www.zhipin.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of results to return"
|
||
}
|
||
],
|
||
"columns": [
|
||
"name",
|
||
"job_name",
|
||
"last_time",
|
||
"labels",
|
||
"encrypt_uid",
|
||
"security_id",
|
||
"encrypt_job_id"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "boss/recommend.js",
|
||
"sourceFile": "boss/recommend.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "boss",
|
||
"name": "resume",
|
||
"description": "BOSS直聘查看候选人简历(招聘端)",
|
||
"domain": "www.zhipin.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "uid",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Encrypted UID of the candidate (from chatlist)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"name",
|
||
"gender",
|
||
"age",
|
||
"experience",
|
||
"degree",
|
||
"active_time",
|
||
"work_history",
|
||
"education",
|
||
"job_chatting",
|
||
"expect"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "boss/resume.js",
|
||
"sourceFile": "boss/resume.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "boss",
|
||
"name": "search",
|
||
"description": "BOSS直聘搜索职位",
|
||
"domain": "www.zhipin.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search keyword (e.g. AI agent, 前端)"
|
||
},
|
||
{
|
||
"name": "city",
|
||
"type": "str",
|
||
"default": "北京",
|
||
"required": false,
|
||
"help": "City name or code (e.g. 杭州, 上海, 101010100)"
|
||
},
|
||
{
|
||
"name": "experience",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "Experience: 应届/1年以内/1-3年/3-5年/5-10年/10年以上"
|
||
},
|
||
{
|
||
"name": "degree",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "Degree: 大专/本科/硕士/博士"
|
||
},
|
||
{
|
||
"name": "salary",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "Salary: 3K以下/3-5K/5-10K/10-15K/15-20K/20-30K/30-50K/50K以上"
|
||
},
|
||
{
|
||
"name": "industry",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "Industry code or name (e.g. 100020, 互联网)"
|
||
},
|
||
{
|
||
"name": "page",
|
||
"type": "int",
|
||
"default": 1,
|
||
"required": false,
|
||
"help": "Page number"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 15,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"name",
|
||
"salary",
|
||
"company",
|
||
"area",
|
||
"experience",
|
||
"degree",
|
||
"skills",
|
||
"boss",
|
||
"security_id",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "boss/search.js",
|
||
"sourceFile": "boss/search.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "boss",
|
||
"name": "send",
|
||
"description": "BOSS直聘发送聊天消息",
|
||
"domain": "www.zhipin.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "uid",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Encrypted UID of the candidate (from chatlist)"
|
||
},
|
||
{
|
||
"name": "text",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Message text to send"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"detail"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "boss/send.js",
|
||
"sourceFile": "boss/send.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "boss",
|
||
"name": "stats",
|
||
"description": "BOSS直聘职位数据统计",
|
||
"domain": "www.zhipin.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "job-id",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "Encrypted job ID (show all if empty)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"job_name",
|
||
"salary",
|
||
"city",
|
||
"status",
|
||
"total_chats",
|
||
"encrypt_job_id"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "boss/stats.js",
|
||
"sourceFile": "boss/stats.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "chaoxing",
|
||
"name": "assignments",
|
||
"description": "学习通作业列表",
|
||
"domain": "mooc2-ans.chaoxing.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "course",
|
||
"type": "string",
|
||
"required": false,
|
||
"help": "按课程名过滤(模糊匹配)"
|
||
},
|
||
{
|
||
"name": "status",
|
||
"type": "string",
|
||
"default": "all",
|
||
"required": false,
|
||
"help": "按状态过滤",
|
||
"choices": [
|
||
"all",
|
||
"pending",
|
||
"submitted",
|
||
"graded"
|
||
]
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "最大返回数量"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"course",
|
||
"title",
|
||
"deadline",
|
||
"status",
|
||
"score"
|
||
],
|
||
"timeout": 90,
|
||
"type": "js",
|
||
"modulePath": "chaoxing/assignments.js",
|
||
"sourceFile": "chaoxing/assignments.js"
|
||
},
|
||
{
|
||
"site": "chaoxing",
|
||
"name": "exams",
|
||
"description": "学习通考试列表",
|
||
"domain": "mooc2-ans.chaoxing.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "course",
|
||
"type": "string",
|
||
"required": false,
|
||
"help": "按课程名过滤(模糊匹配)"
|
||
},
|
||
{
|
||
"name": "status",
|
||
"type": "string",
|
||
"default": "all",
|
||
"required": false,
|
||
"help": "按状态过滤",
|
||
"choices": [
|
||
"all",
|
||
"upcoming",
|
||
"ongoing",
|
||
"finished"
|
||
]
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "最大返回数量"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"course",
|
||
"title",
|
||
"start",
|
||
"end",
|
||
"status",
|
||
"score"
|
||
],
|
||
"timeout": 90,
|
||
"type": "js",
|
||
"modulePath": "chaoxing/exams.js",
|
||
"sourceFile": "chaoxing/exams.js"
|
||
},
|
||
{
|
||
"site": "chatgpt",
|
||
"name": "ask",
|
||
"description": "Send a prompt and wait for the AI response (send + wait + read)",
|
||
"domain": "localhost",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "text",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Prompt to send"
|
||
},
|
||
{
|
||
"name": "model",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Model/mode to use: auto, instant, thinking, 5.2-instant, 5.2-thinking",
|
||
"choices": [
|
||
"auto",
|
||
"instant",
|
||
"thinking",
|
||
"5.2-instant",
|
||
"5.2-thinking"
|
||
]
|
||
},
|
||
{
|
||
"name": "timeout",
|
||
"type": "str",
|
||
"default": "30",
|
||
"required": false,
|
||
"help": "Max seconds to wait for response (default: 30)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Role",
|
||
"Text"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "chatgpt/ask.js",
|
||
"sourceFile": "chatgpt/ask.js"
|
||
},
|
||
{
|
||
"site": "chatgpt",
|
||
"name": "model",
|
||
"description": "Switch ChatGPT Desktop model/mode (auto, instant, thinking, 5.2-instant, 5.2-thinking)",
|
||
"domain": "localhost",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "model",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Model to switch to",
|
||
"choices": [
|
||
"auto",
|
||
"instant",
|
||
"thinking",
|
||
"5.2-instant",
|
||
"5.2-thinking"
|
||
]
|
||
}
|
||
],
|
||
"columns": [
|
||
"Status",
|
||
"Model"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "chatgpt/model.js",
|
||
"sourceFile": "chatgpt/model.js"
|
||
},
|
||
{
|
||
"site": "chatgpt",
|
||
"name": "new",
|
||
"description": "Open a new chat in ChatGPT Desktop App",
|
||
"domain": "localhost",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [],
|
||
"columns": [
|
||
"Status"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "chatgpt/new.js",
|
||
"sourceFile": "chatgpt/new.js"
|
||
},
|
||
{
|
||
"site": "chatgpt",
|
||
"name": "read",
|
||
"description": "Read the last visible message from the focused ChatGPT Desktop window",
|
||
"domain": "localhost",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [],
|
||
"columns": [
|
||
"Role",
|
||
"Text"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "chatgpt/read.js",
|
||
"sourceFile": "chatgpt/read.js"
|
||
},
|
||
{
|
||
"site": "chatgpt",
|
||
"name": "send",
|
||
"description": "Send a message to the active ChatGPT Desktop App window",
|
||
"domain": "localhost",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "text",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Message to send"
|
||
},
|
||
{
|
||
"name": "model",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Model/mode to use: auto, instant, thinking, 5.2-instant, 5.2-thinking",
|
||
"choices": [
|
||
"auto",
|
||
"instant",
|
||
"thinking",
|
||
"5.2-instant",
|
||
"5.2-thinking"
|
||
]
|
||
}
|
||
],
|
||
"columns": [
|
||
"Status"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "chatgpt/send.js",
|
||
"sourceFile": "chatgpt/send.js"
|
||
},
|
||
{
|
||
"site": "chatgpt",
|
||
"name": "status",
|
||
"description": "Check if ChatGPT Desktop App is running natively on macOS",
|
||
"domain": "localhost",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [],
|
||
"columns": [
|
||
"Status"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "chatgpt/status.js",
|
||
"sourceFile": "chatgpt/status.js"
|
||
},
|
||
{
|
||
"site": "chatwise",
|
||
"name": "ask",
|
||
"description": "Send a prompt and wait for the AI response (send + wait + read)",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "text",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Prompt to send"
|
||
},
|
||
{
|
||
"name": "timeout",
|
||
"type": "str",
|
||
"default": "30",
|
||
"required": false,
|
||
"help": "Max seconds to wait (default: 30)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Role",
|
||
"Text"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "chatwise/ask.js",
|
||
"sourceFile": "chatwise/ask.js"
|
||
},
|
||
{
|
||
"site": "chatwise",
|
||
"name": "export",
|
||
"description": "Export the current ChatWise conversation to a Markdown file",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "output",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Output file (default: /tmp/chatwise-export.md)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Status",
|
||
"File",
|
||
"Messages"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "chatwise/export.js",
|
||
"sourceFile": "chatwise/export.js"
|
||
},
|
||
{
|
||
"site": "chatwise",
|
||
"name": "history",
|
||
"description": "List conversation history in ChatWise sidebar",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"Index",
|
||
"Title"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "chatwise/history.js",
|
||
"sourceFile": "chatwise/history.js"
|
||
},
|
||
{
|
||
"site": "chatwise",
|
||
"name": "model",
|
||
"description": "Get or switch the active AI model in ChatWise",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "model-name",
|
||
"type": "str",
|
||
"required": false,
|
||
"positional": true,
|
||
"help": "Model to switch to (e.g. gpt-4, claude-3)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Status",
|
||
"Model"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "chatwise/model.js",
|
||
"sourceFile": "chatwise/model.js"
|
||
},
|
||
{
|
||
"site": "chatwise",
|
||
"name": "read",
|
||
"description": "Read the current ChatWise conversation history",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"Content"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "chatwise/read.js",
|
||
"sourceFile": "chatwise/read.js"
|
||
},
|
||
{
|
||
"site": "chatwise",
|
||
"name": "send",
|
||
"description": "Send a message to the active ChatWise conversation",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "text",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Message to send"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Status",
|
||
"InjectedText"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "chatwise/send.js",
|
||
"sourceFile": "chatwise/send.js"
|
||
},
|
||
{
|
||
"site": "cnki",
|
||
"name": "search",
|
||
"description": "中国知网论文搜索(海外版)",
|
||
"domain": "oversea.cnki.net",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "搜索关键词"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "返回结果数量 (max 20)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"authors",
|
||
"journal",
|
||
"date",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "cnki/search.js",
|
||
"sourceFile": "cnki/search.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "codex",
|
||
"name": "ask",
|
||
"description": "Send a prompt and wait for the AI response (send + wait + read)",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "text",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Prompt to send"
|
||
},
|
||
{
|
||
"name": "timeout",
|
||
"type": "str",
|
||
"default": "60",
|
||
"required": false,
|
||
"help": "Max seconds to wait for response (default: 60)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Role",
|
||
"Text"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "codex/ask.js",
|
||
"sourceFile": "codex/ask.js"
|
||
},
|
||
{
|
||
"site": "codex",
|
||
"name": "export",
|
||
"description": "Export the current Codex conversation to a Markdown file",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "output",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Output file (default: /tmp/codex-export.md)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Status",
|
||
"File",
|
||
"Messages"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "codex/export.js",
|
||
"sourceFile": "codex/export.js"
|
||
},
|
||
{
|
||
"site": "codex",
|
||
"name": "extract-diff",
|
||
"description": "Extract visual code review diff patches from Codex",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"File",
|
||
"Diff"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "codex/extract-diff.js",
|
||
"sourceFile": "codex/extract-diff.js"
|
||
},
|
||
{
|
||
"site": "codex",
|
||
"name": "history",
|
||
"description": "List recent conversation threads in Codex",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"Index",
|
||
"Title"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "codex/history.js",
|
||
"sourceFile": "codex/history.js"
|
||
},
|
||
{
|
||
"site": "codex",
|
||
"name": "model",
|
||
"description": "Get or switch the currently active AI model in Codex Desktop",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "model-name",
|
||
"type": "str",
|
||
"required": false,
|
||
"positional": true,
|
||
"help": "The ID of the model to switch to (e.g. gpt-4)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Status",
|
||
"Model"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "codex/model.js",
|
||
"sourceFile": "codex/model.js"
|
||
},
|
||
{
|
||
"site": "codex",
|
||
"name": "read",
|
||
"description": "Read the contents of the current Codex conversation thread",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"Content"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "codex/read.js",
|
||
"sourceFile": "codex/read.js"
|
||
},
|
||
{
|
||
"site": "codex",
|
||
"name": "send",
|
||
"description": "Send text/commands to the Codex AI composer",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "text",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Text, command (e.g. /review), or skill (e.g. $imagegen)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Status",
|
||
"InjectedText"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "codex/send.js",
|
||
"sourceFile": "codex/send.js"
|
||
},
|
||
{
|
||
"site": "coupang",
|
||
"name": "add-to-cart",
|
||
"description": "Add a Coupang product to cart using logged-in browser session",
|
||
"domain": "www.coupang.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "product-id",
|
||
"type": "str",
|
||
"required": false,
|
||
"positional": true,
|
||
"help": "Coupang product ID"
|
||
},
|
||
{
|
||
"name": "url",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Canonical product URL"
|
||
}
|
||
],
|
||
"columns": [
|
||
"ok",
|
||
"product_id",
|
||
"url",
|
||
"message"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "coupang/add-to-cart.js",
|
||
"sourceFile": "coupang/add-to-cart.js"
|
||
},
|
||
{
|
||
"site": "coupang",
|
||
"name": "search",
|
||
"description": "Search Coupang products with logged-in browser session",
|
||
"domain": "www.coupang.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search keyword"
|
||
},
|
||
{
|
||
"name": "page",
|
||
"type": "int",
|
||
"default": 1,
|
||
"required": false,
|
||
"help": "Search result page number"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Max results (max 50)"
|
||
},
|
||
{
|
||
"name": "filter",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Optional search filter (currently supports: rocket)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"price",
|
||
"unit_price",
|
||
"rating",
|
||
"review_count",
|
||
"rocket",
|
||
"delivery_type",
|
||
"delivery_promise",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "coupang/search.js",
|
||
"sourceFile": "coupang/search.js"
|
||
},
|
||
{
|
||
"site": "ctrip",
|
||
"name": "search",
|
||
"description": "搜索携程目的地、景区和酒店联想结果",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search keyword (city or attraction)"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 15,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"name",
|
||
"type",
|
||
"score",
|
||
"price",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "ctrip/search.js",
|
||
"sourceFile": "ctrip/search.js"
|
||
},
|
||
{
|
||
"site": "cursor",
|
||
"name": "ask",
|
||
"description": "Send a prompt and wait for the AI response (send + wait + read)",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "text",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Prompt to send"
|
||
},
|
||
{
|
||
"name": "timeout",
|
||
"type": "str",
|
||
"default": "30",
|
||
"required": false,
|
||
"help": "Max seconds to wait for response (default: 30)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Role",
|
||
"Text"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "cursor/ask.js",
|
||
"sourceFile": "cursor/ask.js"
|
||
},
|
||
{
|
||
"site": "cursor",
|
||
"name": "composer",
|
||
"description": "Send a prompt directly into Cursor Composer (Cmd+I shortcut)",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "text",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Text to send into Composer"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Status",
|
||
"InjectedText"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "cursor/composer.js",
|
||
"sourceFile": "cursor/composer.js"
|
||
},
|
||
{
|
||
"site": "cursor",
|
||
"name": "export",
|
||
"description": "Export the current cursor conversation to a Markdown file",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "output",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Output file (default: /tmp/cursor-export.md)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Status",
|
||
"File",
|
||
"Messages"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "cursor/export.js",
|
||
"sourceFile": "cursor/export.js"
|
||
},
|
||
{
|
||
"site": "cursor",
|
||
"name": "extract-code",
|
||
"description": "Extract multi-line code blocks from the current Cursor conversation",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"Code"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "cursor/extract-code.js",
|
||
"sourceFile": "cursor/extract-code.js"
|
||
},
|
||
{
|
||
"site": "cursor",
|
||
"name": "history",
|
||
"description": "List recent chat sessions from the Cursor sidebar",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"Index",
|
||
"Title"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "cursor/history.js",
|
||
"sourceFile": "cursor/history.js"
|
||
},
|
||
{
|
||
"site": "cursor",
|
||
"name": "model",
|
||
"description": "Get or switch the currently active AI model in Cursor",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "model-name",
|
||
"type": "str",
|
||
"required": false,
|
||
"positional": true,
|
||
"help": "The ID of the model to switch to (e.g. claude-3.5-sonnet)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Status",
|
||
"Model"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "cursor/model.js",
|
||
"sourceFile": "cursor/model.js"
|
||
},
|
||
{
|
||
"site": "cursor",
|
||
"name": "read",
|
||
"description": "Read the current Cursor chat/composer conversation history",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"Role",
|
||
"Text"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "cursor/read.js",
|
||
"sourceFile": "cursor/read.js"
|
||
},
|
||
{
|
||
"site": "cursor",
|
||
"name": "send",
|
||
"description": "Send a prompt directly into Cursor Composer/Chat",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "text",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Text to send into Cursor"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Status",
|
||
"InjectedText"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "cursor/send.js",
|
||
"sourceFile": "cursor/send.js"
|
||
},
|
||
{
|
||
"site": "devto",
|
||
"name": "tag",
|
||
"description": "Latest DEV.to articles for a specific tag",
|
||
"domain": "dev.to",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "tag",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Tag name (e.g. javascript, python, webdev)"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of articles"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"reactions",
|
||
"comments",
|
||
"tags"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "devto/tag.js",
|
||
"sourceFile": "devto/tag.js"
|
||
},
|
||
{
|
||
"site": "devto",
|
||
"name": "top",
|
||
"description": "Top DEV.to articles of the day",
|
||
"domain": "dev.to",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of articles"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"reactions",
|
||
"comments",
|
||
"tags"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "devto/top.js",
|
||
"sourceFile": "devto/top.js"
|
||
},
|
||
{
|
||
"site": "devto",
|
||
"name": "user",
|
||
"description": "Recent DEV.to articles from a specific user",
|
||
"domain": "dev.to",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "DEV.to username (e.g. ben, thepracticaldev)"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of articles"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"reactions",
|
||
"comments",
|
||
"tags"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "devto/user.js",
|
||
"sourceFile": "devto/user.js"
|
||
},
|
||
{
|
||
"site": "dictionary",
|
||
"name": "examples",
|
||
"description": "Read real-world example sentences utilizing the word",
|
||
"domain": "api.dictionaryapi.dev",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "word",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Word to get example sentences for"
|
||
}
|
||
],
|
||
"columns": [
|
||
"word",
|
||
"example"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "dictionary/examples.js",
|
||
"sourceFile": "dictionary/examples.js"
|
||
},
|
||
{
|
||
"site": "dictionary",
|
||
"name": "search",
|
||
"description": "Search the Free Dictionary API for definitions, parts of speech, and pronunciations.",
|
||
"domain": "api.dictionaryapi.dev",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "word",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Word to define (e.g., serendipity)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"word",
|
||
"phonetic",
|
||
"type",
|
||
"definition"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "dictionary/search.js",
|
||
"sourceFile": "dictionary/search.js"
|
||
},
|
||
{
|
||
"site": "dictionary",
|
||
"name": "synonyms",
|
||
"description": "Find synonyms for a specific word",
|
||
"domain": "api.dictionaryapi.dev",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "word",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Word to find synonyms for (e.g., serendipity)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"word",
|
||
"synonyms"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "dictionary/synonyms.js",
|
||
"sourceFile": "dictionary/synonyms.js"
|
||
},
|
||
{
|
||
"site": "discord-app",
|
||
"name": "channels",
|
||
"description": "List channels in the current Discord server",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"Index",
|
||
"Channel",
|
||
"Type"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "discord-app/channels.js",
|
||
"sourceFile": "discord-app/channels.js"
|
||
},
|
||
{
|
||
"site": "discord-app",
|
||
"name": "members",
|
||
"description": "List online members in the current Discord channel",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"Index",
|
||
"Name",
|
||
"Status"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "discord-app/members.js",
|
||
"sourceFile": "discord-app/members.js"
|
||
},
|
||
{
|
||
"site": "discord-app",
|
||
"name": "read",
|
||
"description": "Read recent messages from the active Discord channel",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "count",
|
||
"type": "str",
|
||
"default": "20",
|
||
"required": false,
|
||
"help": "Number of messages to read (default: 20)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Author",
|
||
"Time",
|
||
"Message"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "discord-app/read.js",
|
||
"sourceFile": "discord-app/read.js"
|
||
},
|
||
{
|
||
"site": "discord-app",
|
||
"name": "search",
|
||
"description": "Search messages in the current Discord server/channel (Cmd+F)",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search query"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Index",
|
||
"Author",
|
||
"Message"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "discord-app/search.js",
|
||
"sourceFile": "discord-app/search.js"
|
||
},
|
||
{
|
||
"site": "discord-app",
|
||
"name": "send",
|
||
"description": "Send a message in the active Discord channel",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "text",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Message to send"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Status"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "discord-app/send.js",
|
||
"sourceFile": "discord-app/send.js"
|
||
},
|
||
{
|
||
"site": "discord-app",
|
||
"name": "servers",
|
||
"description": "List all Discord servers (guilds) in the sidebar",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"Index",
|
||
"Server"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "discord-app/servers.js",
|
||
"sourceFile": "discord-app/servers.js"
|
||
},
|
||
{
|
||
"site": "discord-app",
|
||
"name": "status",
|
||
"description": "Check active CDP connection to Discord Desktop",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"Status",
|
||
"Url",
|
||
"Title"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "discord-app/status.js",
|
||
"sourceFile": "discord-app/status.js"
|
||
},
|
||
{
|
||
"site": "douban",
|
||
"name": "book-hot",
|
||
"description": "豆瓣图书热门榜单",
|
||
"domain": "book.douban.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "返回的图书数量"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"rating",
|
||
"quote",
|
||
"author",
|
||
"publisher",
|
||
"year",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "douban/book-hot.js",
|
||
"sourceFile": "douban/book-hot.js"
|
||
},
|
||
{
|
||
"site": "douban",
|
||
"name": "download",
|
||
"description": "下载电影海报/剧照图片",
|
||
"domain": "movie.douban.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "电影 subject ID"
|
||
},
|
||
{
|
||
"name": "type",
|
||
"type": "str",
|
||
"default": "Rb",
|
||
"required": false,
|
||
"help": "豆瓣 photos 的 type 参数,默认 Rb(海报)"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 120,
|
||
"required": false,
|
||
"help": "最多下载多少张图片"
|
||
},
|
||
{
|
||
"name": "photo-id",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "只下载指定 photo_id 的图片"
|
||
},
|
||
{
|
||
"name": "output",
|
||
"type": "str",
|
||
"default": "./douban-downloads",
|
||
"required": false,
|
||
"help": "输出目录"
|
||
}
|
||
],
|
||
"columns": [
|
||
"index",
|
||
"title",
|
||
"status",
|
||
"size"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "douban/download.js",
|
||
"sourceFile": "douban/download.js"
|
||
},
|
||
{
|
||
"site": "douban",
|
||
"name": "marks",
|
||
"description": "导出个人观影标记",
|
||
"domain": "movie.douban.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "status",
|
||
"type": "str",
|
||
"default": "collect",
|
||
"required": false,
|
||
"help": "标记类型: collect(看过), wish(想看), do(在看), all(全部)",
|
||
"choices": [
|
||
"collect",
|
||
"wish",
|
||
"do",
|
||
"all"
|
||
]
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 50,
|
||
"required": false,
|
||
"help": "导出数量, 0 表示全部"
|
||
},
|
||
{
|
||
"name": "uid",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "用户ID,不填则使用当前登录账号"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"year",
|
||
"myRating",
|
||
"myStatus",
|
||
"myDate",
|
||
"myComment",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "douban/marks.js",
|
||
"sourceFile": "douban/marks.js"
|
||
},
|
||
{
|
||
"site": "douban",
|
||
"name": "movie-hot",
|
||
"description": "豆瓣电影热门榜单",
|
||
"domain": "movie.douban.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "返回的电影数量"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"rating",
|
||
"quote",
|
||
"director",
|
||
"year",
|
||
"region",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "douban/movie-hot.js",
|
||
"sourceFile": "douban/movie-hot.js"
|
||
},
|
||
{
|
||
"site": "douban",
|
||
"name": "photos",
|
||
"description": "获取电影海报/剧照图片列表",
|
||
"domain": "movie.douban.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "电影 subject ID"
|
||
},
|
||
{
|
||
"name": "type",
|
||
"type": "str",
|
||
"default": "Rb",
|
||
"required": false,
|
||
"help": "豆瓣 photos 的 type 参数,默认 Rb(海报)"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 120,
|
||
"required": false,
|
||
"help": "最多返回多少张图片"
|
||
}
|
||
],
|
||
"columns": [
|
||
"index",
|
||
"title",
|
||
"image_url",
|
||
"detail_url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "douban/photos.js",
|
||
"sourceFile": "douban/photos.js"
|
||
},
|
||
{
|
||
"site": "douban",
|
||
"name": "reviews",
|
||
"description": "导出个人影评",
|
||
"domain": "movie.douban.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "导出数量"
|
||
},
|
||
{
|
||
"name": "uid",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "用户ID,不填则使用当前登录账号"
|
||
},
|
||
{
|
||
"name": "full",
|
||
"type": "bool",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "获取完整影评内容"
|
||
}
|
||
],
|
||
"columns": [
|
||
"movieTitle",
|
||
"title",
|
||
"myRating",
|
||
"votes",
|
||
"content",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "douban/reviews.js",
|
||
"sourceFile": "douban/reviews.js"
|
||
},
|
||
{
|
||
"site": "douban",
|
||
"name": "search",
|
||
"description": "搜索豆瓣电影、图书或音乐",
|
||
"domain": "search.douban.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "type",
|
||
"type": "str",
|
||
"default": "movie",
|
||
"required": false,
|
||
"help": "搜索类型(movie=电影, book=图书, music=音乐)",
|
||
"choices": [
|
||
"movie",
|
||
"book",
|
||
"music"
|
||
]
|
||
},
|
||
{
|
||
"name": "keyword",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "搜索关键词"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "返回结果数量"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"rating",
|
||
"abstract",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "douban/search.js",
|
||
"sourceFile": "douban/search.js"
|
||
},
|
||
{
|
||
"site": "douban",
|
||
"name": "subject",
|
||
"description": "获取电影详情",
|
||
"domain": "movie.douban.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "电影 ID"
|
||
}
|
||
],
|
||
"columns": [
|
||
"id",
|
||
"title",
|
||
"originalTitle",
|
||
"year",
|
||
"rating",
|
||
"ratingCount",
|
||
"genres",
|
||
"directors",
|
||
"casts",
|
||
"country",
|
||
"duration",
|
||
"summary",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "douban/subject.js",
|
||
"sourceFile": "douban/subject.js"
|
||
},
|
||
{
|
||
"site": "douban",
|
||
"name": "top250",
|
||
"description": "豆瓣电影 Top250",
|
||
"domain": "movie.douban.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 250,
|
||
"required": false,
|
||
"help": "返回结果数量"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"id",
|
||
"title",
|
||
"rating",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "douban/top250.js",
|
||
"sourceFile": "douban/top250.js"
|
||
},
|
||
{
|
||
"site": "doubao",
|
||
"name": "ask",
|
||
"description": "Send a prompt and wait for the Doubao response",
|
||
"domain": "www.doubao.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "text",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Prompt to send"
|
||
},
|
||
{
|
||
"name": "timeout",
|
||
"type": "str",
|
||
"default": "60",
|
||
"required": false,
|
||
"help": "Max seconds to wait (default: 60)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Role",
|
||
"Text"
|
||
],
|
||
"timeout": 180,
|
||
"type": "js",
|
||
"modulePath": "doubao/ask.js",
|
||
"sourceFile": "doubao/ask.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "doubao",
|
||
"name": "detail",
|
||
"description": "Read a specific Doubao conversation by ID",
|
||
"domain": "www.doubao.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Conversation ID (numeric or full URL)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Role",
|
||
"Text"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "doubao/detail.js",
|
||
"sourceFile": "doubao/detail.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "doubao",
|
||
"name": "history",
|
||
"description": "List conversation history from Doubao sidebar",
|
||
"domain": "www.doubao.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "str",
|
||
"default": "50",
|
||
"required": false,
|
||
"help": "Max number of conversations to show"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Index",
|
||
"Id",
|
||
"Title",
|
||
"Url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "doubao/history.js",
|
||
"sourceFile": "doubao/history.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "doubao",
|
||
"name": "meeting-summary",
|
||
"description": "Get meeting summary and chapters from a Doubao conversation",
|
||
"domain": "www.doubao.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Conversation ID (numeric or full URL)"
|
||
},
|
||
{
|
||
"name": "chapters",
|
||
"type": "str",
|
||
"default": "false",
|
||
"required": false,
|
||
"help": "Also include AI chapters"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Section",
|
||
"Content"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "doubao/meeting-summary.js",
|
||
"sourceFile": "doubao/meeting-summary.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "doubao",
|
||
"name": "meeting-transcript",
|
||
"description": "Get or download the meeting transcript from a Doubao conversation",
|
||
"domain": "www.doubao.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Conversation ID (numeric or full URL)"
|
||
},
|
||
{
|
||
"name": "download",
|
||
"type": "str",
|
||
"default": "false",
|
||
"required": false,
|
||
"help": "Trigger browser file download instead of reading text"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Section",
|
||
"Content"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "doubao/meeting-transcript.js",
|
||
"sourceFile": "doubao/meeting-transcript.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "doubao",
|
||
"name": "new",
|
||
"description": "Start a new conversation in Doubao web chat",
|
||
"domain": "www.doubao.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"Status",
|
||
"Action"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "doubao/new.js",
|
||
"sourceFile": "doubao/new.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "doubao",
|
||
"name": "read",
|
||
"description": "Read the current Doubao conversation history",
|
||
"domain": "www.doubao.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"Role",
|
||
"Text"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "doubao/read.js",
|
||
"sourceFile": "doubao/read.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "doubao",
|
||
"name": "send",
|
||
"description": "Send a message to Doubao web chat",
|
||
"domain": "www.doubao.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "text",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Message to send"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Status",
|
||
"SubmittedBy",
|
||
"InjectedText"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "doubao/send.js",
|
||
"sourceFile": "doubao/send.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "doubao",
|
||
"name": "status",
|
||
"description": "Check Doubao chat page availability and login state",
|
||
"domain": "www.doubao.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"Status",
|
||
"Login",
|
||
"Url",
|
||
"Title"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "doubao/status.js",
|
||
"sourceFile": "doubao/status.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "doubao-app",
|
||
"name": "ask",
|
||
"description": "Send a message to Doubao desktop app and wait for the AI response",
|
||
"domain": "doubao-app",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "text",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Prompt to send"
|
||
},
|
||
{
|
||
"name": "timeout",
|
||
"type": "int",
|
||
"default": 30,
|
||
"required": false,
|
||
"help": "Max seconds to wait for response"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Role",
|
||
"Text"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "doubao-app/ask.js",
|
||
"sourceFile": "doubao-app/ask.js"
|
||
},
|
||
{
|
||
"site": "doubao-app",
|
||
"name": "dump",
|
||
"description": "Dump Doubao desktop app DOM and snapshot to /tmp for debugging",
|
||
"domain": "doubao-app",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"Status",
|
||
"File"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "doubao-app/dump.js",
|
||
"sourceFile": "doubao-app/dump.js"
|
||
},
|
||
{
|
||
"site": "doubao-app",
|
||
"name": "new",
|
||
"description": "Start a new chat in Doubao desktop app",
|
||
"domain": "doubao-app",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"Status"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "doubao-app/new.js",
|
||
"sourceFile": "doubao-app/new.js"
|
||
},
|
||
{
|
||
"site": "doubao-app",
|
||
"name": "read",
|
||
"description": "Read chat history from Doubao desktop app",
|
||
"domain": "doubao-app",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"Role",
|
||
"Text"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "doubao-app/read.js",
|
||
"sourceFile": "doubao-app/read.js"
|
||
},
|
||
{
|
||
"site": "doubao-app",
|
||
"name": "screenshot",
|
||
"description": "Capture a screenshot of the Doubao desktop app window",
|
||
"domain": "doubao-app",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "output",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Output file path (default: /tmp/doubao-screenshot.png)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Status",
|
||
"File"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "doubao-app/screenshot.js",
|
||
"sourceFile": "doubao-app/screenshot.js"
|
||
},
|
||
{
|
||
"site": "doubao-app",
|
||
"name": "send",
|
||
"description": "Send a message to Doubao desktop app",
|
||
"domain": "doubao-app",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "text",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Message text to send"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Status",
|
||
"Text"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "doubao-app/send.js",
|
||
"sourceFile": "doubao-app/send.js"
|
||
},
|
||
{
|
||
"site": "doubao-app",
|
||
"name": "status",
|
||
"description": "Check CDP connection to Doubao desktop app",
|
||
"domain": "doubao-app",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"Status",
|
||
"Url",
|
||
"Title"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "doubao-app/status.js",
|
||
"sourceFile": "doubao-app/status.js"
|
||
},
|
||
{
|
||
"site": "douyin",
|
||
"name": "activities",
|
||
"description": "官方活动列表",
|
||
"domain": "creator.douyin.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"activity_id",
|
||
"title",
|
||
"end_time"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "douyin/activities.js",
|
||
"sourceFile": "douyin/activities.js"
|
||
},
|
||
{
|
||
"site": "douyin",
|
||
"name": "collections",
|
||
"description": "合集列表",
|
||
"domain": "creator.douyin.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": ""
|
||
}
|
||
],
|
||
"columns": [
|
||
"mix_id",
|
||
"name",
|
||
"item_count"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "douyin/collections.js",
|
||
"sourceFile": "douyin/collections.js"
|
||
},
|
||
{
|
||
"site": "douyin",
|
||
"name": "delete",
|
||
"description": "删除作品",
|
||
"domain": "creator.douyin.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "aweme_id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "作品 ID"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "douyin/delete.js",
|
||
"sourceFile": "douyin/delete.js"
|
||
},
|
||
{
|
||
"site": "douyin",
|
||
"name": "draft",
|
||
"description": "上传视频并保存为草稿",
|
||
"domain": "creator.douyin.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "video",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "视频文件路径"
|
||
},
|
||
{
|
||
"name": "title",
|
||
"type": "str",
|
||
"required": true,
|
||
"help": "视频标题(≤30字)"
|
||
},
|
||
{
|
||
"name": "caption",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "正文内容(≤1000字,支持 #话题)"
|
||
},
|
||
{
|
||
"name": "cover",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "封面图片路径"
|
||
},
|
||
{
|
||
"name": "visibility",
|
||
"type": "str",
|
||
"default": "public",
|
||
"required": false,
|
||
"help": "",
|
||
"choices": [
|
||
"public",
|
||
"friends",
|
||
"private"
|
||
]
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"draft_id"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "douyin/draft.js",
|
||
"sourceFile": "douyin/draft.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "douyin",
|
||
"name": "drafts",
|
||
"description": "获取草稿列表",
|
||
"domain": "creator.douyin.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": ""
|
||
}
|
||
],
|
||
"columns": [
|
||
"aweme_id",
|
||
"title",
|
||
"create_time"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "douyin/drafts.js",
|
||
"sourceFile": "douyin/drafts.js"
|
||
},
|
||
{
|
||
"site": "douyin",
|
||
"name": "hashtag",
|
||
"description": "话题搜索 / AI推荐 / 热点词",
|
||
"domain": "creator.douyin.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "action",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "search=关键词搜索 suggest=AI推荐 hot=热点词",
|
||
"choices": [
|
||
"search",
|
||
"suggest",
|
||
"hot"
|
||
]
|
||
},
|
||
{
|
||
"name": "keyword",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "搜索关键词(search/hot 使用)"
|
||
},
|
||
{
|
||
"name": "cover",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "封面 URI(suggest 使用)"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": ""
|
||
}
|
||
],
|
||
"columns": [
|
||
"name",
|
||
"id",
|
||
"view_count"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "douyin/hashtag.js",
|
||
"sourceFile": "douyin/hashtag.js"
|
||
},
|
||
{
|
||
"site": "douyin",
|
||
"name": "location",
|
||
"description": "地理位置 POI 搜索",
|
||
"domain": "creator.douyin.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "地名关键词"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": ""
|
||
}
|
||
],
|
||
"columns": [
|
||
"poi_id",
|
||
"name",
|
||
"address",
|
||
"city"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "douyin/location.js",
|
||
"sourceFile": "douyin/location.js"
|
||
},
|
||
{
|
||
"site": "douyin",
|
||
"name": "profile",
|
||
"description": "获取账号信息",
|
||
"domain": "creator.douyin.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"uid",
|
||
"nickname",
|
||
"follower_count",
|
||
"following_count",
|
||
"aweme_count"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "douyin/profile.js",
|
||
"sourceFile": "douyin/profile.js"
|
||
},
|
||
{
|
||
"site": "douyin",
|
||
"name": "publish",
|
||
"description": "定时发布视频到抖音(必须设置 2h ~ 14天后的发布时间)",
|
||
"domain": "creator.douyin.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "video",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "视频文件路径"
|
||
},
|
||
{
|
||
"name": "title",
|
||
"type": "str",
|
||
"required": true,
|
||
"help": "视频标题(≤30字)"
|
||
},
|
||
{
|
||
"name": "schedule",
|
||
"type": "str",
|
||
"required": true,
|
||
"help": "定时发布时间(ISO8601 或 Unix 秒,2h ~ 14天后)"
|
||
},
|
||
{
|
||
"name": "caption",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "正文内容(≤1000字,支持 #话题)"
|
||
},
|
||
{
|
||
"name": "cover",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "封面图片路径(不提供时使用视频截帧)"
|
||
},
|
||
{
|
||
"name": "visibility",
|
||
"type": "str",
|
||
"default": "public",
|
||
"required": false,
|
||
"help": "",
|
||
"choices": [
|
||
"public",
|
||
"friends",
|
||
"private"
|
||
]
|
||
},
|
||
{
|
||
"name": "allow_download",
|
||
"type": "bool",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "允许下载"
|
||
},
|
||
{
|
||
"name": "collection",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "合集 ID"
|
||
},
|
||
{
|
||
"name": "activity",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "活动 ID"
|
||
},
|
||
{
|
||
"name": "poi_id",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "地理位置 ID"
|
||
},
|
||
{
|
||
"name": "poi_name",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "地理位置名称"
|
||
},
|
||
{
|
||
"name": "hotspot",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "关联热点词"
|
||
},
|
||
{
|
||
"name": "no_safety_check",
|
||
"type": "bool",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "跳过内容安全检测"
|
||
},
|
||
{
|
||
"name": "sync_toutiao",
|
||
"type": "bool",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "同步发布到头条"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"aweme_id",
|
||
"url",
|
||
"publish_time"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "douyin/publish.js",
|
||
"sourceFile": "douyin/publish.js"
|
||
},
|
||
{
|
||
"site": "douyin",
|
||
"name": "stats",
|
||
"description": "作品数据分析",
|
||
"domain": "creator.douyin.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "aweme_id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": ""
|
||
}
|
||
],
|
||
"columns": [
|
||
"metric",
|
||
"value"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "douyin/stats.js",
|
||
"sourceFile": "douyin/stats.js"
|
||
},
|
||
{
|
||
"site": "douyin",
|
||
"name": "update",
|
||
"description": "更新视频信息",
|
||
"domain": "creator.douyin.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "aweme_id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": ""
|
||
},
|
||
{
|
||
"name": "reschedule",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "新的发布时间(ISO8601 或 Unix 秒)"
|
||
},
|
||
{
|
||
"name": "caption",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "新的正文内容"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "douyin/update.js",
|
||
"sourceFile": "douyin/update.js"
|
||
},
|
||
{
|
||
"site": "douyin",
|
||
"name": "user-videos",
|
||
"description": "获取指定用户的视频列表(含下载地址和热门评论)",
|
||
"domain": "www.douyin.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "sec_uid",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "用户 sec_uid(URL 末尾部分)"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "获取数量(最大 20)"
|
||
},
|
||
{
|
||
"name": "with_comments",
|
||
"type": "bool",
|
||
"default": true,
|
||
"required": false,
|
||
"help": "包含热门评论(默认: true)"
|
||
},
|
||
{
|
||
"name": "comment_limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "每个视频获取多少条评论(最大 10)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"index",
|
||
"aweme_id",
|
||
"title",
|
||
"duration",
|
||
"digg_count",
|
||
"play_url",
|
||
"top_comments"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "douyin/user-videos.js",
|
||
"sourceFile": "douyin/user-videos.js"
|
||
},
|
||
{
|
||
"site": "douyin",
|
||
"name": "videos",
|
||
"description": "获取作品列表",
|
||
"domain": "creator.douyin.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "每页数量"
|
||
},
|
||
{
|
||
"name": "page",
|
||
"type": "int",
|
||
"default": 1,
|
||
"required": false,
|
||
"help": "页码"
|
||
},
|
||
{
|
||
"name": "status",
|
||
"type": "str",
|
||
"default": "all",
|
||
"required": false,
|
||
"help": "",
|
||
"choices": [
|
||
"all",
|
||
"published",
|
||
"reviewing",
|
||
"scheduled"
|
||
]
|
||
}
|
||
],
|
||
"columns": [
|
||
"aweme_id",
|
||
"title",
|
||
"status",
|
||
"play_count",
|
||
"digg_count",
|
||
"create_time"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "douyin/videos.js",
|
||
"sourceFile": "douyin/videos.js"
|
||
},
|
||
{
|
||
"site": "facebook",
|
||
"name": "add-friend",
|
||
"description": "Send a friend request on Facebook",
|
||
"domain": "www.facebook.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Facebook username or profile URL"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"username"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "facebook/add-friend.js",
|
||
"sourceFile": "facebook/add-friend.js"
|
||
},
|
||
{
|
||
"site": "facebook",
|
||
"name": "events",
|
||
"description": "Browse Facebook event categories",
|
||
"domain": "www.facebook.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 15,
|
||
"required": false,
|
||
"help": "Number of categories"
|
||
}
|
||
],
|
||
"columns": [
|
||
"index",
|
||
"name"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "facebook/events.js",
|
||
"sourceFile": "facebook/events.js"
|
||
},
|
||
{
|
||
"site": "facebook",
|
||
"name": "feed",
|
||
"description": "Get your Facebook news feed",
|
||
"domain": "www.facebook.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of posts"
|
||
}
|
||
],
|
||
"columns": [
|
||
"index",
|
||
"author",
|
||
"content",
|
||
"likes",
|
||
"comments",
|
||
"shares"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "facebook/feed.js",
|
||
"sourceFile": "facebook/feed.js"
|
||
},
|
||
{
|
||
"site": "facebook",
|
||
"name": "friends",
|
||
"description": "Get Facebook friend suggestions",
|
||
"domain": "www.facebook.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of friend suggestions"
|
||
}
|
||
],
|
||
"columns": [
|
||
"index",
|
||
"name",
|
||
"mutual"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "facebook/friends.js",
|
||
"sourceFile": "facebook/friends.js"
|
||
},
|
||
{
|
||
"site": "facebook",
|
||
"name": "groups",
|
||
"description": "List your Facebook groups",
|
||
"domain": "www.facebook.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of groups"
|
||
}
|
||
],
|
||
"columns": [
|
||
"index",
|
||
"name",
|
||
"last_post",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "facebook/groups.js",
|
||
"sourceFile": "facebook/groups.js"
|
||
},
|
||
{
|
||
"site": "facebook",
|
||
"name": "join-group",
|
||
"description": "Join a Facebook group",
|
||
"domain": "www.facebook.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "group",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Group ID or URL path (e.g. '1876150192925481' or group name)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"group"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "facebook/join-group.js",
|
||
"sourceFile": "facebook/join-group.js"
|
||
},
|
||
{
|
||
"site": "facebook",
|
||
"name": "memories",
|
||
"description": "Get your Facebook memories (On This Day)",
|
||
"domain": "www.facebook.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of memories"
|
||
}
|
||
],
|
||
"columns": [
|
||
"index",
|
||
"source",
|
||
"content",
|
||
"time"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "facebook/memories.js",
|
||
"sourceFile": "facebook/memories.js"
|
||
},
|
||
{
|
||
"site": "facebook",
|
||
"name": "notifications",
|
||
"description": "Get recent Facebook notifications",
|
||
"domain": "www.facebook.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 15,
|
||
"required": false,
|
||
"help": "Number of notifications"
|
||
}
|
||
],
|
||
"columns": [
|
||
"index",
|
||
"text",
|
||
"time"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "facebook/notifications.js",
|
||
"sourceFile": "facebook/notifications.js"
|
||
},
|
||
{
|
||
"site": "facebook",
|
||
"name": "profile",
|
||
"description": "Get Facebook user/page profile info",
|
||
"domain": "www.facebook.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Facebook username or page name"
|
||
}
|
||
],
|
||
"columns": [
|
||
"name",
|
||
"username",
|
||
"friends",
|
||
"followers",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "facebook/profile.js",
|
||
"sourceFile": "facebook/profile.js"
|
||
},
|
||
{
|
||
"site": "facebook",
|
||
"name": "search",
|
||
"description": "Search Facebook for people, pages, or posts",
|
||
"domain": "www.facebook.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search query"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"index",
|
||
"title",
|
||
"text",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "facebook/search.js",
|
||
"sourceFile": "facebook/search.js"
|
||
},
|
||
{
|
||
"site": "gemini",
|
||
"name": "ask",
|
||
"description": "Send a prompt to Gemini and return only the assistant response",
|
||
"domain": "gemini.google.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "prompt",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Prompt to send"
|
||
},
|
||
{
|
||
"name": "timeout",
|
||
"type": "str",
|
||
"default": "60",
|
||
"required": false,
|
||
"help": "Max seconds to wait (default: 60)"
|
||
},
|
||
{
|
||
"name": "new",
|
||
"type": "str",
|
||
"default": "false",
|
||
"required": false,
|
||
"help": "Start a new chat first (true/false, default: false)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"response"
|
||
],
|
||
"timeout": 180,
|
||
"type": "js",
|
||
"modulePath": "gemini/ask.js",
|
||
"sourceFile": "gemini/ask.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "gemini",
|
||
"name": "deep-research",
|
||
"description": "Start a Gemini Deep Research run and confirm it",
|
||
"domain": "gemini.google.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "prompt",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Prompt to send"
|
||
},
|
||
{
|
||
"name": "timeout",
|
||
"type": "int",
|
||
"default": 30,
|
||
"required": false,
|
||
"help": "Max seconds to wait for confirm (default: 30)"
|
||
},
|
||
{
|
||
"name": "tool",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Override tool label (default: Deep Research)"
|
||
},
|
||
{
|
||
"name": "confirm",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Override confirm button label (default: Start research)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"url"
|
||
],
|
||
"timeout": 180,
|
||
"type": "js",
|
||
"modulePath": "gemini/deep-research.js",
|
||
"sourceFile": "gemini/deep-research.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "gemini",
|
||
"name": "deep-research-result",
|
||
"description": "Export Deep Research report URL from a Gemini conversation",
|
||
"domain": "gemini.google.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": false,
|
||
"positional": true,
|
||
"help": "Conversation title or URL (optional; defaults to latest conversation)"
|
||
},
|
||
{
|
||
"name": "match",
|
||
"type": "str",
|
||
"default": "contains",
|
||
"required": false,
|
||
"help": "Match mode",
|
||
"choices": [
|
||
"contains",
|
||
"exact"
|
||
]
|
||
},
|
||
{
|
||
"name": "timeout",
|
||
"type": "int",
|
||
"default": 120,
|
||
"required": false,
|
||
"help": "Max seconds to wait for Docs export (default: 120)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"response"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "gemini/deep-research-result.js",
|
||
"sourceFile": "gemini/deep-research-result.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "gemini",
|
||
"name": "image",
|
||
"description": "Generate images with Gemini web and save them locally",
|
||
"domain": "gemini.google.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "prompt",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Image prompt to send to Gemini"
|
||
},
|
||
{
|
||
"name": "rt",
|
||
"type": "str",
|
||
"default": "1:1",
|
||
"required": false,
|
||
"help": "Ratio shorthand for aspect ratio (1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3)"
|
||
},
|
||
{
|
||
"name": "st",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "Style shorthand, e.g. anime, icon, watercolor"
|
||
},
|
||
{
|
||
"name": "op",
|
||
"type": "str",
|
||
"default": "/Users/jakevin/tmp/gemini-images",
|
||
"required": false,
|
||
"help": "Output directory shorthand"
|
||
},
|
||
{
|
||
"name": "sd",
|
||
"type": "boolean",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "Skip download shorthand; only show Gemini page link"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"file",
|
||
"link"
|
||
],
|
||
"timeout": 240,
|
||
"type": "js",
|
||
"modulePath": "gemini/image.js",
|
||
"sourceFile": "gemini/image.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "gemini",
|
||
"name": "new",
|
||
"description": "Start a new conversation in Gemini web chat",
|
||
"domain": "gemini.google.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"Status",
|
||
"Action"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "gemini/new.js",
|
||
"sourceFile": "gemini/new.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "gitee",
|
||
"name": "search",
|
||
"description": "Search repositories on Gitee",
|
||
"domain": "gitee.com",
|
||
"strategy": "public",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "keyword",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search keyword"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of results (max 50)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"name",
|
||
"language",
|
||
"stars",
|
||
"description",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "gitee/search.js",
|
||
"sourceFile": "gitee/search.js"
|
||
},
|
||
{
|
||
"site": "gitee",
|
||
"name": "trending",
|
||
"description": "Recommended open-source projects on Gitee Explore",
|
||
"domain": "gitee.com",
|
||
"strategy": "public",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of projects (max 50)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"name",
|
||
"description",
|
||
"stars",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "gitee/trending.js",
|
||
"sourceFile": "gitee/trending.js"
|
||
},
|
||
{
|
||
"site": "gitee",
|
||
"name": "user",
|
||
"description": "Show a Gitee user profile panel",
|
||
"domain": "gitee.com",
|
||
"strategy": "public",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Gitee username"
|
||
}
|
||
],
|
||
"columns": [
|
||
"field",
|
||
"value"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "gitee/user.js",
|
||
"sourceFile": "gitee/user.js"
|
||
},
|
||
{
|
||
"site": "google",
|
||
"name": "news",
|
||
"description": "Get Google News headlines",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "keyword",
|
||
"type": "str",
|
||
"required": false,
|
||
"positional": true,
|
||
"help": "Search query (omit for top stories)"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
},
|
||
{
|
||
"name": "lang",
|
||
"type": "str",
|
||
"default": "en",
|
||
"required": false,
|
||
"help": "Language short code (e.g. en, zh)"
|
||
},
|
||
{
|
||
"name": "region",
|
||
"type": "str",
|
||
"default": "US",
|
||
"required": false,
|
||
"help": "Region code (e.g. US, CN)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"source",
|
||
"date",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "google/news.js",
|
||
"sourceFile": "google/news.js"
|
||
},
|
||
{
|
||
"site": "google",
|
||
"name": "search",
|
||
"description": "Search Google",
|
||
"domain": "google.com",
|
||
"strategy": "public",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "keyword",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search query"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of results (1-100)"
|
||
},
|
||
{
|
||
"name": "lang",
|
||
"type": "str",
|
||
"default": "en",
|
||
"required": false,
|
||
"help": "Language short code (e.g. en, zh)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"type",
|
||
"title",
|
||
"url",
|
||
"snippet"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "google/search.js",
|
||
"sourceFile": "google/search.js"
|
||
},
|
||
{
|
||
"site": "google",
|
||
"name": "suggest",
|
||
"description": "Get Google search suggestions",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "keyword",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search query"
|
||
},
|
||
{
|
||
"name": "lang",
|
||
"type": "str",
|
||
"default": "zh-CN",
|
||
"required": false,
|
||
"help": "Language code"
|
||
}
|
||
],
|
||
"columns": [
|
||
"suggestion"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "google/suggest.js",
|
||
"sourceFile": "google/suggest.js"
|
||
},
|
||
{
|
||
"site": "google",
|
||
"name": "trends",
|
||
"description": "Get Google Trends daily trending searches",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "region",
|
||
"type": "str",
|
||
"default": "US",
|
||
"required": false,
|
||
"help": "Region code (e.g. US, CN, JP)"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"traffic",
|
||
"date"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "google/trends.js",
|
||
"sourceFile": "google/trends.js"
|
||
},
|
||
{
|
||
"site": "grok",
|
||
"name": "ask",
|
||
"description": "Send a message to Grok and get response",
|
||
"domain": "grok.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "prompt",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Prompt to send to Grok"
|
||
},
|
||
{
|
||
"name": "timeout",
|
||
"type": "int",
|
||
"default": 120,
|
||
"required": false,
|
||
"help": "Max seconds to wait for response (default: 120)"
|
||
},
|
||
{
|
||
"name": "new",
|
||
"type": "boolean",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "Start a new chat before sending (default: false)"
|
||
},
|
||
{
|
||
"name": "web",
|
||
"type": "boolean",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "Use the explicit grok.com consumer web flow (default: false)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"response"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "grok/ask.js",
|
||
"sourceFile": "grok/ask.js"
|
||
},
|
||
{
|
||
"site": "hackernews",
|
||
"name": "ask",
|
||
"description": "Hacker News Ask HN posts",
|
||
"domain": "news.ycombinator.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of stories"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"score",
|
||
"author",
|
||
"comments"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "hackernews/ask.js",
|
||
"sourceFile": "hackernews/ask.js"
|
||
},
|
||
{
|
||
"site": "hackernews",
|
||
"name": "best",
|
||
"description": "Hacker News best stories",
|
||
"domain": "news.ycombinator.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of stories"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"score",
|
||
"author",
|
||
"comments"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "hackernews/best.js",
|
||
"sourceFile": "hackernews/best.js"
|
||
},
|
||
{
|
||
"site": "hackernews",
|
||
"name": "jobs",
|
||
"description": "Hacker News job postings",
|
||
"domain": "news.ycombinator.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of job postings"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "hackernews/jobs.js",
|
||
"sourceFile": "hackernews/jobs.js"
|
||
},
|
||
{
|
||
"site": "hackernews",
|
||
"name": "new",
|
||
"description": "Hacker News newest stories",
|
||
"domain": "news.ycombinator.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of stories"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"score",
|
||
"author",
|
||
"comments"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "hackernews/new.js",
|
||
"sourceFile": "hackernews/new.js"
|
||
},
|
||
{
|
||
"site": "hackernews",
|
||
"name": "search",
|
||
"description": "Search Hacker News stories",
|
||
"domain": "news.ycombinator.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search query"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
},
|
||
{
|
||
"name": "sort",
|
||
"type": "str",
|
||
"default": "relevance",
|
||
"required": false,
|
||
"help": "Sort by relevance or date",
|
||
"choices": [
|
||
"relevance",
|
||
"date"
|
||
]
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"score",
|
||
"author",
|
||
"comments",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "hackernews/search.js",
|
||
"sourceFile": "hackernews/search.js"
|
||
},
|
||
{
|
||
"site": "hackernews",
|
||
"name": "show",
|
||
"description": "Hacker News Show HN posts",
|
||
"domain": "news.ycombinator.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of stories"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"score",
|
||
"author",
|
||
"comments"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "hackernews/show.js",
|
||
"sourceFile": "hackernews/show.js"
|
||
},
|
||
{
|
||
"site": "hackernews",
|
||
"name": "top",
|
||
"description": "Hacker News top stories",
|
||
"domain": "news.ycombinator.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of stories"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"score",
|
||
"author",
|
||
"comments"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "hackernews/top.js",
|
||
"sourceFile": "hackernews/top.js"
|
||
},
|
||
{
|
||
"site": "hackernews",
|
||
"name": "user",
|
||
"description": "Hacker News user profile",
|
||
"domain": "news.ycombinator.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "HN username"
|
||
}
|
||
],
|
||
"columns": [
|
||
"username",
|
||
"karma",
|
||
"created",
|
||
"about"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "hackernews/user.js",
|
||
"sourceFile": "hackernews/user.js"
|
||
},
|
||
{
|
||
"site": "hf",
|
||
"name": "top",
|
||
"description": "Top upvoted Hugging Face papers",
|
||
"domain": "huggingface.co",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of papers"
|
||
},
|
||
{
|
||
"name": "all",
|
||
"type": "bool",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "Return all papers (ignore limit)"
|
||
},
|
||
{
|
||
"name": "date",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Date (YYYY-MM-DD), defaults to most recent"
|
||
},
|
||
{
|
||
"name": "period",
|
||
"type": "str",
|
||
"default": "daily",
|
||
"required": false,
|
||
"help": "Time period: daily, weekly, or monthly",
|
||
"choices": [
|
||
"daily",
|
||
"weekly",
|
||
"monthly"
|
||
]
|
||
}
|
||
],
|
||
"type": "js",
|
||
"modulePath": "hf/top.js",
|
||
"sourceFile": "hf/top.js"
|
||
},
|
||
{
|
||
"site": "hupu",
|
||
"name": "detail",
|
||
"description": "获取虎扑帖子详情 (使用Next.js JSON数据)",
|
||
"domain": "bbs.hupu.com",
|
||
"strategy": "public",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "tid",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "帖子ID(9位数字)"
|
||
},
|
||
{
|
||
"name": "replies",
|
||
"type": "boolean",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "是否包含热门回复"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"author",
|
||
"content",
|
||
"replies",
|
||
"lights",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "hupu/detail.js",
|
||
"sourceFile": "hupu/detail.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "hupu",
|
||
"name": "hot",
|
||
"description": "虎扑热门帖子",
|
||
"domain": "bbs.hupu.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of hot posts"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "hupu/hot.js",
|
||
"sourceFile": "hupu/hot.js"
|
||
},
|
||
{
|
||
"site": "hupu",
|
||
"name": "like",
|
||
"description": "点赞虎扑回复 (需要登录)",
|
||
"domain": "bbs.hupu.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "tid",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "帖子ID(9位数字)"
|
||
},
|
||
{
|
||
"name": "pid",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "回复ID"
|
||
},
|
||
{
|
||
"name": "fid",
|
||
"type": "str",
|
||
"required": true,
|
||
"help": "板块ID(如278汽车区)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"message"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "hupu/like.js",
|
||
"sourceFile": "hupu/like.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "hupu",
|
||
"name": "mentions",
|
||
"aliases": [
|
||
"mention"
|
||
],
|
||
"description": "查看虎扑提到我的回复 (需要登录)",
|
||
"domain": "my.hupu.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "最多返回多少条消息"
|
||
},
|
||
{
|
||
"name": "max_pages",
|
||
"type": "int",
|
||
"default": 3,
|
||
"required": false,
|
||
"help": "最多抓取多少页"
|
||
},
|
||
{
|
||
"name": "page_str",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "分页游标;不传时从第一页开始"
|
||
}
|
||
],
|
||
"columns": [
|
||
"time",
|
||
"username",
|
||
"thread_title",
|
||
"post_content",
|
||
"quote_content",
|
||
"reply_url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "hupu/mentions.js",
|
||
"sourceFile": "hupu/mentions.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "hupu",
|
||
"name": "reply",
|
||
"description": "回复虎扑帖子 (需要登录)",
|
||
"domain": "bbs.hupu.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "tid",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "帖子ID(9位数字)"
|
||
},
|
||
{
|
||
"name": "topic_id",
|
||
"type": "str",
|
||
"required": true,
|
||
"help": "板块ID,即接口中的 topicId(如 502 篮球资讯)"
|
||
},
|
||
{
|
||
"name": "text",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "回复内容"
|
||
},
|
||
{
|
||
"name": "quote_id",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "被引用回复的 pid;填写后会以“回复某条热门回复”的方式发言"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"message"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "hupu/reply.js",
|
||
"sourceFile": "hupu/reply.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "hupu",
|
||
"name": "search",
|
||
"description": "搜索虎扑帖子 (使用官方API)",
|
||
"domain": "bbs.hupu.com",
|
||
"strategy": "public",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "搜索关键词"
|
||
},
|
||
{
|
||
"name": "page",
|
||
"type": "int",
|
||
"default": 1,
|
||
"required": false,
|
||
"help": "结果页码"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "返回结果数量"
|
||
},
|
||
{
|
||
"name": "forum",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "板块ID过滤 (可选)"
|
||
},
|
||
{
|
||
"name": "sort",
|
||
"type": "str",
|
||
"default": "general",
|
||
"required": false,
|
||
"help": "排序方式: general/createtime/replytime/light/reply"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"replies",
|
||
"lights",
|
||
"forum",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "hupu/search.js",
|
||
"sourceFile": "hupu/search.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "hupu",
|
||
"name": "unlike",
|
||
"description": "取消点赞虎扑回复 (需要登录)",
|
||
"domain": "bbs.hupu.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "tid",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "帖子ID(9位数字)"
|
||
},
|
||
{
|
||
"name": "pid",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "回复ID"
|
||
},
|
||
{
|
||
"name": "fid",
|
||
"type": "str",
|
||
"required": true,
|
||
"help": "板块ID(如278汽车区)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"message"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "hupu/unlike.js",
|
||
"sourceFile": "hupu/unlike.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "imdb",
|
||
"name": "person",
|
||
"description": "Get actor or director info",
|
||
"domain": "www.imdb.com",
|
||
"strategy": "public",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "IMDb person ID (nm0634240) or URL"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Max filmography entries"
|
||
}
|
||
],
|
||
"columns": [
|
||
"field",
|
||
"value"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "imdb/person.js",
|
||
"sourceFile": "imdb/person.js"
|
||
},
|
||
{
|
||
"site": "imdb",
|
||
"name": "reviews",
|
||
"description": "Get user reviews for a movie or TV show",
|
||
"domain": "www.imdb.com",
|
||
"strategy": "public",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "IMDb title ID (tt1375666) or URL"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of reviews"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"rating",
|
||
"author",
|
||
"date",
|
||
"text"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "imdb/reviews.js",
|
||
"sourceFile": "imdb/reviews.js"
|
||
},
|
||
{
|
||
"site": "imdb",
|
||
"name": "search",
|
||
"description": "Search IMDb for movies, TV shows, and people",
|
||
"domain": "www.imdb.com",
|
||
"strategy": "public",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search query"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"id",
|
||
"title",
|
||
"year",
|
||
"type",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "imdb/search.js",
|
||
"sourceFile": "imdb/search.js"
|
||
},
|
||
{
|
||
"site": "imdb",
|
||
"name": "title",
|
||
"description": "Get movie or TV show details",
|
||
"domain": "www.imdb.com",
|
||
"strategy": "public",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "IMDb title ID (tt1375666) or URL"
|
||
}
|
||
],
|
||
"columns": [
|
||
"field",
|
||
"value"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "imdb/title.js",
|
||
"sourceFile": "imdb/title.js"
|
||
},
|
||
{
|
||
"site": "imdb",
|
||
"name": "top",
|
||
"description": "IMDb Top 250 Movies",
|
||
"domain": "www.imdb.com",
|
||
"strategy": "public",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"rating",
|
||
"votes",
|
||
"genre",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "imdb/top.js",
|
||
"sourceFile": "imdb/top.js"
|
||
},
|
||
{
|
||
"site": "imdb",
|
||
"name": "trending",
|
||
"description": "IMDb Most Popular Movies",
|
||
"domain": "www.imdb.com",
|
||
"strategy": "public",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"rating",
|
||
"genre",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "imdb/trending.js",
|
||
"sourceFile": "imdb/trending.js"
|
||
},
|
||
{
|
||
"site": "instagram",
|
||
"name": "comment",
|
||
"description": "Comment on an Instagram post",
|
||
"domain": "www.instagram.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Username of the post author"
|
||
},
|
||
{
|
||
"name": "text",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Comment text"
|
||
},
|
||
{
|
||
"name": "index",
|
||
"type": "int",
|
||
"default": 1,
|
||
"required": false,
|
||
"help": "Post index (1 = most recent)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"user",
|
||
"text"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "instagram/comment.js",
|
||
"sourceFile": "instagram/comment.js"
|
||
},
|
||
{
|
||
"site": "instagram",
|
||
"name": "download",
|
||
"description": "Download images and videos from Instagram posts and reels",
|
||
"domain": "www.instagram.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "url",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Instagram post / reel / tv URL"
|
||
},
|
||
{
|
||
"name": "path",
|
||
"type": "str",
|
||
"default": "/Users/jakevin/Downloads/Instagram",
|
||
"required": false,
|
||
"help": "Download directory"
|
||
}
|
||
],
|
||
"type": "js",
|
||
"modulePath": "instagram/download.js",
|
||
"sourceFile": "instagram/download.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "instagram",
|
||
"name": "explore",
|
||
"description": "Instagram explore/discover trending posts",
|
||
"domain": "www.instagram.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of posts"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"user",
|
||
"caption",
|
||
"likes",
|
||
"comments",
|
||
"type"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "instagram/explore.js",
|
||
"sourceFile": "instagram/explore.js"
|
||
},
|
||
{
|
||
"site": "instagram",
|
||
"name": "follow",
|
||
"description": "Follow an Instagram user",
|
||
"domain": "www.instagram.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Instagram username to follow"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"username"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "instagram/follow.js",
|
||
"sourceFile": "instagram/follow.js"
|
||
},
|
||
{
|
||
"site": "instagram",
|
||
"name": "followers",
|
||
"description": "List followers of an Instagram user",
|
||
"domain": "www.instagram.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Instagram username"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of followers"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"username",
|
||
"name",
|
||
"verified",
|
||
"private"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "instagram/followers.js",
|
||
"sourceFile": "instagram/followers.js"
|
||
},
|
||
{
|
||
"site": "instagram",
|
||
"name": "following",
|
||
"description": "List accounts an Instagram user is following",
|
||
"domain": "www.instagram.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Instagram username"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of accounts"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"username",
|
||
"name",
|
||
"verified",
|
||
"private"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "instagram/following.js",
|
||
"sourceFile": "instagram/following.js"
|
||
},
|
||
{
|
||
"site": "instagram",
|
||
"name": "like",
|
||
"description": "Like an Instagram post",
|
||
"domain": "www.instagram.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Username of the post author"
|
||
},
|
||
{
|
||
"name": "index",
|
||
"type": "int",
|
||
"default": 1,
|
||
"required": false,
|
||
"help": "Post index (1 = most recent)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"user",
|
||
"post"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "instagram/like.js",
|
||
"sourceFile": "instagram/like.js"
|
||
},
|
||
{
|
||
"site": "instagram",
|
||
"name": "note",
|
||
"description": "Publish a text Instagram note",
|
||
"domain": "www.instagram.com",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "content",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Note text (max 60 characters)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"detail",
|
||
"noteId"
|
||
],
|
||
"timeout": 120,
|
||
"type": "js",
|
||
"modulePath": "instagram/note.js",
|
||
"sourceFile": "instagram/note.js"
|
||
},
|
||
{
|
||
"site": "instagram",
|
||
"name": "post",
|
||
"description": "Post an Instagram feed image or mixed-media carousel",
|
||
"domain": "www.instagram.com",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "media",
|
||
"type": "str",
|
||
"required": false,
|
||
"valueRequired": true,
|
||
"help": "Comma-separated media paths (images/videos, up to 10)"
|
||
},
|
||
{
|
||
"name": "content",
|
||
"type": "str",
|
||
"required": false,
|
||
"positional": true,
|
||
"help": "Caption text"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"detail",
|
||
"url"
|
||
],
|
||
"timeout": 300,
|
||
"type": "js",
|
||
"modulePath": "instagram/post.js",
|
||
"sourceFile": "instagram/post.js"
|
||
},
|
||
{
|
||
"site": "instagram",
|
||
"name": "profile",
|
||
"description": "Get Instagram user profile info",
|
||
"domain": "www.instagram.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Instagram username"
|
||
}
|
||
],
|
||
"columns": [
|
||
"username",
|
||
"name",
|
||
"followers",
|
||
"following",
|
||
"posts",
|
||
"verified",
|
||
"bio"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "instagram/profile.js",
|
||
"sourceFile": "instagram/profile.js"
|
||
},
|
||
{
|
||
"site": "instagram",
|
||
"name": "reel",
|
||
"description": "Post an Instagram reel video",
|
||
"domain": "www.instagram.com",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "video",
|
||
"type": "str",
|
||
"required": false,
|
||
"valueRequired": true,
|
||
"help": "Path to a single .mp4 video file"
|
||
},
|
||
{
|
||
"name": "content",
|
||
"type": "str",
|
||
"required": false,
|
||
"positional": true,
|
||
"help": "Caption text"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"detail",
|
||
"url"
|
||
],
|
||
"timeout": 600,
|
||
"type": "js",
|
||
"modulePath": "instagram/reel.js",
|
||
"sourceFile": "instagram/reel.js"
|
||
},
|
||
{
|
||
"site": "instagram",
|
||
"name": "save",
|
||
"description": "Save (bookmark) an Instagram post",
|
||
"domain": "www.instagram.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Username of the post author"
|
||
},
|
||
{
|
||
"name": "index",
|
||
"type": "int",
|
||
"default": 1,
|
||
"required": false,
|
||
"help": "Post index (1 = most recent)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"user",
|
||
"post"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "instagram/save.js",
|
||
"sourceFile": "instagram/save.js"
|
||
},
|
||
{
|
||
"site": "instagram",
|
||
"name": "saved",
|
||
"description": "Get your saved Instagram posts",
|
||
"domain": "www.instagram.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of saved posts"
|
||
}
|
||
],
|
||
"columns": [
|
||
"index",
|
||
"user",
|
||
"caption",
|
||
"likes",
|
||
"comments",
|
||
"type"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "instagram/saved.js",
|
||
"sourceFile": "instagram/saved.js"
|
||
},
|
||
{
|
||
"site": "instagram",
|
||
"name": "search",
|
||
"description": "Search Instagram users",
|
||
"domain": "www.instagram.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search query"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"username",
|
||
"name",
|
||
"verified",
|
||
"private",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "instagram/search.js",
|
||
"sourceFile": "instagram/search.js"
|
||
},
|
||
{
|
||
"site": "instagram",
|
||
"name": "story",
|
||
"description": "Post a single Instagram story image or video",
|
||
"domain": "www.instagram.com",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "media",
|
||
"type": "str",
|
||
"required": false,
|
||
"valueRequired": true,
|
||
"help": "Path to a single story image or video file"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"detail",
|
||
"url"
|
||
],
|
||
"timeout": 300,
|
||
"type": "js",
|
||
"modulePath": "instagram/story.js",
|
||
"sourceFile": "instagram/story.js"
|
||
},
|
||
{
|
||
"site": "instagram",
|
||
"name": "unfollow",
|
||
"description": "Unfollow an Instagram user",
|
||
"domain": "www.instagram.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Instagram username to unfollow"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"username"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "instagram/unfollow.js",
|
||
"sourceFile": "instagram/unfollow.js"
|
||
},
|
||
{
|
||
"site": "instagram",
|
||
"name": "unlike",
|
||
"description": "Unlike an Instagram post",
|
||
"domain": "www.instagram.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Username of the post author"
|
||
},
|
||
{
|
||
"name": "index",
|
||
"type": "int",
|
||
"default": 1,
|
||
"required": false,
|
||
"help": "Post index (1 = most recent)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"user",
|
||
"post"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "instagram/unlike.js",
|
||
"sourceFile": "instagram/unlike.js"
|
||
},
|
||
{
|
||
"site": "instagram",
|
||
"name": "unsave",
|
||
"description": "Unsave (remove bookmark) an Instagram post",
|
||
"domain": "www.instagram.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Username of the post author"
|
||
},
|
||
{
|
||
"name": "index",
|
||
"type": "int",
|
||
"default": 1,
|
||
"required": false,
|
||
"help": "Post index (1 = most recent)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"user",
|
||
"post"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "instagram/unsave.js",
|
||
"sourceFile": "instagram/unsave.js"
|
||
},
|
||
{
|
||
"site": "instagram",
|
||
"name": "user",
|
||
"description": "Get recent posts from an Instagram user",
|
||
"domain": "www.instagram.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Instagram username"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 12,
|
||
"required": false,
|
||
"help": "Number of posts"
|
||
}
|
||
],
|
||
"columns": [
|
||
"index",
|
||
"caption",
|
||
"likes",
|
||
"comments",
|
||
"type",
|
||
"date"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "instagram/user.js",
|
||
"sourceFile": "instagram/user.js"
|
||
},
|
||
{
|
||
"site": "jd",
|
||
"name": "add-cart",
|
||
"description": "京东加入购物车",
|
||
"domain": "item.jd.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "sku",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "商品 SKU ID"
|
||
},
|
||
{
|
||
"name": "num",
|
||
"type": "int",
|
||
"default": 1,
|
||
"required": false,
|
||
"help": "数量"
|
||
},
|
||
{
|
||
"name": "dry-run",
|
||
"type": "bool",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "仅预览,不实际加入购物车"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"title",
|
||
"price",
|
||
"sku"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "jd/add-cart.js",
|
||
"sourceFile": "jd/add-cart.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "jd",
|
||
"name": "cart",
|
||
"description": "查看京东购物车",
|
||
"domain": "cart.jd.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"index",
|
||
"title",
|
||
"price",
|
||
"quantity",
|
||
"sku"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "jd/cart.js",
|
||
"sourceFile": "jd/cart.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "jd",
|
||
"name": "detail",
|
||
"description": "京东商品详情",
|
||
"domain": "item.jd.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "sku",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "商品 SKU ID"
|
||
}
|
||
],
|
||
"columns": [
|
||
"field",
|
||
"value"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "jd/detail.js",
|
||
"sourceFile": "jd/detail.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "jd",
|
||
"name": "item",
|
||
"description": "京东商品详情(价格、店铺、规格参数、AVIF 图片)",
|
||
"domain": "item.jd.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "sku",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "商品 SKU ID(如 100291143898)"
|
||
},
|
||
{
|
||
"name": "images",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "AVIF 图片数量上限(默认10)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"price",
|
||
"shop",
|
||
"specs",
|
||
"avifImages"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "jd/item.js",
|
||
"sourceFile": "jd/item.js"
|
||
},
|
||
{
|
||
"site": "jd",
|
||
"name": "reviews",
|
||
"description": "京东商品评价",
|
||
"domain": "item.jd.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "sku",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "商品 SKU ID"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "返回评价数量 (max 20)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"user",
|
||
"content",
|
||
"date"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "jd/reviews.js",
|
||
"sourceFile": "jd/reviews.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "jd",
|
||
"name": "search",
|
||
"description": "京东商品搜索",
|
||
"domain": "search.jd.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "搜索关键词"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "返回结果数量 (max 30)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"price",
|
||
"shop",
|
||
"sku",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "jd/search.js",
|
||
"sourceFile": "jd/search.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "jianyu",
|
||
"name": "detail",
|
||
"description": "读取剑鱼标讯详情页并抽取证据字段",
|
||
"domain": "www.jianyu360.cn",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "url",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Detail page URL from jianyu/search"
|
||
},
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Optional query for evidence ranking"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"publish_time",
|
||
"content_type",
|
||
"project_code",
|
||
"budget_or_limit",
|
||
"deadline_or_open_time",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "jianyu/detail.js",
|
||
"sourceFile": "jianyu/detail.js"
|
||
},
|
||
{
|
||
"site": "jianyu",
|
||
"name": "search",
|
||
"description": "搜索剑鱼标讯公告",
|
||
"domain": "www.jianyu360.cn",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search keyword, e.g. \"procurement\""
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of results (max 50)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"content_type",
|
||
"title",
|
||
"publish_time",
|
||
"project_code",
|
||
"budget_or_limit",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "jianyu/search.js",
|
||
"sourceFile": "jianyu/search.js"
|
||
},
|
||
{
|
||
"site": "jike",
|
||
"name": "comment",
|
||
"description": "评论即刻帖子",
|
||
"domain": "web.okjike.com",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "帖子 ID"
|
||
},
|
||
{
|
||
"name": "text",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "评论内容"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"message"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "jike/comment.js",
|
||
"sourceFile": "jike/comment.js"
|
||
},
|
||
{
|
||
"site": "jike",
|
||
"name": "create",
|
||
"description": "发布即刻动态",
|
||
"domain": "web.okjike.com",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "text",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "动态正文内容"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"message"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "jike/create.js",
|
||
"sourceFile": "jike/create.js"
|
||
},
|
||
{
|
||
"site": "jike",
|
||
"name": "feed",
|
||
"description": "即刻首页动态流",
|
||
"domain": "web.okjike.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": ""
|
||
}
|
||
],
|
||
"columns": [
|
||
"author",
|
||
"content",
|
||
"likes",
|
||
"comments",
|
||
"time",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "jike/feed.js",
|
||
"sourceFile": "jike/feed.js"
|
||
},
|
||
{
|
||
"site": "jike",
|
||
"name": "like",
|
||
"description": "点赞即刻帖子",
|
||
"domain": "web.okjike.com",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "帖子 ID"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"message"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "jike/like.js",
|
||
"sourceFile": "jike/like.js"
|
||
},
|
||
{
|
||
"site": "jike",
|
||
"name": "notifications",
|
||
"description": "即刻通知",
|
||
"domain": "web.okjike.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": ""
|
||
}
|
||
],
|
||
"columns": [
|
||
"type",
|
||
"user",
|
||
"content",
|
||
"time"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "jike/notifications.js",
|
||
"sourceFile": "jike/notifications.js"
|
||
},
|
||
{
|
||
"site": "jike",
|
||
"name": "post",
|
||
"description": "即刻帖子详情及评论",
|
||
"domain": "m.okjike.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Post ID (from post URL)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"type",
|
||
"author",
|
||
"content",
|
||
"likes",
|
||
"time"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "jike/post.js",
|
||
"sourceFile": "jike/post.js"
|
||
},
|
||
{
|
||
"site": "jike",
|
||
"name": "repost",
|
||
"description": "转发即刻帖子",
|
||
"domain": "web.okjike.com",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "帖子 ID"
|
||
},
|
||
{
|
||
"name": "text",
|
||
"type": "string",
|
||
"required": false,
|
||
"positional": true,
|
||
"help": "转发附言(可选)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"message"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "jike/repost.js",
|
||
"sourceFile": "jike/repost.js"
|
||
},
|
||
{
|
||
"site": "jike",
|
||
"name": "search",
|
||
"description": "搜索即刻帖子",
|
||
"domain": "web.okjike.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": ""
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": ""
|
||
}
|
||
],
|
||
"columns": [
|
||
"author",
|
||
"content",
|
||
"likes",
|
||
"comments",
|
||
"time",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "jike/search.js",
|
||
"sourceFile": "jike/search.js"
|
||
},
|
||
{
|
||
"site": "jike",
|
||
"name": "topic",
|
||
"description": "即刻话题/圈子帖子",
|
||
"domain": "m.okjike.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Topic ID (from topic URL, e.g. 553870e8e4b0cafb0a1bef68)"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of posts"
|
||
}
|
||
],
|
||
"columns": [
|
||
"content",
|
||
"author",
|
||
"likes",
|
||
"comments",
|
||
"time",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "jike/topic.js",
|
||
"sourceFile": "jike/topic.js"
|
||
},
|
||
{
|
||
"site": "jike",
|
||
"name": "user",
|
||
"description": "即刻用户动态",
|
||
"domain": "m.okjike.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Username from profile URL (e.g. wenhao1996)"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of posts"
|
||
}
|
||
],
|
||
"columns": [
|
||
"content",
|
||
"type",
|
||
"likes",
|
||
"comments",
|
||
"time",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "jike/user.js",
|
||
"sourceFile": "jike/user.js"
|
||
},
|
||
{
|
||
"site": "jimeng",
|
||
"name": "generate",
|
||
"description": "即梦AI 文生图 — 输入 prompt 生成图片",
|
||
"domain": "jimeng.jianying.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "prompt",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "图片描述 prompt"
|
||
},
|
||
{
|
||
"name": "model",
|
||
"type": "string",
|
||
"default": "high_aes_general_v50",
|
||
"required": false,
|
||
"help": "模型: high_aes_general_v50 (5.0 Lite), high_aes_general_v42 (4.6), high_aes_general_v40 (4.0)"
|
||
},
|
||
{
|
||
"name": "wait",
|
||
"type": "int",
|
||
"default": 40,
|
||
"required": false,
|
||
"help": "等待生成完成的秒数"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"prompt",
|
||
"image_count",
|
||
"image_urls"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "jimeng/generate.js",
|
||
"sourceFile": "jimeng/generate.js"
|
||
},
|
||
{
|
||
"site": "jimeng",
|
||
"name": "history",
|
||
"description": "即梦AI 查看最近生成的作品",
|
||
"domain": "jimeng.jianying.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 5,
|
||
"required": false,
|
||
"help": ""
|
||
}
|
||
],
|
||
"columns": [
|
||
"prompt",
|
||
"model",
|
||
"status",
|
||
"image_url",
|
||
"created_at"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "jimeng/history.js",
|
||
"sourceFile": "jimeng/history.js"
|
||
},
|
||
{
|
||
"site": "jimeng",
|
||
"name": "new",
|
||
"description": "即梦AI 新建会话(workspace)",
|
||
"domain": "jimeng.jianying.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"workspace_id",
|
||
"workspace_url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "jimeng/new.js",
|
||
"sourceFile": "jimeng/new.js"
|
||
},
|
||
{
|
||
"site": "jimeng",
|
||
"name": "workspaces",
|
||
"description": "即梦AI 查看所有工作区(会话窗口)",
|
||
"domain": "jimeng.jianying.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"workspace_id",
|
||
"name",
|
||
"is_pinned",
|
||
"updated_at"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "jimeng/workspaces.js",
|
||
"sourceFile": "jimeng/workspaces.js"
|
||
},
|
||
{
|
||
"site": "lesswrong",
|
||
"name": "comments",
|
||
"description": "Top comments on a post",
|
||
"domain": "www.lesswrong.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "url-or-id",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Post URL or LessWrong post ID"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 5,
|
||
"required": false,
|
||
"help": "Number of comments"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"score",
|
||
"author",
|
||
"text"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "lesswrong/comments.js",
|
||
"sourceFile": "lesswrong/comments.js"
|
||
},
|
||
{
|
||
"site": "lesswrong",
|
||
"name": "curated",
|
||
"description": "Curated editor's picks",
|
||
"domain": "www.lesswrong.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"karma",
|
||
"comments",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "lesswrong/curated.js",
|
||
"sourceFile": "lesswrong/curated.js"
|
||
},
|
||
{
|
||
"site": "lesswrong",
|
||
"name": "frontpage",
|
||
"description": "Algorithmic frontpage",
|
||
"domain": "www.lesswrong.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"karma",
|
||
"comments",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "lesswrong/frontpage.js",
|
||
"sourceFile": "lesswrong/frontpage.js"
|
||
},
|
||
{
|
||
"site": "lesswrong",
|
||
"name": "new",
|
||
"description": "Latest posts",
|
||
"domain": "www.lesswrong.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"karma",
|
||
"comments",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "lesswrong/new.js",
|
||
"sourceFile": "lesswrong/new.js"
|
||
},
|
||
{
|
||
"site": "lesswrong",
|
||
"name": "read",
|
||
"description": "Read full post by URL or ID",
|
||
"domain": "www.lesswrong.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "url-or-id",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Post URL or LessWrong post ID"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"author",
|
||
"karma",
|
||
"comments",
|
||
"tags",
|
||
"content",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "lesswrong/read.js",
|
||
"sourceFile": "lesswrong/read.js"
|
||
},
|
||
{
|
||
"site": "lesswrong",
|
||
"name": "sequences",
|
||
"description": "List post collections",
|
||
"domain": "www.lesswrong.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "lesswrong/sequences.js",
|
||
"sourceFile": "lesswrong/sequences.js"
|
||
},
|
||
{
|
||
"site": "lesswrong",
|
||
"name": "shortform",
|
||
"description": "Quick takes / shortform posts",
|
||
"domain": "www.lesswrong.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"karma",
|
||
"comments",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "lesswrong/shortform.js",
|
||
"sourceFile": "lesswrong/shortform.js"
|
||
},
|
||
{
|
||
"site": "lesswrong",
|
||
"name": "tag",
|
||
"description": "Posts by tag",
|
||
"domain": "www.lesswrong.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "tag",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Tag slug or name"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"karma",
|
||
"comments",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "lesswrong/tag.js",
|
||
"sourceFile": "lesswrong/tag.js"
|
||
},
|
||
{
|
||
"site": "lesswrong",
|
||
"name": "tags",
|
||
"description": "List popular tags",
|
||
"domain": "www.lesswrong.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"name",
|
||
"posts"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "lesswrong/tags.js",
|
||
"sourceFile": "lesswrong/tags.js"
|
||
},
|
||
{
|
||
"site": "lesswrong",
|
||
"name": "top",
|
||
"description": "Top all-time",
|
||
"domain": "www.lesswrong.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"karma",
|
||
"comments",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "lesswrong/top.js",
|
||
"sourceFile": "lesswrong/top.js"
|
||
},
|
||
{
|
||
"site": "lesswrong",
|
||
"name": "top-month",
|
||
"description": "Top this month",
|
||
"domain": "www.lesswrong.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"karma",
|
||
"comments",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "lesswrong/top-month.js",
|
||
"sourceFile": "lesswrong/top-month.js"
|
||
},
|
||
{
|
||
"site": "lesswrong",
|
||
"name": "top-week",
|
||
"description": "Top this week",
|
||
"domain": "www.lesswrong.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"karma",
|
||
"comments",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "lesswrong/top-week.js",
|
||
"sourceFile": "lesswrong/top-week.js"
|
||
},
|
||
{
|
||
"site": "lesswrong",
|
||
"name": "top-year",
|
||
"description": "Top this year",
|
||
"domain": "www.lesswrong.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"karma",
|
||
"comments",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "lesswrong/top-year.js",
|
||
"sourceFile": "lesswrong/top-year.js"
|
||
},
|
||
{
|
||
"site": "lesswrong",
|
||
"name": "user",
|
||
"description": "User profile",
|
||
"domain": "www.lesswrong.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "LessWrong username or slug"
|
||
}
|
||
],
|
||
"columns": [
|
||
"field",
|
||
"value"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "lesswrong/user.js",
|
||
"sourceFile": "lesswrong/user.js"
|
||
},
|
||
{
|
||
"site": "lesswrong",
|
||
"name": "user-posts",
|
||
"description": "List a user's posts",
|
||
"domain": "www.lesswrong.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "LessWrong username or slug"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"karma",
|
||
"comments",
|
||
"date",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "lesswrong/user-posts.js",
|
||
"sourceFile": "lesswrong/user-posts.js"
|
||
},
|
||
{
|
||
"site": "linkedin",
|
||
"name": "search",
|
||
"description": "Search LinkedIn jobs",
|
||
"domain": "www.linkedin.com",
|
||
"strategy": "header",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Job search keywords"
|
||
},
|
||
{
|
||
"name": "location",
|
||
"type": "string",
|
||
"required": false,
|
||
"help": "Location text such as San Francisco Bay Area"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of jobs to return (max 100)"
|
||
},
|
||
{
|
||
"name": "start",
|
||
"type": "int",
|
||
"default": 0,
|
||
"required": false,
|
||
"help": "Result offset for pagination"
|
||
},
|
||
{
|
||
"name": "details",
|
||
"type": "bool",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "Include full job description and apply URL (slower)"
|
||
},
|
||
{
|
||
"name": "company",
|
||
"type": "string",
|
||
"required": false,
|
||
"help": "Comma-separated company names or LinkedIn company IDs"
|
||
},
|
||
{
|
||
"name": "experience-level",
|
||
"type": "string",
|
||
"required": false,
|
||
"help": "Comma-separated: internship, entry, associate, mid-senior, director, executive"
|
||
},
|
||
{
|
||
"name": "job-type",
|
||
"type": "string",
|
||
"required": false,
|
||
"help": "Comma-separated: full-time, part-time, contract, temporary, volunteer, internship, other"
|
||
},
|
||
{
|
||
"name": "date-posted",
|
||
"type": "string",
|
||
"required": false,
|
||
"help": "One of: any, month, week, 24h"
|
||
},
|
||
{
|
||
"name": "remote",
|
||
"type": "string",
|
||
"required": false,
|
||
"help": "Comma-separated: on-site, hybrid, remote"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"company",
|
||
"location",
|
||
"listed",
|
||
"salary",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "linkedin/search.js",
|
||
"sourceFile": "linkedin/search.js"
|
||
},
|
||
{
|
||
"site": "linkedin",
|
||
"name": "timeline",
|
||
"description": "Read LinkedIn home timeline posts",
|
||
"domain": "www.linkedin.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of posts to return (max 100)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"author",
|
||
"author_url",
|
||
"headline",
|
||
"text",
|
||
"posted_at",
|
||
"reactions",
|
||
"comments",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "linkedin/timeline.js",
|
||
"sourceFile": "linkedin/timeline.js"
|
||
},
|
||
{
|
||
"site": "linux-do",
|
||
"name": "categories",
|
||
"description": "linux.do 分类列表",
|
||
"domain": "linux.do",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "subcategories",
|
||
"type": "boolean",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "Include subcategories"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of categories"
|
||
}
|
||
],
|
||
"columns": [
|
||
"name",
|
||
"slug",
|
||
"id",
|
||
"topics",
|
||
"description"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "linux-do/categories.js",
|
||
"sourceFile": "linux-do/categories.js"
|
||
},
|
||
{
|
||
"site": "linux-do",
|
||
"name": "category",
|
||
"description": "linux.do 分类内话题",
|
||
"domain": "linux.do",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "slug",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Category slug (legacy compatibility argument)"
|
||
},
|
||
{
|
||
"name": "id",
|
||
"type": "int",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Category ID"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of items (per_page)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"replies",
|
||
"created",
|
||
"likes",
|
||
"views",
|
||
"url"
|
||
],
|
||
"deprecated": "opencli linux-do category is kept for backward compatibility.",
|
||
"replacedBy": "opencli linux-do feed --category <id-or-name>",
|
||
"type": "js",
|
||
"modulePath": "linux-do/category.js",
|
||
"sourceFile": "linux-do/category.js"
|
||
},
|
||
{
|
||
"site": "linux-do",
|
||
"name": "feed",
|
||
"description": "linux.do 话题列表(需登录;支持全站、标签、分类)",
|
||
"domain": "linux.do",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "view",
|
||
"type": "str",
|
||
"default": "latest",
|
||
"required": false,
|
||
"help": "View type",
|
||
"choices": [
|
||
"latest",
|
||
"hot",
|
||
"top"
|
||
]
|
||
},
|
||
{
|
||
"name": "tag",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Tag name, slug, or id"
|
||
},
|
||
{
|
||
"name": "category",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Category name, slug, id, or parent/name path"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of items (per_page)"
|
||
},
|
||
{
|
||
"name": "order",
|
||
"type": "str",
|
||
"default": "default",
|
||
"required": false,
|
||
"help": "Sort order",
|
||
"choices": [
|
||
"default",
|
||
"created",
|
||
"activity",
|
||
"views",
|
||
"posts",
|
||
"category",
|
||
"likes",
|
||
"op_likes",
|
||
"posters"
|
||
]
|
||
},
|
||
{
|
||
"name": "ascending",
|
||
"type": "boolean",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "Sort ascending (default: desc)"
|
||
},
|
||
{
|
||
"name": "period",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Time period (only for --view top)",
|
||
"choices": [
|
||
"all",
|
||
"daily",
|
||
"weekly",
|
||
"monthly",
|
||
"quarterly",
|
||
"yearly"
|
||
]
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"replies",
|
||
"created",
|
||
"likes",
|
||
"views",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "linux-do/categories.js",
|
||
"sourceFile": "linux-do/categories.js"
|
||
},
|
||
{
|
||
"site": "linux-do",
|
||
"name": "hot",
|
||
"description": "linux.do 热门话题",
|
||
"domain": "linux.do",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of items (per_page)"
|
||
},
|
||
{
|
||
"name": "period",
|
||
"type": "str",
|
||
"default": "weekly",
|
||
"required": false,
|
||
"help": "Time period",
|
||
"choices": [
|
||
"all",
|
||
"daily",
|
||
"weekly",
|
||
"monthly",
|
||
"quarterly",
|
||
"yearly"
|
||
]
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"replies",
|
||
"created",
|
||
"likes",
|
||
"views",
|
||
"url"
|
||
],
|
||
"deprecated": "opencli linux-do hot is kept for backward compatibility.",
|
||
"replacedBy": "opencli linux-do feed --view top --period <period>",
|
||
"type": "js",
|
||
"modulePath": "linux-do/hot.js",
|
||
"sourceFile": "linux-do/hot.js"
|
||
},
|
||
{
|
||
"site": "linux-do",
|
||
"name": "latest",
|
||
"description": "linux.do 最新话题",
|
||
"domain": "linux.do",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of items (per_page)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"replies",
|
||
"created",
|
||
"likes",
|
||
"views",
|
||
"url"
|
||
],
|
||
"deprecated": "opencli linux-do latest is kept for backward compatibility.",
|
||
"replacedBy": "opencli linux-do feed --view latest",
|
||
"type": "js",
|
||
"modulePath": "linux-do/latest.js",
|
||
"sourceFile": "linux-do/latest.js"
|
||
},
|
||
{
|
||
"site": "linux-do",
|
||
"name": "search",
|
||
"description": "搜索 linux.do",
|
||
"domain": "linux.do",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search query"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"views",
|
||
"likes",
|
||
"replies",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "linux-do/search.js",
|
||
"sourceFile": "linux-do/search.js"
|
||
},
|
||
{
|
||
"site": "linux-do",
|
||
"name": "tags",
|
||
"description": "linux.do 标签列表",
|
||
"domain": "linux.do",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 30,
|
||
"required": false,
|
||
"help": "Number of tags"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"name",
|
||
"count",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "linux-do/tags.js",
|
||
"sourceFile": "linux-do/tags.js"
|
||
},
|
||
{
|
||
"site": "linux-do",
|
||
"name": "topic",
|
||
"description": "linux.do 帖子首页摘要和回复(首屏)",
|
||
"domain": "linux.do",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "int",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Topic ID"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of posts"
|
||
}
|
||
],
|
||
"columns": [
|
||
"author",
|
||
"content",
|
||
"likes",
|
||
"created_at"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "linux-do/topic.js",
|
||
"sourceFile": "linux-do/topic.js"
|
||
},
|
||
{
|
||
"site": "linux-do",
|
||
"name": "topic-content",
|
||
"description": "Get the main topic body as Markdown",
|
||
"domain": "linux.do",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "int",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Topic ID"
|
||
}
|
||
],
|
||
"columns": [
|
||
"content"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "linux-do/topic-content.js",
|
||
"sourceFile": "linux-do/topic-content.js"
|
||
},
|
||
{
|
||
"site": "linux-do",
|
||
"name": "user-posts",
|
||
"description": "linux.do 用户的帖子",
|
||
"domain": "linux.do",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Username"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of posts"
|
||
}
|
||
],
|
||
"columns": [
|
||
"index",
|
||
"topic_user",
|
||
"topic",
|
||
"reply",
|
||
"time",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "linux-do/user-posts.js",
|
||
"sourceFile": "linux-do/user-posts.js"
|
||
},
|
||
{
|
||
"site": "linux-do",
|
||
"name": "user-topics",
|
||
"description": "linux.do 用户创建的话题",
|
||
"domain": "linux.do",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Username"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of topics"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"replies",
|
||
"created_at",
|
||
"likes",
|
||
"views",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "linux-do/user-topics.js",
|
||
"sourceFile": "linux-do/user-topics.js"
|
||
},
|
||
{
|
||
"site": "lobsters",
|
||
"name": "active",
|
||
"description": "Lobste.rs most active discussions",
|
||
"domain": "lobste.rs",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of stories"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"score",
|
||
"author",
|
||
"comments",
|
||
"tags"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "lobsters/active.js",
|
||
"sourceFile": "lobsters/active.js"
|
||
},
|
||
{
|
||
"site": "lobsters",
|
||
"name": "hot",
|
||
"description": "Lobste.rs hottest stories",
|
||
"domain": "lobste.rs",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of stories"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"score",
|
||
"author",
|
||
"comments",
|
||
"tags"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "lobsters/hot.js",
|
||
"sourceFile": "lobsters/hot.js"
|
||
},
|
||
{
|
||
"site": "lobsters",
|
||
"name": "newest",
|
||
"description": "Lobste.rs newest stories",
|
||
"domain": "lobste.rs",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of stories"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"score",
|
||
"author",
|
||
"comments",
|
||
"tags"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "lobsters/newest.js",
|
||
"sourceFile": "lobsters/newest.js"
|
||
},
|
||
{
|
||
"site": "lobsters",
|
||
"name": "tag",
|
||
"description": "Lobste.rs stories by tag",
|
||
"domain": "lobste.rs",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "tag",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Tag name (e.g. programming, rust, security, ai)"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of stories"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"score",
|
||
"author",
|
||
"comments",
|
||
"tags"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "lobsters/tag.js",
|
||
"sourceFile": "lobsters/tag.js"
|
||
},
|
||
{
|
||
"site": "medium",
|
||
"name": "feed",
|
||
"description": "Medium 热门文章 Feed",
|
||
"domain": "medium.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "topic",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "话题标签(如 technology, programming, ai)"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "返回的文章数量"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"date",
|
||
"readTime",
|
||
"claps"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "medium/feed.js",
|
||
"sourceFile": "medium/feed.js"
|
||
},
|
||
{
|
||
"site": "medium",
|
||
"name": "search",
|
||
"description": "搜索 Medium 文章",
|
||
"domain": "medium.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "keyword",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "搜索关键词"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "返回的文章数量"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"date",
|
||
"readTime",
|
||
"claps",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "medium/search.js",
|
||
"sourceFile": "medium/search.js"
|
||
},
|
||
{
|
||
"site": "medium",
|
||
"name": "user",
|
||
"description": "获取 Medium 用户的文章列表",
|
||
"domain": "medium.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Medium 用户名(如 @username 或 username)"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "返回的文章数量"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"date",
|
||
"readTime",
|
||
"claps",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "medium/user.js",
|
||
"sourceFile": "medium/user.js"
|
||
},
|
||
{
|
||
"site": "notebooklm",
|
||
"name": "current",
|
||
"description": "Show metadata for the currently opened NotebookLM notebook tab",
|
||
"domain": "notebooklm.google.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"id",
|
||
"title",
|
||
"url",
|
||
"source"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "notebooklm/current.js",
|
||
"sourceFile": "notebooklm/current.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "notebooklm",
|
||
"name": "get",
|
||
"aliases": [
|
||
"metadata"
|
||
],
|
||
"description": "Get rich metadata for the currently opened NotebookLM notebook",
|
||
"domain": "notebooklm.google.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"id",
|
||
"title",
|
||
"emoji",
|
||
"source_count",
|
||
"created_at",
|
||
"updated_at",
|
||
"url",
|
||
"source"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "notebooklm/get.js",
|
||
"sourceFile": "notebooklm/get.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "notebooklm",
|
||
"name": "history",
|
||
"description": "List NotebookLM conversation history threads in the current notebook",
|
||
"domain": "notebooklm.google.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"thread_id",
|
||
"item_count",
|
||
"preview",
|
||
"source",
|
||
"notebook_id",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "notebooklm/history.js",
|
||
"sourceFile": "notebooklm/history.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "notebooklm",
|
||
"name": "list",
|
||
"description": "List NotebookLM notebooks via in-page batchexecute RPC in the current logged-in session",
|
||
"domain": "notebooklm.google.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"title",
|
||
"id",
|
||
"is_owner",
|
||
"created_at",
|
||
"source",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "notebooklm/list.js",
|
||
"sourceFile": "notebooklm/list.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "notebooklm",
|
||
"name": "note-list",
|
||
"aliases": [
|
||
"notes-list"
|
||
],
|
||
"description": "List saved notes from the Studio panel of the current NotebookLM notebook",
|
||
"domain": "notebooklm.google.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"title",
|
||
"created_at",
|
||
"source",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "notebooklm/note-list.js",
|
||
"sourceFile": "notebooklm/note-list.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "notebooklm",
|
||
"name": "notes-get",
|
||
"description": "Get one note from the current NotebookLM notebook by title from the visible note editor",
|
||
"domain": "notebooklm.google.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "note",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Note title or id from the current notebook"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"content",
|
||
"source",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "notebooklm/notes-get.js",
|
||
"sourceFile": "notebooklm/notes-get.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "notebooklm",
|
||
"name": "open",
|
||
"aliases": [
|
||
"select"
|
||
],
|
||
"description": "Open one NotebookLM notebook in the automation workspace by id or URL",
|
||
"domain": "notebooklm.google.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "notebook",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Notebook id from list output, or a full NotebookLM notebook URL"
|
||
}
|
||
],
|
||
"columns": [
|
||
"id",
|
||
"title",
|
||
"url",
|
||
"source"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "notebooklm/open.js",
|
||
"sourceFile": "notebooklm/open.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "notebooklm",
|
||
"name": "source-fulltext",
|
||
"description": "Get the extracted fulltext for one source in the currently opened NotebookLM notebook",
|
||
"domain": "notebooklm.google.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "source",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Source id or title from the current notebook"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"kind",
|
||
"char_count",
|
||
"url",
|
||
"source"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "notebooklm/source-fulltext.js",
|
||
"sourceFile": "notebooklm/source-fulltext.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "notebooklm",
|
||
"name": "source-get",
|
||
"description": "Get one source from the currently opened NotebookLM notebook by id or title",
|
||
"domain": "notebooklm.google.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "source",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Source id or title from the current notebook"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"id",
|
||
"type",
|
||
"size",
|
||
"created_at",
|
||
"updated_at",
|
||
"url",
|
||
"source"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "notebooklm/source-get.js",
|
||
"sourceFile": "notebooklm/source-get.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "notebooklm",
|
||
"name": "source-guide",
|
||
"description": "Get the guide summary and keywords for one source in the currently opened NotebookLM notebook",
|
||
"domain": "notebooklm.google.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "source",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Source id or title from the current notebook"
|
||
}
|
||
],
|
||
"columns": [
|
||
"source_id",
|
||
"notebook_id",
|
||
"title",
|
||
"type",
|
||
"summary",
|
||
"keywords",
|
||
"source"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "notebooklm/source-guide.js",
|
||
"sourceFile": "notebooklm/source-guide.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "notebooklm",
|
||
"name": "source-list",
|
||
"description": "List sources for the currently opened NotebookLM notebook",
|
||
"domain": "notebooklm.google.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"title",
|
||
"id",
|
||
"type",
|
||
"size",
|
||
"created_at",
|
||
"updated_at",
|
||
"url",
|
||
"source"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "notebooklm/source-list.js",
|
||
"sourceFile": "notebooklm/source-list.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "notebooklm",
|
||
"name": "status",
|
||
"description": "Check NotebookLM page availability and login state in the current Chrome session",
|
||
"domain": "notebooklm.google.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"status",
|
||
"login",
|
||
"page",
|
||
"url",
|
||
"title",
|
||
"notebooks"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "notebooklm/status.js",
|
||
"sourceFile": "notebooklm/status.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "notebooklm",
|
||
"name": "summary",
|
||
"description": "Get the summary block from the currently opened NotebookLM notebook",
|
||
"domain": "notebooklm.google.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"title",
|
||
"summary",
|
||
"source",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "notebooklm/summary.js",
|
||
"sourceFile": "notebooklm/summary.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "notion",
|
||
"name": "export",
|
||
"description": "Export the current Notion page as Markdown",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "output",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Output file (default: /tmp/notion-export.md)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Status",
|
||
"File"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "notion/export.js",
|
||
"sourceFile": "notion/export.js"
|
||
},
|
||
{
|
||
"site": "notion",
|
||
"name": "favorites",
|
||
"description": "List pages from the Notion Favorites section in the sidebar",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"Index",
|
||
"Title",
|
||
"Icon"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "notion/favorites.js",
|
||
"sourceFile": "notion/favorites.js"
|
||
},
|
||
{
|
||
"site": "notion",
|
||
"name": "new",
|
||
"description": "Create a new page in Notion",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "title",
|
||
"type": "str",
|
||
"required": false,
|
||
"positional": true,
|
||
"help": "Page title (optional)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Status"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "notion/new.js",
|
||
"sourceFile": "notion/new.js"
|
||
},
|
||
{
|
||
"site": "notion",
|
||
"name": "read",
|
||
"description": "Read the content of the currently open Notion page",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"Title",
|
||
"Content"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "notion/read.js",
|
||
"sourceFile": "notion/read.js"
|
||
},
|
||
{
|
||
"site": "notion",
|
||
"name": "search",
|
||
"description": "Search pages and databases in Notion via Quick Find (Cmd+P)",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search query"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Index",
|
||
"Title"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "notion/search.js",
|
||
"sourceFile": "notion/search.js"
|
||
},
|
||
{
|
||
"site": "notion",
|
||
"name": "sidebar",
|
||
"description": "List pages and databases from the Notion sidebar",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"Index",
|
||
"Title"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "notion/sidebar.js",
|
||
"sourceFile": "notion/sidebar.js"
|
||
},
|
||
{
|
||
"site": "notion",
|
||
"name": "status",
|
||
"description": "Check active CDP connection to Notion Desktop",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"Status",
|
||
"Url",
|
||
"Title"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "notion/status.js",
|
||
"sourceFile": "notion/status.js"
|
||
},
|
||
{
|
||
"site": "notion",
|
||
"name": "write",
|
||
"description": "Append text content to the currently open Notion page",
|
||
"domain": "localhost",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "text",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Text to append to the page"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Status"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "notion/write.js",
|
||
"sourceFile": "notion/write.js"
|
||
},
|
||
{
|
||
"site": "ones",
|
||
"name": "login",
|
||
"description": "ONES Project API — login via Chrome Bridge (POST auth/login); stderr prints export hints for ONES_USER_ID / TOKEN",
|
||
"domain": "ones.cn",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "email",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Account email (or set ONES_EMAIL)"
|
||
},
|
||
{
|
||
"name": "phone",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Account phone (or set ONES_PHONE); ignored if email is set"
|
||
},
|
||
{
|
||
"name": "password",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Password (or set ONES_PASSWORD)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"uuid",
|
||
"name",
|
||
"email",
|
||
"token_preview"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "ones/login.js",
|
||
"sourceFile": "ones/login.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "ones",
|
||
"name": "logout",
|
||
"description": "ONES Project API — invalidate current token (GET auth/logout) via Chrome Bridge",
|
||
"domain": "ones.cn",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"ok",
|
||
"detail"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "ones/logout.js",
|
||
"sourceFile": "ones/logout.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "ones",
|
||
"name": "me",
|
||
"description": "ONES Project API — current user (GET users/me) via Chrome Bridge",
|
||
"domain": "ones.cn",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"uuid",
|
||
"name",
|
||
"email",
|
||
"phone",
|
||
"status"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "ones/me.js",
|
||
"sourceFile": "ones/me.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "ones",
|
||
"name": "my-tasks",
|
||
"description": "ONES — my work items (filters/peek + strict must query). Default: assignee=me. Use --mode if your site uses field004 for assignee.",
|
||
"domain": "ones.cn",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "team",
|
||
"type": "str",
|
||
"required": false,
|
||
"positional": true,
|
||
"help": "Team UUID from URL …/team/<uuid>/…, or set ONES_TEAM_UUID"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 100,
|
||
"required": false,
|
||
"help": "Max rows (default 100, max 500)"
|
||
},
|
||
{
|
||
"name": "mode",
|
||
"type": "str",
|
||
"default": "assign",
|
||
"required": false,
|
||
"help": "assign=负责人(顶层 assign);field004=负责人(筛选器示例里的 field004);owner=创建者;both=负责人∪创建者(两次 peek 去重)",
|
||
"choices": [
|
||
"assign",
|
||
"field004",
|
||
"owner",
|
||
"both"
|
||
]
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"status",
|
||
"project",
|
||
"uuid",
|
||
"updated",
|
||
"工时"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "ones/my-tasks.js",
|
||
"sourceFile": "ones/my-tasks.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "ones",
|
||
"name": "task",
|
||
"description": "ONES — work item detail (GET team/:team/task/:id/info); id is URL segment after …/task/",
|
||
"domain": "ones.cn",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Work item UUID (often 16 chars) from …/task/<id>"
|
||
},
|
||
{
|
||
"name": "team",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Team UUID (8 chars from …/team/<team>/…), or set ONES_TEAM_UUID"
|
||
}
|
||
],
|
||
"columns": [
|
||
"uuid",
|
||
"summary",
|
||
"number",
|
||
"status_uuid",
|
||
"assign",
|
||
"owner",
|
||
"project_uuid",
|
||
"updated"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "ones/task.js",
|
||
"sourceFile": "ones/task.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "ones",
|
||
"name": "tasks",
|
||
"description": "ONES Project API — list work items (POST team/:team/filters/peek); use token-info -f json for team uuid",
|
||
"domain": "ones.cn",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "team",
|
||
"type": "str",
|
||
"required": false,
|
||
"positional": true,
|
||
"help": "Team UUID (8 chars), or set ONES_TEAM_UUID"
|
||
},
|
||
{
|
||
"name": "project",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Filter by project UUID (field006 / 所属项目)"
|
||
},
|
||
{
|
||
"name": "assign",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Filter by assignee user UUID (负责人 assign)"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 30,
|
||
"required": false,
|
||
"help": "Max rows after flattening groups (default 30)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"status",
|
||
"project",
|
||
"uuid",
|
||
"updated",
|
||
"工时"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "ones/tasks.js",
|
||
"sourceFile": "ones/tasks.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "ones",
|
||
"name": "token-info",
|
||
"description": "ONES Project API — session detail (GET auth/token_info) via Chrome Bridge: user, teams, org",
|
||
"domain": "ones.cn",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"uuid",
|
||
"name",
|
||
"email",
|
||
"teams",
|
||
"org_name"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "ones/token-info.js",
|
||
"sourceFile": "ones/token-info.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "ones",
|
||
"name": "worklog",
|
||
"description": "ONES — log work hours on a task (defaults to today; use --date to backfill; endpoint falls back by deployment).",
|
||
"domain": "ones.cn",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "task",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Work item UUID (usually 16 chars), from my-tasks or browser URL …/task/<id>"
|
||
},
|
||
{
|
||
"name": "hours",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Hours to log for this entry (e.g. 2 or 1.5), converted with ONES_MANHOUR_SCALE"
|
||
},
|
||
{
|
||
"name": "team",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Team UUID from URL …/team/<uuid>/…, or set ONES_TEAM_UUID"
|
||
},
|
||
{
|
||
"name": "date",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Entry date YYYY-MM-DD, defaults to today (local timezone); use for backfill"
|
||
},
|
||
{
|
||
"name": "note",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Optional note (written to description/desc)"
|
||
},
|
||
{
|
||
"name": "owner",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Owner user UUID (defaults to current logged-in user)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"task",
|
||
"date",
|
||
"hours",
|
||
"owner",
|
||
"endpoint"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "ones/worklog.js",
|
||
"sourceFile": "ones/worklog.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "paperreview",
|
||
"name": "feedback",
|
||
"description": "Submit feedback for a paperreview.ai review token",
|
||
"domain": "paperreview.ai",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "token",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Review token returned by paperreview.ai"
|
||
},
|
||
{
|
||
"name": "helpfulness",
|
||
"type": "int",
|
||
"required": true,
|
||
"help": "Helpfulness score from 1 to 5"
|
||
},
|
||
{
|
||
"name": "critical-error",
|
||
"type": "str",
|
||
"required": true,
|
||
"help": "Whether the review contains a critical error",
|
||
"choices": [
|
||
"yes",
|
||
"no"
|
||
]
|
||
},
|
||
{
|
||
"name": "actionable-suggestions",
|
||
"type": "str",
|
||
"required": true,
|
||
"help": "Whether the review contains actionable suggestions",
|
||
"choices": [
|
||
"yes",
|
||
"no"
|
||
]
|
||
},
|
||
{
|
||
"name": "additional-comments",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Optional free-text feedback"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"token",
|
||
"helpfulness",
|
||
"critical_error",
|
||
"actionable_suggestions",
|
||
"message"
|
||
],
|
||
"timeout": 30,
|
||
"type": "js",
|
||
"modulePath": "paperreview/feedback.js",
|
||
"sourceFile": "paperreview/feedback.js"
|
||
},
|
||
{
|
||
"site": "paperreview",
|
||
"name": "review",
|
||
"description": "Fetch a paperreview.ai review by token",
|
||
"domain": "paperreview.ai",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "token",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Review token returned by paperreview.ai"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"title",
|
||
"venue",
|
||
"numerical_score",
|
||
"has_feedback",
|
||
"review_url"
|
||
],
|
||
"timeout": 30,
|
||
"type": "js",
|
||
"modulePath": "paperreview/review.js",
|
||
"sourceFile": "paperreview/review.js"
|
||
},
|
||
{
|
||
"site": "paperreview",
|
||
"name": "submit",
|
||
"description": "Submit a PDF to paperreview.ai for review",
|
||
"domain": "paperreview.ai",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "pdf",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Path to the paper PDF"
|
||
},
|
||
{
|
||
"name": "email",
|
||
"type": "str",
|
||
"required": true,
|
||
"help": "Email address for the submission"
|
||
},
|
||
{
|
||
"name": "venue",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Optional target venue such as ICLR or NeurIPS"
|
||
},
|
||
{
|
||
"name": "dry-run",
|
||
"type": "bool",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "Validate the input and stop before remote submission"
|
||
},
|
||
{
|
||
"name": "prepare-only",
|
||
"type": "bool",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "Request an upload slot but stop before uploading the PDF"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"file",
|
||
"email",
|
||
"venue",
|
||
"token",
|
||
"review_url",
|
||
"message"
|
||
],
|
||
"timeout": 120,
|
||
"type": "js",
|
||
"modulePath": "paperreview/submit.js",
|
||
"sourceFile": "paperreview/submit.js"
|
||
},
|
||
{
|
||
"site": "pixiv",
|
||
"name": "detail",
|
||
"description": "View illustration details (tags, stats, URLs)",
|
||
"domain": "www.pixiv.net",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Illustration ID"
|
||
}
|
||
],
|
||
"columns": [
|
||
"illust_id",
|
||
"title",
|
||
"author",
|
||
"type",
|
||
"pages",
|
||
"bookmarks",
|
||
"likes",
|
||
"views",
|
||
"tags",
|
||
"created",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "pixiv/detail.js",
|
||
"sourceFile": "pixiv/detail.js"
|
||
},
|
||
{
|
||
"site": "pixiv",
|
||
"name": "download",
|
||
"description": "Download illustration images from Pixiv",
|
||
"domain": "www.pixiv.net",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "illust-id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Illustration ID"
|
||
},
|
||
{
|
||
"name": "output",
|
||
"type": "str",
|
||
"default": "./pixiv-downloads",
|
||
"required": false,
|
||
"help": "Output directory"
|
||
}
|
||
],
|
||
"columns": [
|
||
"index",
|
||
"type",
|
||
"status",
|
||
"size"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "pixiv/download.js",
|
||
"sourceFile": "pixiv/download.js"
|
||
},
|
||
{
|
||
"site": "pixiv",
|
||
"name": "illusts",
|
||
"description": "List a Pixiv artist's illustrations",
|
||
"domain": "www.pixiv.net",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "user-id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Pixiv user ID"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"illust_id",
|
||
"pages",
|
||
"bookmarks",
|
||
"tags",
|
||
"created"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "pixiv/illusts.js",
|
||
"sourceFile": "pixiv/illusts.js"
|
||
},
|
||
{
|
||
"site": "pixiv",
|
||
"name": "ranking",
|
||
"description": "Pixiv illustration rankings (daily/weekly/monthly)",
|
||
"domain": "www.pixiv.net",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "mode",
|
||
"type": "str",
|
||
"default": "daily",
|
||
"required": false,
|
||
"help": "Ranking mode",
|
||
"choices": [
|
||
"daily",
|
||
"weekly",
|
||
"monthly",
|
||
"rookie",
|
||
"original",
|
||
"male",
|
||
"female",
|
||
"daily_r18",
|
||
"weekly_r18"
|
||
]
|
||
},
|
||
{
|
||
"name": "page",
|
||
"type": "int",
|
||
"default": 1,
|
||
"required": false,
|
||
"help": "Page number"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"illust_id",
|
||
"pages",
|
||
"bookmarks"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "pixiv/ranking.js",
|
||
"sourceFile": "pixiv/ranking.js"
|
||
},
|
||
{
|
||
"site": "pixiv",
|
||
"name": "search",
|
||
"description": "Search Pixiv illustrations by keyword",
|
||
"domain": "www.pixiv.net",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search keyword or tag"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
},
|
||
{
|
||
"name": "order",
|
||
"type": "str",
|
||
"default": "date_d",
|
||
"required": false,
|
||
"help": "Sort order",
|
||
"choices": [
|
||
"date_d",
|
||
"date",
|
||
"popular_d",
|
||
"popular_male_d",
|
||
"popular_female_d"
|
||
]
|
||
},
|
||
{
|
||
"name": "mode",
|
||
"type": "str",
|
||
"default": "all",
|
||
"required": false,
|
||
"help": "Search mode",
|
||
"choices": [
|
||
"all",
|
||
"safe",
|
||
"r18"
|
||
]
|
||
},
|
||
{
|
||
"name": "page",
|
||
"type": "int",
|
||
"default": 1,
|
||
"required": false,
|
||
"help": "Page number"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"illust_id",
|
||
"pages",
|
||
"bookmarks",
|
||
"tags"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "pixiv/search.js",
|
||
"sourceFile": "pixiv/search.js"
|
||
},
|
||
{
|
||
"site": "pixiv",
|
||
"name": "user",
|
||
"description": "View Pixiv artist profile",
|
||
"domain": "www.pixiv.net",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "uid",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Pixiv user ID"
|
||
}
|
||
],
|
||
"columns": [
|
||
"user_id",
|
||
"name",
|
||
"premium",
|
||
"following",
|
||
"illusts",
|
||
"manga",
|
||
"novels",
|
||
"comment"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "pixiv/user.js",
|
||
"sourceFile": "pixiv/user.js"
|
||
},
|
||
{
|
||
"site": "producthunt",
|
||
"name": "browse",
|
||
"description": "Best products in a Product Hunt category",
|
||
"domain": "www.producthunt.com",
|
||
"strategy": "intercept",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "category",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Category slug, e.g. vibe-coding, ai-agents, developer-tools"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of results (max 50)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"name",
|
||
"tagline",
|
||
"reviews",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "producthunt/browse.js",
|
||
"sourceFile": "producthunt/browse.js"
|
||
},
|
||
{
|
||
"site": "producthunt",
|
||
"name": "hot",
|
||
"description": "Today's top Product Hunt launches with vote counts",
|
||
"domain": "www.producthunt.com",
|
||
"strategy": "intercept",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of results (max 50)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"name",
|
||
"votes",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "producthunt/hot.js",
|
||
"sourceFile": "producthunt/hot.js"
|
||
},
|
||
{
|
||
"site": "producthunt",
|
||
"name": "posts",
|
||
"description": "Latest Product Hunt launches (optional category filter)",
|
||
"domain": "www.producthunt.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of results (max 50)"
|
||
},
|
||
{
|
||
"name": "category",
|
||
"type": "string",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "Category filter: ai-agents, ai-coding-agents, ai-code-editors, ai-chatbots, ai-workflow-automation, vibe-coding, developer-tools, productivity, design-creative, marketing-sales, no-code-platforms, llms, finance, social-community, engineering-development"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"name",
|
||
"tagline",
|
||
"author",
|
||
"date",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "producthunt/posts.js",
|
||
"sourceFile": "producthunt/posts.js"
|
||
},
|
||
{
|
||
"site": "producthunt",
|
||
"name": "today",
|
||
"description": "Today's Product Hunt launches (most recent day in feed)",
|
||
"domain": "www.producthunt.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Max results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"name",
|
||
"tagline",
|
||
"author",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "producthunt/today.js",
|
||
"sourceFile": "producthunt/today.js"
|
||
},
|
||
{
|
||
"site": "quark",
|
||
"name": "ls",
|
||
"description": "List files in your Quark Drive",
|
||
"domain": "pan.quark.cn",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "path",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"positional": true,
|
||
"help": "Folder path to list (empty for root)"
|
||
},
|
||
{
|
||
"name": "depth",
|
||
"type": "int",
|
||
"default": 0,
|
||
"required": false,
|
||
"help": "Max depth to traverse"
|
||
},
|
||
{
|
||
"name": "dirs-only",
|
||
"type": "boolean",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "Show directories only"
|
||
}
|
||
],
|
||
"columns": [
|
||
"name",
|
||
"is_dir",
|
||
"size",
|
||
"fid",
|
||
"path"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "quark/ls.js",
|
||
"sourceFile": "quark/ls.js"
|
||
},
|
||
{
|
||
"site": "quark",
|
||
"name": "mkdir",
|
||
"description": "Create a folder in your Quark Drive",
|
||
"domain": "pan.quark.cn",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "name",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Folder name"
|
||
},
|
||
{
|
||
"name": "parent",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Parent folder path (resolved by name)"
|
||
},
|
||
{
|
||
"name": "parent-fid",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Parent folder fid (use directly)"
|
||
}
|
||
],
|
||
"type": "js",
|
||
"modulePath": "quark/mkdir.js",
|
||
"sourceFile": "quark/mkdir.js"
|
||
},
|
||
{
|
||
"site": "quark",
|
||
"name": "mv",
|
||
"description": "Move files to a folder in your Quark Drive",
|
||
"domain": "pan.quark.cn",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "fids",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "File IDs to move (comma-separated)"
|
||
},
|
||
{
|
||
"name": "to",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "Destination folder path (required unless --to-fid is set)"
|
||
},
|
||
{
|
||
"name": "to-fid",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "Destination folder ID (overrides --to)"
|
||
}
|
||
],
|
||
"timeout": 120,
|
||
"type": "js",
|
||
"modulePath": "quark/mv.js",
|
||
"sourceFile": "quark/mv.js"
|
||
},
|
||
{
|
||
"site": "quark",
|
||
"name": "rename",
|
||
"description": "Rename a file in your Quark Drive",
|
||
"domain": "pan.quark.cn",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "fid",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "File ID to rename"
|
||
},
|
||
{
|
||
"name": "name",
|
||
"type": "str",
|
||
"required": true,
|
||
"help": "New file name"
|
||
}
|
||
],
|
||
"type": "js",
|
||
"modulePath": "quark/rename.js",
|
||
"sourceFile": "quark/rename.js"
|
||
},
|
||
{
|
||
"site": "quark",
|
||
"name": "rm",
|
||
"description": "Delete files from your Quark Drive",
|
||
"domain": "pan.quark.cn",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "fids",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "File IDs to delete (comma-separated)"
|
||
}
|
||
],
|
||
"type": "js",
|
||
"modulePath": "quark/rm.js",
|
||
"sourceFile": "quark/rm.js"
|
||
},
|
||
{
|
||
"site": "quark",
|
||
"name": "save",
|
||
"description": "Save shared files to your Quark Drive",
|
||
"domain": "pan.quark.cn",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "url",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Quark share URL or pwd_id"
|
||
},
|
||
{
|
||
"name": "to",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "Destination folder path"
|
||
},
|
||
{
|
||
"name": "to-fid",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "Destination folder ID (overrides --to)"
|
||
},
|
||
{
|
||
"name": "fids",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "File IDs to save (comma-separated, from share-tree). Omit to save all."
|
||
},
|
||
{
|
||
"name": "stoken",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "Share token (from share-tree output, required with --fids)"
|
||
},
|
||
{
|
||
"name": "passcode",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "Share passcode (if required)"
|
||
}
|
||
],
|
||
"timeout": 120,
|
||
"type": "js",
|
||
"modulePath": "quark/save.js",
|
||
"sourceFile": "quark/save.js"
|
||
},
|
||
{
|
||
"site": "quark",
|
||
"name": "share-tree",
|
||
"description": "Get directory tree from Quark Drive share link as nested JSON",
|
||
"domain": "pan.quark.cn",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "url",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Quark share URL or pwd_id"
|
||
},
|
||
{
|
||
"name": "passcode",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "Share passcode (if required)"
|
||
},
|
||
{
|
||
"name": "depth",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Max directory depth"
|
||
}
|
||
],
|
||
"type": "js",
|
||
"modulePath": "quark/share-tree.js",
|
||
"sourceFile": "quark/share-tree.js"
|
||
},
|
||
{
|
||
"site": "reddit",
|
||
"name": "comment",
|
||
"description": "Post a comment on a Reddit post",
|
||
"domain": "reddit.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "post-id",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Post ID (e.g. 1abc123) or fullname (t3_xxx)"
|
||
},
|
||
{
|
||
"name": "text",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Comment text"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"message"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "reddit/comment.js",
|
||
"sourceFile": "reddit/comment.js"
|
||
},
|
||
{
|
||
"site": "reddit",
|
||
"name": "frontpage",
|
||
"description": "Reddit Frontpage / r/all",
|
||
"domain": "reddit.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 15,
|
||
"required": false,
|
||
"help": ""
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"subreddit",
|
||
"author",
|
||
"upvotes",
|
||
"comments",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "reddit/frontpage.js",
|
||
"sourceFile": "reddit/frontpage.js"
|
||
},
|
||
{
|
||
"site": "reddit",
|
||
"name": "hot",
|
||
"description": "Reddit 热门帖子",
|
||
"domain": "www.reddit.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "subreddit",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "Subreddit name (e.g. programming). Empty for frontpage"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of posts"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"subreddit",
|
||
"score",
|
||
"comments"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "reddit/hot.js",
|
||
"sourceFile": "reddit/hot.js"
|
||
},
|
||
{
|
||
"site": "reddit",
|
||
"name": "popular",
|
||
"description": "Reddit Popular posts (/r/popular)",
|
||
"domain": "reddit.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": ""
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"subreddit",
|
||
"score",
|
||
"comments",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "reddit/popular.js",
|
||
"sourceFile": "reddit/popular.js"
|
||
},
|
||
{
|
||
"site": "reddit",
|
||
"name": "read",
|
||
"description": "Read a Reddit post and its comments",
|
||
"domain": "reddit.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "post-id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Post ID (e.g. 1abc123) or full URL"
|
||
},
|
||
{
|
||
"name": "sort",
|
||
"type": "str",
|
||
"default": "best",
|
||
"required": false,
|
||
"help": "Comment sort: best, top, new, controversial, old, qa"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 25,
|
||
"required": false,
|
||
"help": "Number of top-level comments"
|
||
},
|
||
{
|
||
"name": "depth",
|
||
"type": "int",
|
||
"default": 2,
|
||
"required": false,
|
||
"help": "Max reply depth (1=no replies, 2=one level of replies, etc.)"
|
||
},
|
||
{
|
||
"name": "replies",
|
||
"type": "int",
|
||
"default": 5,
|
||
"required": false,
|
||
"help": "Max replies shown per comment at each level (sorted by score)"
|
||
},
|
||
{
|
||
"name": "max-length",
|
||
"type": "int",
|
||
"default": 2000,
|
||
"required": false,
|
||
"help": "Max characters per comment body (min 100)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"type",
|
||
"author",
|
||
"score",
|
||
"text"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "reddit/read.js",
|
||
"sourceFile": "reddit/read.js"
|
||
},
|
||
{
|
||
"site": "reddit",
|
||
"name": "save",
|
||
"description": "Save or unsave a Reddit post",
|
||
"domain": "reddit.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "post-id",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Post ID (e.g. 1abc123) or fullname (t3_xxx)"
|
||
},
|
||
{
|
||
"name": "undo",
|
||
"type": "boolean",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "Unsave instead of save"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"message"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "reddit/save.js",
|
||
"sourceFile": "reddit/save.js"
|
||
},
|
||
{
|
||
"site": "reddit",
|
||
"name": "saved",
|
||
"description": "Browse your saved Reddit posts",
|
||
"domain": "reddit.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 15,
|
||
"required": false,
|
||
"help": ""
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"subreddit",
|
||
"score",
|
||
"comments",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "reddit/saved.js",
|
||
"sourceFile": "reddit/saved.js"
|
||
},
|
||
{
|
||
"site": "reddit",
|
||
"name": "search",
|
||
"description": "Search Reddit Posts",
|
||
"domain": "reddit.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": ""
|
||
},
|
||
{
|
||
"name": "subreddit",
|
||
"type": "string",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "Search within a specific subreddit"
|
||
},
|
||
{
|
||
"name": "sort",
|
||
"type": "string",
|
||
"default": "relevance",
|
||
"required": false,
|
||
"help": "Sort order: relevance, hot, top, new, comments"
|
||
},
|
||
{
|
||
"name": "time",
|
||
"type": "string",
|
||
"default": "all",
|
||
"required": false,
|
||
"help": "Time filter: hour, day, week, month, year, all"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 15,
|
||
"required": false,
|
||
"help": ""
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"subreddit",
|
||
"author",
|
||
"score",
|
||
"comments",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "reddit/search.js",
|
||
"sourceFile": "reddit/search.js"
|
||
},
|
||
{
|
||
"site": "reddit",
|
||
"name": "subreddit",
|
||
"description": "Get posts from a specific Subreddit",
|
||
"domain": "reddit.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "name",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": ""
|
||
},
|
||
{
|
||
"name": "sort",
|
||
"type": "string",
|
||
"default": "hot",
|
||
"required": false,
|
||
"help": "Sorting method: hot, new, top, rising, controversial"
|
||
},
|
||
{
|
||
"name": "time",
|
||
"type": "string",
|
||
"default": "all",
|
||
"required": false,
|
||
"help": "Time filter for top/controversial: hour, day, week, month, year, all"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 15,
|
||
"required": false,
|
||
"help": ""
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"author",
|
||
"upvotes",
|
||
"comments",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "reddit/subreddit.js",
|
||
"sourceFile": "reddit/subreddit.js"
|
||
},
|
||
{
|
||
"site": "reddit",
|
||
"name": "subscribe",
|
||
"description": "Subscribe or unsubscribe to a subreddit",
|
||
"domain": "reddit.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "subreddit",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Subreddit name (e.g. python)"
|
||
},
|
||
{
|
||
"name": "undo",
|
||
"type": "boolean",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "Unsubscribe instead of subscribe"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"message"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "reddit/subscribe.js",
|
||
"sourceFile": "reddit/subscribe.js"
|
||
},
|
||
{
|
||
"site": "reddit",
|
||
"name": "upvote",
|
||
"description": "Upvote or downvote a Reddit post",
|
||
"domain": "reddit.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "post-id",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Post ID (e.g. 1abc123) or fullname (t3_xxx)"
|
||
},
|
||
{
|
||
"name": "direction",
|
||
"type": "string",
|
||
"default": "up",
|
||
"required": false,
|
||
"help": "Vote direction: up, down, none"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"message"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "reddit/upvote.js",
|
||
"sourceFile": "reddit/upvote.js"
|
||
},
|
||
{
|
||
"site": "reddit",
|
||
"name": "upvoted",
|
||
"description": "Browse your upvoted Reddit posts",
|
||
"domain": "reddit.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 15,
|
||
"required": false,
|
||
"help": ""
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"subreddit",
|
||
"score",
|
||
"comments",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "reddit/upvoted.js",
|
||
"sourceFile": "reddit/upvoted.js"
|
||
},
|
||
{
|
||
"site": "reddit",
|
||
"name": "user",
|
||
"description": "View a Reddit user profile",
|
||
"domain": "reddit.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": ""
|
||
}
|
||
],
|
||
"columns": [
|
||
"field",
|
||
"value"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "reddit/user.js",
|
||
"sourceFile": "reddit/user.js"
|
||
},
|
||
{
|
||
"site": "reddit",
|
||
"name": "user-comments",
|
||
"description": "View a Reddit user's comment history",
|
||
"domain": "reddit.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": ""
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 15,
|
||
"required": false,
|
||
"help": ""
|
||
}
|
||
],
|
||
"columns": [
|
||
"subreddit",
|
||
"score",
|
||
"body",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "reddit/user-comments.js",
|
||
"sourceFile": "reddit/user-comments.js"
|
||
},
|
||
{
|
||
"site": "reddit",
|
||
"name": "user-posts",
|
||
"description": "View a Reddit user's submitted posts",
|
||
"domain": "reddit.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": ""
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 15,
|
||
"required": false,
|
||
"help": ""
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"subreddit",
|
||
"score",
|
||
"comments",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "reddit/user-posts.js",
|
||
"sourceFile": "reddit/user-posts.js"
|
||
},
|
||
{
|
||
"site": "reuters",
|
||
"name": "search",
|
||
"description": "Reuters 路透社新闻搜索",
|
||
"domain": "www.reuters.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search query"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of results (max 40)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"date",
|
||
"section",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "reuters/search.js",
|
||
"sourceFile": "reuters/search.js"
|
||
},
|
||
{
|
||
"site": "sinablog",
|
||
"name": "article",
|
||
"description": "获取新浪博客单篇文章详情",
|
||
"domain": "blog.sina.com.cn",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "url",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "文章URL(如 https://blog.sina.com.cn/s/blog_xxx.html)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"author",
|
||
"date",
|
||
"category",
|
||
"readCount",
|
||
"commentCount"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "sinablog/article.js",
|
||
"sourceFile": "sinablog/article.js"
|
||
},
|
||
{
|
||
"site": "sinablog",
|
||
"name": "hot",
|
||
"description": "获取新浪博客热门文章/推荐",
|
||
"domain": "blog.sina.com.cn",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "返回的文章数量"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"date",
|
||
"readCount",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "sinablog/hot.js",
|
||
"sourceFile": "sinablog/hot.js"
|
||
},
|
||
{
|
||
"site": "sinablog",
|
||
"name": "search",
|
||
"description": "搜索新浪博客文章(通过新浪搜索)",
|
||
"domain": "blog.sina.com.cn",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "keyword",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "搜索关键词"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "返回的文章数量"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"date",
|
||
"description",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "sinablog/search.js",
|
||
"sourceFile": "sinablog/search.js"
|
||
},
|
||
{
|
||
"site": "sinablog",
|
||
"name": "user",
|
||
"description": "获取新浪博客用户的文章列表",
|
||
"domain": "blog.sina.com.cn",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "uid",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "新浪博客用户ID(如 1234567890)"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "返回的文章数量"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"date",
|
||
"readCount",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "sinablog/user.js",
|
||
"sourceFile": "sinablog/user.js"
|
||
},
|
||
{
|
||
"site": "sinafinance",
|
||
"name": "news",
|
||
"description": "新浪财经 7x24 小时实时快讯",
|
||
"domain": "app.cj.sina.com.cn",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Max results (max 50)"
|
||
},
|
||
{
|
||
"name": "type",
|
||
"type": "int",
|
||
"default": 0,
|
||
"required": false,
|
||
"help": "News type: 0=全部 1=A股 2=宏观 3=公司 4=数据 5=市场 6=国际 7=观点 8=央行 9=其它"
|
||
}
|
||
],
|
||
"columns": [
|
||
"id",
|
||
"time",
|
||
"content",
|
||
"views"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "sinafinance/news.js",
|
||
"sourceFile": "sinafinance/news.js"
|
||
},
|
||
{
|
||
"site": "sinafinance",
|
||
"name": "rolling-news",
|
||
"description": "新浪财经滚动新闻",
|
||
"domain": "finance.sina.com.cn/roll",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"column",
|
||
"title",
|
||
"date",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "sinafinance/rolling-news.js",
|
||
"sourceFile": "sinafinance/rolling-news.js"
|
||
},
|
||
{
|
||
"site": "sinafinance",
|
||
"name": "stock",
|
||
"description": "新浪财经行情(A股/港股/美股)",
|
||
"domain": "suggest3.sinajs.cn,hq.sinajs.cn",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "key",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Stock name or code (e.g. 贵州茅台, 腾讯控股, AAPL)"
|
||
},
|
||
{
|
||
"name": "market",
|
||
"type": "string",
|
||
"default": "auto",
|
||
"required": false,
|
||
"help": "Market: cn, hk, us, auto (default: auto searches cn → hk → us)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Symbol",
|
||
"Name",
|
||
"Price",
|
||
"Change",
|
||
"ChangePercent",
|
||
"Open",
|
||
"High",
|
||
"Low",
|
||
"Volume",
|
||
"MarketCap"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "sinafinance/stock.js",
|
||
"sourceFile": "sinafinance/stock.js"
|
||
},
|
||
{
|
||
"site": "sinafinance",
|
||
"name": "stock-rank",
|
||
"description": "新浪财经热搜榜",
|
||
"domain": "finance.sina.cn",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "market",
|
||
"type": "string",
|
||
"default": "cn",
|
||
"required": false,
|
||
"help": "Market: cn (A股), hk (港股), us (美股), wh (外汇), ft (期货)",
|
||
"choices": [
|
||
"cn",
|
||
"hk",
|
||
"us",
|
||
"wh",
|
||
"ft"
|
||
]
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"name",
|
||
"symbol",
|
||
"market",
|
||
"price",
|
||
"change",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "sinafinance/stock-rank.js",
|
||
"sourceFile": "sinafinance/stock-rank.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "smzdm",
|
||
"name": "search",
|
||
"description": "什么值得买搜索好价",
|
||
"domain": "www.smzdm.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search keyword"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"price",
|
||
"mall",
|
||
"comments",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "smzdm/search.js",
|
||
"sourceFile": "smzdm/search.js"
|
||
},
|
||
{
|
||
"site": "spotify",
|
||
"name": "auth",
|
||
"description": "Authenticate with Spotify (OAuth — run once)",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [],
|
||
"columns": [
|
||
"status"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "spotify/spotify.js",
|
||
"sourceFile": "spotify/spotify.js"
|
||
},
|
||
{
|
||
"site": "spotify",
|
||
"name": "next",
|
||
"description": "Skip to next track",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [],
|
||
"columns": [
|
||
"status"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "spotify/spotify.js",
|
||
"sourceFile": "spotify/spotify.js"
|
||
},
|
||
{
|
||
"site": "spotify",
|
||
"name": "pause",
|
||
"description": "Pause playback",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [],
|
||
"columns": [
|
||
"status"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "spotify/spotify.js",
|
||
"sourceFile": "spotify/spotify.js"
|
||
},
|
||
{
|
||
"site": "spotify",
|
||
"name": "play",
|
||
"description": "Resume playback or search and play a track/artist",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"positional": true,
|
||
"help": "Track or artist to play (optional)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"track",
|
||
"artist",
|
||
"status"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "spotify/spotify.js",
|
||
"sourceFile": "spotify/spotify.js"
|
||
},
|
||
{
|
||
"site": "spotify",
|
||
"name": "prev",
|
||
"description": "Skip to previous track",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [],
|
||
"columns": [
|
||
"status"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "spotify/spotify.js",
|
||
"sourceFile": "spotify/spotify.js"
|
||
},
|
||
{
|
||
"site": "spotify",
|
||
"name": "queue",
|
||
"description": "Add a track to the playback queue",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Track to add to queue"
|
||
}
|
||
],
|
||
"columns": [
|
||
"track",
|
||
"artist",
|
||
"status"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "spotify/spotify.js",
|
||
"sourceFile": "spotify/spotify.js"
|
||
},
|
||
{
|
||
"site": "spotify",
|
||
"name": "repeat",
|
||
"description": "Set repeat mode (off / track / context)",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "mode",
|
||
"type": "str",
|
||
"default": "context",
|
||
"required": false,
|
||
"positional": true,
|
||
"help": "off / track / context",
|
||
"choices": [
|
||
"off",
|
||
"track",
|
||
"context"
|
||
]
|
||
}
|
||
],
|
||
"columns": [
|
||
"repeat"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "spotify/spotify.js",
|
||
"sourceFile": "spotify/spotify.js"
|
||
},
|
||
{
|
||
"site": "spotify",
|
||
"name": "search",
|
||
"description": "Search for tracks",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search query"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of results (default: 10)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"track",
|
||
"artist",
|
||
"album",
|
||
"uri"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "spotify/spotify.js",
|
||
"sourceFile": "spotify/spotify.js"
|
||
},
|
||
{
|
||
"site": "spotify",
|
||
"name": "shuffle",
|
||
"description": "Toggle shuffle on/off",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "state",
|
||
"type": "str",
|
||
"default": "on",
|
||
"required": false,
|
||
"positional": true,
|
||
"help": "on or off",
|
||
"choices": [
|
||
"on",
|
||
"off"
|
||
]
|
||
}
|
||
],
|
||
"columns": [
|
||
"shuffle"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "spotify/spotify.js",
|
||
"sourceFile": "spotify/spotify.js"
|
||
},
|
||
{
|
||
"site": "spotify",
|
||
"name": "status",
|
||
"description": "Show current playback status",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [],
|
||
"columns": [
|
||
"track",
|
||
"artist",
|
||
"album",
|
||
"status",
|
||
"progress"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "spotify/spotify.js",
|
||
"sourceFile": "spotify/spotify.js"
|
||
},
|
||
{
|
||
"site": "spotify",
|
||
"name": "volume",
|
||
"description": "Set playback volume (0-100)",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "level",
|
||
"type": "int",
|
||
"default": 50,
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Volume 0–100"
|
||
}
|
||
],
|
||
"columns": [
|
||
"volume"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "spotify/spotify.js",
|
||
"sourceFile": "spotify/spotify.js"
|
||
},
|
||
{
|
||
"site": "stackoverflow",
|
||
"name": "bounties",
|
||
"description": "Active bounties on Stack Overflow",
|
||
"domain": "stackoverflow.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Max number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"bounty",
|
||
"title",
|
||
"score",
|
||
"answers",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "stackoverflow/bounties.js",
|
||
"sourceFile": "stackoverflow/bounties.js"
|
||
},
|
||
{
|
||
"site": "stackoverflow",
|
||
"name": "hot",
|
||
"description": "Hot Stack Overflow questions",
|
||
"domain": "stackoverflow.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Max number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"score",
|
||
"answers",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "stackoverflow/hot.js",
|
||
"sourceFile": "stackoverflow/hot.js"
|
||
},
|
||
{
|
||
"site": "stackoverflow",
|
||
"name": "search",
|
||
"description": "Search Stack Overflow questions",
|
||
"domain": "stackoverflow.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search query"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Max number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"score",
|
||
"answers",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "stackoverflow/search.js",
|
||
"sourceFile": "stackoverflow/search.js"
|
||
},
|
||
{
|
||
"site": "stackoverflow",
|
||
"name": "unanswered",
|
||
"description": "Top voted unanswered questions on Stack Overflow",
|
||
"domain": "stackoverflow.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Max number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"score",
|
||
"answers",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "stackoverflow/unanswered.js",
|
||
"sourceFile": "stackoverflow/unanswered.js"
|
||
},
|
||
{
|
||
"site": "steam",
|
||
"name": "top-sellers",
|
||
"description": "Steam top selling games",
|
||
"domain": "store.steampowered.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of games"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"name",
|
||
"price",
|
||
"discount",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "steam/top-sellers.js",
|
||
"sourceFile": "steam/top-sellers.js"
|
||
},
|
||
{
|
||
"site": "substack",
|
||
"name": "feed",
|
||
"description": "Substack 热门文章 Feed",
|
||
"domain": "substack.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "category",
|
||
"type": "str",
|
||
"default": "all",
|
||
"required": false,
|
||
"help": "文章分类: all, tech, business, culture, politics, science, health"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "返回的文章数量"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"date",
|
||
"readTime",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "substack/feed.js",
|
||
"sourceFile": "substack/feed.js"
|
||
},
|
||
{
|
||
"site": "substack",
|
||
"name": "publication",
|
||
"description": "获取特定 Substack Newsletter 的最新文章",
|
||
"domain": "substack.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "url",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Newsletter URL(如 https://example.substack.com)"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "返回的文章数量"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"date",
|
||
"description",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "substack/publication.js",
|
||
"sourceFile": "substack/publication.js"
|
||
},
|
||
{
|
||
"site": "substack",
|
||
"name": "search",
|
||
"description": "搜索 Substack 文章和 Newsletter",
|
||
"domain": "substack.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "keyword",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "搜索关键词"
|
||
},
|
||
{
|
||
"name": "type",
|
||
"type": "str",
|
||
"default": "posts",
|
||
"required": false,
|
||
"help": "搜索类型(posts=文章, publications=Newsletter)",
|
||
"choices": [
|
||
"posts",
|
||
"publications"
|
||
]
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "返回结果数量"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"date",
|
||
"description",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "substack/search.js",
|
||
"sourceFile": "substack/search.js"
|
||
},
|
||
{
|
||
"site": "taobao",
|
||
"name": "add-cart",
|
||
"description": "淘宝加入购物车",
|
||
"domain": "item.taobao.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "商品 ID"
|
||
},
|
||
{
|
||
"name": "spec",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "规格关键词(如 \"180度\" \"红色 XL\"),多个规格用空格分隔,模糊匹配"
|
||
},
|
||
{
|
||
"name": "dry-run",
|
||
"type": "bool",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "仅预览,不实际加入购物车"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"title",
|
||
"price",
|
||
"selected_spec",
|
||
"item_id"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "taobao/add-cart.js",
|
||
"sourceFile": "taobao/add-cart.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "taobao",
|
||
"name": "cart",
|
||
"description": "查看淘宝购物车",
|
||
"domain": "cart.taobao.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "返回数量 (max 50)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"index",
|
||
"title",
|
||
"price",
|
||
"spec",
|
||
"shop"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "taobao/cart.js",
|
||
"sourceFile": "taobao/cart.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "taobao",
|
||
"name": "detail",
|
||
"description": "淘宝商品详情",
|
||
"domain": "item.taobao.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "商品 ID"
|
||
}
|
||
],
|
||
"columns": [
|
||
"field",
|
||
"value"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "taobao/detail.js",
|
||
"sourceFile": "taobao/detail.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "taobao",
|
||
"name": "reviews",
|
||
"description": "淘宝商品评价",
|
||
"domain": "item.taobao.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "商品 ID"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "返回评价数量 (max 20)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"user",
|
||
"content",
|
||
"date",
|
||
"spec"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "taobao/reviews.js",
|
||
"sourceFile": "taobao/reviews.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "taobao",
|
||
"name": "search",
|
||
"description": "淘宝商品搜索",
|
||
"domain": "s.taobao.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "搜索关键词"
|
||
},
|
||
{
|
||
"name": "sort",
|
||
"type": "str",
|
||
"default": "default",
|
||
"required": false,
|
||
"help": "排序 (default/sale销量/price价格)",
|
||
"choices": [
|
||
"default",
|
||
"sale",
|
||
"price"
|
||
]
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "返回结果数量 (max 40)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"price",
|
||
"sales",
|
||
"shop",
|
||
"location",
|
||
"item_id",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "taobao/search.js",
|
||
"sourceFile": "taobao/search.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "tieba",
|
||
"name": "hot",
|
||
"description": "Tieba hot topics",
|
||
"domain": "tieba.baidu.com",
|
||
"strategy": "public",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of items to return"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"discussions",
|
||
"description"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "tieba/hot.js",
|
||
"sourceFile": "tieba/hot.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "tieba",
|
||
"name": "posts",
|
||
"description": "Browse posts in a tieba forum",
|
||
"domain": "tieba.baidu.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "forum",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Forum name in Chinese"
|
||
},
|
||
{
|
||
"name": "page",
|
||
"type": "int",
|
||
"default": 1,
|
||
"required": false,
|
||
"help": "Page number"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of items to return"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"replies"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "tieba/posts.js",
|
||
"sourceFile": "tieba/posts.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "tieba",
|
||
"name": "read",
|
||
"description": "Read a tieba thread",
|
||
"domain": "tieba.baidu.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Thread ID"
|
||
},
|
||
{
|
||
"name": "page",
|
||
"type": "int",
|
||
"default": 1,
|
||
"required": false,
|
||
"help": "Page number"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 30,
|
||
"required": false,
|
||
"help": "Number of replies to return"
|
||
}
|
||
],
|
||
"columns": [
|
||
"floor",
|
||
"author",
|
||
"content",
|
||
"time"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "tieba/read.js",
|
||
"sourceFile": "tieba/read.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "tieba",
|
||
"name": "search",
|
||
"description": "Search posts across tieba",
|
||
"domain": "tieba.baidu.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "keyword",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search keyword"
|
||
},
|
||
{
|
||
"name": "page",
|
||
"type": "int",
|
||
"default": 1,
|
||
"required": false,
|
||
"help": "Page number (currently only 1 is supported)",
|
||
"choices": [
|
||
"1"
|
||
]
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of items to return"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"forum",
|
||
"author",
|
||
"time"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "tieba/search.js",
|
||
"sourceFile": "tieba/search.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "tiktok",
|
||
"name": "comment",
|
||
"description": "Comment on a TikTok video",
|
||
"domain": "www.tiktok.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "url",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "TikTok video URL"
|
||
},
|
||
{
|
||
"name": "text",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Comment text"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"url",
|
||
"text"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "tiktok/comment.js",
|
||
"sourceFile": "tiktok/comment.js"
|
||
},
|
||
{
|
||
"site": "tiktok",
|
||
"name": "explore",
|
||
"description": "Get trending TikTok videos from explore page",
|
||
"domain": "www.tiktok.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of videos"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"author",
|
||
"views",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "tiktok/explore.js",
|
||
"sourceFile": "tiktok/explore.js"
|
||
},
|
||
{
|
||
"site": "tiktok",
|
||
"name": "follow",
|
||
"description": "Follow a TikTok user",
|
||
"domain": "www.tiktok.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "TikTok username (without @)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"username"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "tiktok/follow.js",
|
||
"sourceFile": "tiktok/follow.js"
|
||
},
|
||
{
|
||
"site": "tiktok",
|
||
"name": "following",
|
||
"description": "List accounts you follow on TikTok",
|
||
"domain": "www.tiktok.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of accounts"
|
||
}
|
||
],
|
||
"columns": [
|
||
"index",
|
||
"username",
|
||
"name"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "tiktok/following.js",
|
||
"sourceFile": "tiktok/following.js"
|
||
},
|
||
{
|
||
"site": "tiktok",
|
||
"name": "friends",
|
||
"description": "Get TikTok friend suggestions",
|
||
"domain": "www.tiktok.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of suggestions"
|
||
}
|
||
],
|
||
"columns": [
|
||
"index",
|
||
"username",
|
||
"name"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "tiktok/friends.js",
|
||
"sourceFile": "tiktok/friends.js"
|
||
},
|
||
{
|
||
"site": "tiktok",
|
||
"name": "like",
|
||
"description": "Like a TikTok video",
|
||
"domain": "www.tiktok.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "url",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "TikTok video URL"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"likes",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "tiktok/like.js",
|
||
"sourceFile": "tiktok/like.js"
|
||
},
|
||
{
|
||
"site": "tiktok",
|
||
"name": "live",
|
||
"description": "Browse live streams on TikTok",
|
||
"domain": "www.tiktok.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of streams"
|
||
}
|
||
],
|
||
"columns": [
|
||
"index",
|
||
"streamer",
|
||
"viewers",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "tiktok/live.js",
|
||
"sourceFile": "tiktok/live.js"
|
||
},
|
||
{
|
||
"site": "tiktok",
|
||
"name": "notifications",
|
||
"description": "Get TikTok notifications (likes, comments, mentions, followers)",
|
||
"domain": "www.tiktok.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 15,
|
||
"required": false,
|
||
"help": "Number of notifications"
|
||
},
|
||
{
|
||
"name": "type",
|
||
"type": "str",
|
||
"default": "all",
|
||
"required": false,
|
||
"help": "Notification type",
|
||
"choices": [
|
||
"all",
|
||
"likes",
|
||
"comments",
|
||
"mentions",
|
||
"followers"
|
||
]
|
||
}
|
||
],
|
||
"columns": [
|
||
"index",
|
||
"text"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "tiktok/notifications.js",
|
||
"sourceFile": "tiktok/notifications.js"
|
||
},
|
||
{
|
||
"site": "tiktok",
|
||
"name": "profile",
|
||
"description": "Get TikTok user profile info",
|
||
"domain": "www.tiktok.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "TikTok username (without @)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"username",
|
||
"name",
|
||
"followers",
|
||
"following",
|
||
"likes",
|
||
"videos",
|
||
"verified",
|
||
"bio"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "tiktok/profile.js",
|
||
"sourceFile": "tiktok/profile.js"
|
||
},
|
||
{
|
||
"site": "tiktok",
|
||
"name": "save",
|
||
"description": "Add a TikTok video to Favorites",
|
||
"domain": "www.tiktok.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "url",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "TikTok video URL"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "tiktok/save.js",
|
||
"sourceFile": "tiktok/save.js"
|
||
},
|
||
{
|
||
"site": "tiktok",
|
||
"name": "search",
|
||
"description": "Search TikTok videos",
|
||
"domain": "www.tiktok.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search query"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"desc",
|
||
"author",
|
||
"url",
|
||
"plays",
|
||
"likes",
|
||
"comments",
|
||
"shares"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "tiktok/search.js",
|
||
"sourceFile": "tiktok/search.js"
|
||
},
|
||
{
|
||
"site": "tiktok",
|
||
"name": "unfollow",
|
||
"description": "Unfollow a TikTok user",
|
||
"domain": "www.tiktok.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "TikTok username (without @)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"username"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "tiktok/unfollow.js",
|
||
"sourceFile": "tiktok/unfollow.js"
|
||
},
|
||
{
|
||
"site": "tiktok",
|
||
"name": "unlike",
|
||
"description": "Unlike a TikTok video",
|
||
"domain": "www.tiktok.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "url",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "TikTok video URL"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"likes",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "tiktok/unlike.js",
|
||
"sourceFile": "tiktok/unlike.js"
|
||
},
|
||
{
|
||
"site": "tiktok",
|
||
"name": "unsave",
|
||
"description": "Remove a TikTok video from Favorites",
|
||
"domain": "www.tiktok.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "url",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "TikTok video URL"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "tiktok/unsave.js",
|
||
"sourceFile": "tiktok/unsave.js"
|
||
},
|
||
{
|
||
"site": "tiktok",
|
||
"name": "user",
|
||
"description": "Get recent videos from a TikTok user",
|
||
"domain": "www.tiktok.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "TikTok username (without @)"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of videos"
|
||
}
|
||
],
|
||
"columns": [
|
||
"index",
|
||
"views",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "tiktok/user.js",
|
||
"sourceFile": "tiktok/user.js"
|
||
},
|
||
{
|
||
"site": "twitter",
|
||
"name": "accept",
|
||
"description": "Auto-accept DM requests containing specific keywords",
|
||
"domain": "x.com",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Keywords to match (comma-separated for OR, e.g. \"群,微信\")"
|
||
},
|
||
{
|
||
"name": "max",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Maximum number of requests to accept (default: 20)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"index",
|
||
"status",
|
||
"user",
|
||
"message"
|
||
],
|
||
"timeout": 600,
|
||
"type": "js",
|
||
"modulePath": "twitter/accept.js",
|
||
"sourceFile": "twitter/accept.js"
|
||
},
|
||
{
|
||
"site": "twitter",
|
||
"name": "article",
|
||
"description": "Fetch a Twitter Article (long-form content) and export as Markdown",
|
||
"domain": "x.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "tweet-id",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Tweet ID or URL containing the article"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"author",
|
||
"content",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "twitter/article.js",
|
||
"sourceFile": "twitter/article.js"
|
||
},
|
||
{
|
||
"site": "twitter",
|
||
"name": "block",
|
||
"description": "Block a Twitter user",
|
||
"domain": "x.com",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Twitter screen name (without @)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"message"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "twitter/block.js",
|
||
"sourceFile": "twitter/block.js"
|
||
},
|
||
{
|
||
"site": "twitter",
|
||
"name": "bookmark",
|
||
"description": "Bookmark a tweet",
|
||
"domain": "x.com",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "url",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Tweet URL to bookmark"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"message"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "twitter/bookmark.js",
|
||
"sourceFile": "twitter/bookmark.js"
|
||
},
|
||
{
|
||
"site": "twitter",
|
||
"name": "bookmarks",
|
||
"description": "Fetch Twitter/X bookmarks",
|
||
"domain": "x.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": ""
|
||
}
|
||
],
|
||
"columns": [
|
||
"author",
|
||
"text",
|
||
"likes",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "twitter/bookmarks.js",
|
||
"sourceFile": "twitter/bookmarks.js"
|
||
},
|
||
{
|
||
"site": "twitter",
|
||
"name": "delete",
|
||
"description": "Delete a specific tweet by URL",
|
||
"domain": "x.com",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "url",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "The URL of the tweet to delete"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"message"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "twitter/delete.js",
|
||
"sourceFile": "twitter/delete.js"
|
||
},
|
||
{
|
||
"site": "twitter",
|
||
"name": "download",
|
||
"description": "下载 Twitter/X 媒体(图片和视频)",
|
||
"domain": "x.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "str",
|
||
"required": false,
|
||
"positional": true,
|
||
"help": "Twitter username (downloads from media tab)"
|
||
},
|
||
{
|
||
"name": "tweet-url",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Single tweet URL to download"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of tweets to scan"
|
||
},
|
||
{
|
||
"name": "output",
|
||
"type": "str",
|
||
"default": "./twitter-downloads",
|
||
"required": false,
|
||
"help": "Output directory"
|
||
}
|
||
],
|
||
"columns": [
|
||
"index",
|
||
"type",
|
||
"status",
|
||
"size"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "twitter/download.js",
|
||
"sourceFile": "twitter/download.js"
|
||
},
|
||
{
|
||
"site": "twitter",
|
||
"name": "follow",
|
||
"description": "Follow a Twitter user",
|
||
"domain": "x.com",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Twitter screen name (without @)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"message"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "twitter/follow.js",
|
||
"sourceFile": "twitter/follow.js"
|
||
},
|
||
{
|
||
"site": "twitter",
|
||
"name": "followers",
|
||
"description": "Get accounts following a Twitter/X user",
|
||
"domain": "x.com",
|
||
"strategy": "intercept",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "user",
|
||
"type": "string",
|
||
"required": false,
|
||
"positional": true,
|
||
"help": ""
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 50,
|
||
"required": false,
|
||
"help": ""
|
||
}
|
||
],
|
||
"columns": [
|
||
"screen_name",
|
||
"name",
|
||
"bio",
|
||
"followers"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "twitter/followers.js",
|
||
"sourceFile": "twitter/followers.js"
|
||
},
|
||
{
|
||
"site": "twitter",
|
||
"name": "following",
|
||
"description": "Get accounts a Twitter/X user is following",
|
||
"domain": "x.com",
|
||
"strategy": "intercept",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "user",
|
||
"type": "string",
|
||
"required": false,
|
||
"positional": true,
|
||
"help": ""
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 50,
|
||
"required": false,
|
||
"help": ""
|
||
}
|
||
],
|
||
"columns": [
|
||
"screen_name",
|
||
"name",
|
||
"bio",
|
||
"followers"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "twitter/following.js",
|
||
"sourceFile": "twitter/following.js"
|
||
},
|
||
{
|
||
"site": "twitter",
|
||
"name": "hide-reply",
|
||
"description": "Hide a reply on your tweet (useful for hiding bot/spam replies)",
|
||
"domain": "x.com",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "url",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "The URL of the reply tweet to hide"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"message"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "twitter/hide-reply.js",
|
||
"sourceFile": "twitter/hide-reply.js"
|
||
},
|
||
{
|
||
"site": "twitter",
|
||
"name": "like",
|
||
"description": "Like a specific tweet",
|
||
"domain": "x.com",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "url",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "The URL of the tweet to like"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"message"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "twitter/like.js",
|
||
"sourceFile": "twitter/like.js"
|
||
},
|
||
{
|
||
"site": "twitter",
|
||
"name": "likes",
|
||
"description": "Fetch liked tweets of a Twitter user",
|
||
"domain": "x.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "string",
|
||
"required": false,
|
||
"positional": true,
|
||
"help": "Twitter screen name (without @). Defaults to logged-in user."
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": ""
|
||
}
|
||
],
|
||
"columns": [
|
||
"author",
|
||
"name",
|
||
"text",
|
||
"likes",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "twitter/likes.js",
|
||
"sourceFile": "twitter/likes.js"
|
||
},
|
||
{
|
||
"site": "twitter",
|
||
"name": "notifications",
|
||
"description": "Get Twitter/X notifications",
|
||
"domain": "x.com",
|
||
"strategy": "intercept",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": ""
|
||
}
|
||
],
|
||
"columns": [
|
||
"id",
|
||
"action",
|
||
"author",
|
||
"text",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "twitter/notifications.js",
|
||
"sourceFile": "twitter/notifications.js"
|
||
},
|
||
{
|
||
"site": "twitter",
|
||
"name": "post",
|
||
"description": "Post a new tweet/thread",
|
||
"domain": "x.com",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "text",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "The text content of the tweet"
|
||
},
|
||
{
|
||
"name": "images",
|
||
"type": "string",
|
||
"required": false,
|
||
"help": "Image paths, comma-separated, max 4 (jpg/png/gif/webp)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"message",
|
||
"text"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "twitter/post.js",
|
||
"sourceFile": "twitter/post.js"
|
||
},
|
||
{
|
||
"site": "twitter",
|
||
"name": "profile",
|
||
"description": "Fetch a Twitter user profile (bio, stats, etc.)",
|
||
"domain": "x.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "string",
|
||
"required": false,
|
||
"positional": true,
|
||
"help": "Twitter screen name (without @). Defaults to logged-in user."
|
||
}
|
||
],
|
||
"columns": [
|
||
"screen_name",
|
||
"name",
|
||
"bio",
|
||
"location",
|
||
"url",
|
||
"followers",
|
||
"following",
|
||
"tweets",
|
||
"likes",
|
||
"verified",
|
||
"created_at"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "twitter/profile.js",
|
||
"sourceFile": "twitter/profile.js"
|
||
},
|
||
{
|
||
"site": "twitter",
|
||
"name": "reply",
|
||
"description": "Reply to a specific tweet, optionally with a local or remote image",
|
||
"domain": "x.com",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "url",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "The URL of the tweet to reply to"
|
||
},
|
||
{
|
||
"name": "text",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "The text content of your reply"
|
||
},
|
||
{
|
||
"name": "image",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Optional local image path to attach to the reply"
|
||
},
|
||
{
|
||
"name": "image-url",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Optional remote image URL to download and attach to the reply"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"message",
|
||
"text"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "twitter/reply.js",
|
||
"sourceFile": "twitter/reply.js"
|
||
},
|
||
{
|
||
"site": "twitter",
|
||
"name": "reply-dm",
|
||
"description": "Send a message to recent DM conversations",
|
||
"domain": "x.com",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "text",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Message text to send (e.g. \"我的微信 wxkabi\")"
|
||
},
|
||
{
|
||
"name": "max",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Maximum number of conversations to reply to (default: 20)"
|
||
},
|
||
{
|
||
"name": "skip-replied",
|
||
"type": "boolean",
|
||
"default": true,
|
||
"required": false,
|
||
"help": "Skip conversations where you already sent the same text (default: true)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"index",
|
||
"status",
|
||
"user",
|
||
"message"
|
||
],
|
||
"timeout": 600,
|
||
"type": "js",
|
||
"modulePath": "twitter/reply-dm.js",
|
||
"sourceFile": "twitter/reply-dm.js"
|
||
},
|
||
{
|
||
"site": "twitter",
|
||
"name": "search",
|
||
"description": "Search Twitter/X for tweets",
|
||
"domain": "x.com",
|
||
"strategy": "intercept",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": ""
|
||
},
|
||
{
|
||
"name": "filter",
|
||
"type": "string",
|
||
"default": "top",
|
||
"required": false,
|
||
"help": "",
|
||
"choices": [
|
||
"top",
|
||
"live"
|
||
]
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 15,
|
||
"required": false,
|
||
"help": ""
|
||
}
|
||
],
|
||
"columns": [
|
||
"id",
|
||
"author",
|
||
"text",
|
||
"created_at",
|
||
"likes",
|
||
"views",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "twitter/search.js",
|
||
"sourceFile": "twitter/search.js"
|
||
},
|
||
{
|
||
"site": "twitter",
|
||
"name": "thread",
|
||
"description": "Get a tweet thread (original + all replies)",
|
||
"domain": "x.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "tweet-id",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": ""
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 50,
|
||
"required": false,
|
||
"help": ""
|
||
}
|
||
],
|
||
"columns": [
|
||
"id",
|
||
"author",
|
||
"text",
|
||
"likes",
|
||
"retweets",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "twitter/thread.js",
|
||
"sourceFile": "twitter/thread.js"
|
||
},
|
||
{
|
||
"site": "twitter",
|
||
"name": "timeline",
|
||
"description": "Fetch Twitter timeline (for-you or following)",
|
||
"domain": "x.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "type",
|
||
"type": "str",
|
||
"default": "for-you",
|
||
"required": false,
|
||
"help": "Timeline type: for-you (algorithmic) or following (chronological)",
|
||
"choices": [
|
||
"for-you",
|
||
"following"
|
||
]
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": ""
|
||
}
|
||
],
|
||
"columns": [
|
||
"id",
|
||
"author",
|
||
"text",
|
||
"likes",
|
||
"retweets",
|
||
"replies",
|
||
"views",
|
||
"created_at",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "twitter/timeline.js",
|
||
"sourceFile": "twitter/timeline.js"
|
||
},
|
||
{
|
||
"site": "twitter",
|
||
"name": "trending",
|
||
"description": "Twitter/X trending topics",
|
||
"domain": "x.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of trends to show"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"topic",
|
||
"tweets",
|
||
"category"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "twitter/trending.js",
|
||
"sourceFile": "twitter/trending.js"
|
||
},
|
||
{
|
||
"site": "twitter",
|
||
"name": "unblock",
|
||
"description": "Unblock a Twitter user",
|
||
"domain": "x.com",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Twitter screen name (without @)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"message"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "twitter/unblock.js",
|
||
"sourceFile": "twitter/unblock.js"
|
||
},
|
||
{
|
||
"site": "twitter",
|
||
"name": "unbookmark",
|
||
"description": "Remove a tweet from bookmarks",
|
||
"domain": "x.com",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "url",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Tweet URL to unbookmark"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"message"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "twitter/unbookmark.js",
|
||
"sourceFile": "twitter/unbookmark.js"
|
||
},
|
||
{
|
||
"site": "twitter",
|
||
"name": "unfollow",
|
||
"description": "Unfollow a Twitter user",
|
||
"domain": "x.com",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Twitter screen name (without @)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"message"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "twitter/unfollow.js",
|
||
"sourceFile": "twitter/unfollow.js"
|
||
},
|
||
{
|
||
"site": "v2ex",
|
||
"name": "daily",
|
||
"description": "V2EX 每日签到并领取铜币",
|
||
"domain": "www.v2ex.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"status",
|
||
"message"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "v2ex/daily.js",
|
||
"sourceFile": "v2ex/daily.js"
|
||
},
|
||
{
|
||
"site": "v2ex",
|
||
"name": "hot",
|
||
"description": "V2EX 热门话题",
|
||
"domain": "www.v2ex.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of topics"
|
||
}
|
||
],
|
||
"columns": [
|
||
"id",
|
||
"rank",
|
||
"title",
|
||
"node",
|
||
"replies",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "v2ex/hot.js",
|
||
"sourceFile": "v2ex/hot.js"
|
||
},
|
||
{
|
||
"site": "v2ex",
|
||
"name": "latest",
|
||
"description": "V2EX 最新话题",
|
||
"domain": "www.v2ex.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of topics"
|
||
}
|
||
],
|
||
"columns": [
|
||
"id",
|
||
"rank",
|
||
"title",
|
||
"node",
|
||
"replies",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "v2ex/latest.js",
|
||
"sourceFile": "v2ex/latest.js"
|
||
},
|
||
{
|
||
"site": "v2ex",
|
||
"name": "me",
|
||
"description": "V2EX 获取个人资料 (余额/未读提醒)",
|
||
"domain": "www.v2ex.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"username",
|
||
"balance",
|
||
"unread_notifications",
|
||
"daily_reward_ready"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "v2ex/me.js",
|
||
"sourceFile": "v2ex/me.js"
|
||
},
|
||
{
|
||
"site": "v2ex",
|
||
"name": "member",
|
||
"description": "V2EX 用户资料",
|
||
"domain": "www.v2ex.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Username"
|
||
}
|
||
],
|
||
"columns": [
|
||
"username",
|
||
"tagline",
|
||
"website",
|
||
"github",
|
||
"twitter",
|
||
"location"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "v2ex/member.js",
|
||
"sourceFile": "v2ex/member.js"
|
||
},
|
||
{
|
||
"site": "v2ex",
|
||
"name": "node",
|
||
"description": "V2EX 节点话题列表",
|
||
"domain": "www.v2ex.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "name",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Node name (e.g. python, javascript, apple)"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of topics (API returns max 20)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"replies",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "v2ex/node.js",
|
||
"sourceFile": "v2ex/node.js"
|
||
},
|
||
{
|
||
"site": "v2ex",
|
||
"name": "nodes",
|
||
"description": "V2EX 所有节点列表",
|
||
"domain": "www.v2ex.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 30,
|
||
"required": false,
|
||
"help": "Number of nodes"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"name",
|
||
"title",
|
||
"topics",
|
||
"stars"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "v2ex/nodes.js",
|
||
"sourceFile": "v2ex/nodes.js"
|
||
},
|
||
{
|
||
"site": "v2ex",
|
||
"name": "notifications",
|
||
"description": "V2EX 获取提醒 (回复/由于)",
|
||
"domain": "www.v2ex.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of notifications"
|
||
}
|
||
],
|
||
"columns": [
|
||
"type",
|
||
"content",
|
||
"time"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "v2ex/notifications.js",
|
||
"sourceFile": "v2ex/notifications.js"
|
||
},
|
||
{
|
||
"site": "v2ex",
|
||
"name": "replies",
|
||
"description": "V2EX 主题回复列表",
|
||
"domain": "www.v2ex.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Topic ID"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of replies"
|
||
}
|
||
],
|
||
"columns": [
|
||
"floor",
|
||
"author",
|
||
"content"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "v2ex/replies.js",
|
||
"sourceFile": "v2ex/replies.js"
|
||
},
|
||
{
|
||
"site": "v2ex",
|
||
"name": "topic",
|
||
"description": "V2EX 主题详情和回复",
|
||
"domain": "www.v2ex.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Topic ID"
|
||
}
|
||
],
|
||
"columns": [
|
||
"id",
|
||
"title",
|
||
"content",
|
||
"member",
|
||
"created",
|
||
"node",
|
||
"replies",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "v2ex/topic.js",
|
||
"sourceFile": "v2ex/topic.js"
|
||
},
|
||
{
|
||
"site": "v2ex",
|
||
"name": "user",
|
||
"description": "V2EX 用户发帖列表",
|
||
"domain": "www.v2ex.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "username",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Username"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of topics (API returns max 20)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"node",
|
||
"replies",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "v2ex/user.js",
|
||
"sourceFile": "v2ex/user.js"
|
||
},
|
||
{
|
||
"site": "web",
|
||
"name": "read",
|
||
"description": "Fetch any web page and export as Markdown",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "url",
|
||
"type": "str",
|
||
"required": true,
|
||
"help": "Any web page URL"
|
||
},
|
||
{
|
||
"name": "output",
|
||
"type": "str",
|
||
"default": "./web-articles",
|
||
"required": false,
|
||
"help": "Output directory"
|
||
},
|
||
{
|
||
"name": "download-images",
|
||
"type": "boolean",
|
||
"default": true,
|
||
"required": false,
|
||
"help": "Download images locally"
|
||
},
|
||
{
|
||
"name": "wait",
|
||
"type": "int",
|
||
"default": 3,
|
||
"required": false,
|
||
"help": "Seconds to wait after page load"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"author",
|
||
"publish_time",
|
||
"status",
|
||
"size"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "web/read.js",
|
||
"sourceFile": "web/read.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "weibo",
|
||
"name": "comments",
|
||
"description": "Get comments on a Weibo post",
|
||
"domain": "weibo.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Post ID (numeric idstr)"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of comments (max 50)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"author",
|
||
"text",
|
||
"likes",
|
||
"replies",
|
||
"time"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "weibo/comments.js",
|
||
"sourceFile": "weibo/comments.js"
|
||
},
|
||
{
|
||
"site": "weibo",
|
||
"name": "feed",
|
||
"description": "Weibo home timeline (posts from followed users)",
|
||
"domain": "weibo.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 15,
|
||
"required": false,
|
||
"help": "Number of posts (max 50)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"author",
|
||
"text",
|
||
"reposts",
|
||
"comments",
|
||
"likes",
|
||
"time",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "weibo/feed.js",
|
||
"sourceFile": "weibo/feed.js"
|
||
},
|
||
{
|
||
"site": "weibo",
|
||
"name": "hot",
|
||
"description": "微博热搜",
|
||
"domain": "weibo.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 30,
|
||
"required": false,
|
||
"help": "Number of items (max 50)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"word",
|
||
"hot_value",
|
||
"category",
|
||
"label",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "weibo/hot.js",
|
||
"sourceFile": "weibo/hot.js"
|
||
},
|
||
{
|
||
"site": "weibo",
|
||
"name": "me",
|
||
"description": "My Weibo profile info",
|
||
"domain": "weibo.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"screen_name",
|
||
"uid",
|
||
"followers",
|
||
"following",
|
||
"statuses",
|
||
"verified",
|
||
"location"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "weibo/me.js",
|
||
"sourceFile": "weibo/me.js"
|
||
},
|
||
{
|
||
"site": "weibo",
|
||
"name": "post",
|
||
"description": "Get a single Weibo post",
|
||
"domain": "weibo.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Post ID (numeric idstr or mblogid from URL)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"field",
|
||
"value"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "weibo/post.js",
|
||
"sourceFile": "weibo/post.js"
|
||
},
|
||
{
|
||
"site": "weibo",
|
||
"name": "search",
|
||
"description": "搜索微博",
|
||
"domain": "weibo.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "keyword",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search keyword"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of results (max 50)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"time",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "weibo/search.js",
|
||
"sourceFile": "weibo/search.js"
|
||
},
|
||
{
|
||
"site": "weibo",
|
||
"name": "user",
|
||
"description": "Get Weibo user profile",
|
||
"domain": "weibo.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "User ID (numeric uid) or screen name"
|
||
}
|
||
],
|
||
"columns": [
|
||
"screen_name",
|
||
"uid",
|
||
"followers",
|
||
"following",
|
||
"statuses",
|
||
"verified",
|
||
"description",
|
||
"location",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "weibo/user.js",
|
||
"sourceFile": "weibo/user.js"
|
||
},
|
||
{
|
||
"site": "weixin",
|
||
"name": "download",
|
||
"description": "下载微信公众号文章为 Markdown 格式",
|
||
"domain": "mp.weixin.qq.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "url",
|
||
"type": "str",
|
||
"required": true,
|
||
"help": "WeChat article URL (mp.weixin.qq.com/s/xxx)"
|
||
},
|
||
{
|
||
"name": "output",
|
||
"type": "str",
|
||
"default": "./weixin-articles",
|
||
"required": false,
|
||
"help": "Output directory"
|
||
},
|
||
{
|
||
"name": "download-images",
|
||
"type": "boolean",
|
||
"default": true,
|
||
"required": false,
|
||
"help": "Download images locally"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"author",
|
||
"publish_time",
|
||
"status",
|
||
"size"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "weixin/download.js",
|
||
"sourceFile": "weixin/download.js"
|
||
},
|
||
{
|
||
"site": "weread",
|
||
"name": "book",
|
||
"description": "View book details on WeRead",
|
||
"domain": "weread.qq.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "book-id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Book ID from search or shelf results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"author",
|
||
"publisher",
|
||
"intro",
|
||
"category",
|
||
"rating"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "weread/book.js",
|
||
"sourceFile": "weread/book.js"
|
||
},
|
||
{
|
||
"site": "weread",
|
||
"name": "highlights",
|
||
"description": "List your highlights (underlines) in a book",
|
||
"domain": "weread.qq.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "book-id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Book ID (from shelf or search results)"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Max results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"chapter",
|
||
"text",
|
||
"createTime"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "weread/highlights.js",
|
||
"sourceFile": "weread/highlights.js"
|
||
},
|
||
{
|
||
"site": "weread",
|
||
"name": "notebooks",
|
||
"description": "List books that have highlights or notes",
|
||
"domain": "weread.qq.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"title",
|
||
"author",
|
||
"noteCount",
|
||
"bookId"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "weread/notebooks.js",
|
||
"sourceFile": "weread/notebooks.js"
|
||
},
|
||
{
|
||
"site": "weread",
|
||
"name": "notes",
|
||
"description": "List your notes (thoughts) on a book",
|
||
"domain": "weread.qq.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "book-id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Book ID (from shelf or search results)"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Max results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"chapter",
|
||
"text",
|
||
"review",
|
||
"createTime"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "weread/notes.js",
|
||
"sourceFile": "weread/notes.js"
|
||
},
|
||
{
|
||
"site": "weread",
|
||
"name": "ranking",
|
||
"description": "WeRead book rankings by category",
|
||
"domain": "weread.qq.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "category",
|
||
"type": "str",
|
||
"default": "all",
|
||
"required": false,
|
||
"positional": true,
|
||
"help": "Category: all (default), rising, or numeric category ID"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Max results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"category",
|
||
"readingCount",
|
||
"bookId"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "weread/ranking.js",
|
||
"sourceFile": "weread/ranking.js"
|
||
},
|
||
{
|
||
"site": "weread",
|
||
"name": "search",
|
||
"description": "Search books on WeRead",
|
||
"domain": "weread.qq.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search keyword"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Max results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"bookId",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "weread/search.js",
|
||
"sourceFile": "weread/search.js"
|
||
},
|
||
{
|
||
"site": "weread",
|
||
"name": "shelf",
|
||
"description": "List books on your WeRead bookshelf",
|
||
"domain": "weread.qq.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Max results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"author",
|
||
"progress",
|
||
"bookId"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "weread/shelf.js",
|
||
"sourceFile": "weread/shelf.js"
|
||
},
|
||
{
|
||
"site": "wikipedia",
|
||
"name": "random",
|
||
"description": "Get a random Wikipedia article",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "lang",
|
||
"type": "str",
|
||
"default": "en",
|
||
"required": false,
|
||
"help": "Language code (e.g. en, zh, ja)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"description",
|
||
"extract",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "wikipedia/random.js",
|
||
"sourceFile": "wikipedia/random.js"
|
||
},
|
||
{
|
||
"site": "wikipedia",
|
||
"name": "search",
|
||
"description": "Search Wikipedia articles",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search keyword"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Max results"
|
||
},
|
||
{
|
||
"name": "lang",
|
||
"type": "str",
|
||
"default": "en",
|
||
"required": false,
|
||
"help": "Language code (e.g. en, zh, ja)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"snippet",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "wikipedia/search.js",
|
||
"sourceFile": "wikipedia/search.js"
|
||
},
|
||
{
|
||
"site": "wikipedia",
|
||
"name": "summary",
|
||
"description": "Get Wikipedia article summary",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "title",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Article title (e.g. \"Transformer (machine learning model)\")"
|
||
},
|
||
{
|
||
"name": "lang",
|
||
"type": "str",
|
||
"default": "en",
|
||
"required": false,
|
||
"help": "Language code (e.g. en, zh, ja)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"description",
|
||
"extract",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "wikipedia/summary.js",
|
||
"sourceFile": "wikipedia/summary.js"
|
||
},
|
||
{
|
||
"site": "wikipedia",
|
||
"name": "trending",
|
||
"description": "Most-read Wikipedia articles (yesterday)",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Max results"
|
||
},
|
||
{
|
||
"name": "lang",
|
||
"type": "str",
|
||
"default": "en",
|
||
"required": false,
|
||
"help": "Language code (e.g. en, zh, ja)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"description",
|
||
"views"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "wikipedia/trending.js",
|
||
"sourceFile": "wikipedia/trending.js"
|
||
},
|
||
{
|
||
"site": "xianyu",
|
||
"name": "chat",
|
||
"description": "打开闲鱼聊一聊会话,并可选发送消息",
|
||
"domain": "www.goofish.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "item_id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "闲鱼商品 item_id"
|
||
},
|
||
{
|
||
"name": "user_id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "聊一聊对方的 user_id / peerUserId"
|
||
},
|
||
{
|
||
"name": "text",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Message to send after opening the chat"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"peer_name",
|
||
"item_title",
|
||
"price",
|
||
"location",
|
||
"message"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xianyu/chat.js",
|
||
"sourceFile": "xianyu/chat.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "xianyu",
|
||
"name": "item",
|
||
"description": "查看闲鱼商品详情",
|
||
"domain": "www.goofish.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "item_id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "闲鱼商品 item_id"
|
||
}
|
||
],
|
||
"columns": [
|
||
"item_id",
|
||
"title",
|
||
"price",
|
||
"condition",
|
||
"brand",
|
||
"location",
|
||
"seller_name",
|
||
"want_count"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xianyu/item.js",
|
||
"sourceFile": "xianyu/item.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "xianyu",
|
||
"name": "search",
|
||
"description": "搜索闲鱼商品",
|
||
"domain": "www.goofish.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search keyword"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of results to return"
|
||
}
|
||
],
|
||
"columns": [
|
||
"item_id",
|
||
"rank",
|
||
"title",
|
||
"price",
|
||
"condition",
|
||
"brand",
|
||
"location",
|
||
"badge",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xianyu/search.js",
|
||
"sourceFile": "xianyu/search.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "xiaoe",
|
||
"name": "catalog",
|
||
"description": "小鹅通课程目录(支持普通课程、专栏、大专栏)",
|
||
"domain": "h5.xet.citv.cn",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "url",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "课程页面 URL"
|
||
}
|
||
],
|
||
"columns": [
|
||
"ch",
|
||
"chapter",
|
||
"no",
|
||
"title",
|
||
"type",
|
||
"resource_id",
|
||
"status"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xiaoe/catalog.js",
|
||
"sourceFile": "xiaoe/catalog.js"
|
||
},
|
||
{
|
||
"site": "xiaoe",
|
||
"name": "content",
|
||
"description": "提取小鹅通图文页面内容为文本",
|
||
"domain": "h5.xet.citv.cn",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "url",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "页面 URL"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"content_length",
|
||
"image_count"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xiaoe/content.js",
|
||
"sourceFile": "xiaoe/content.js"
|
||
},
|
||
{
|
||
"site": "xiaoe",
|
||
"name": "courses",
|
||
"description": "列出已购小鹅通课程(含 URL 和店铺名)",
|
||
"domain": "study.xiaoe-tech.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"title",
|
||
"shop",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xiaoe/courses.js",
|
||
"sourceFile": "xiaoe/courses.js"
|
||
},
|
||
{
|
||
"site": "xiaoe",
|
||
"name": "detail",
|
||
"description": "小鹅通课程详情(名称、价格、学员数、店铺)",
|
||
"domain": "h5.xet.citv.cn",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "url",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "课程页面 URL"
|
||
}
|
||
],
|
||
"columns": [
|
||
"name",
|
||
"price",
|
||
"original_price",
|
||
"user_count",
|
||
"shop_name"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xiaoe/detail.js",
|
||
"sourceFile": "xiaoe/detail.js"
|
||
},
|
||
{
|
||
"site": "xiaoe",
|
||
"name": "play-url",
|
||
"description": "小鹅通视频/音频/直播回放 M3U8 播放地址",
|
||
"domain": "h5.xet.citv.cn",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "url",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "小节页面 URL"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"resource_id",
|
||
"m3u8_url",
|
||
"duration_sec",
|
||
"method"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xiaoe/play-url.js",
|
||
"sourceFile": "xiaoe/play-url.js"
|
||
},
|
||
{
|
||
"site": "xiaohongshu",
|
||
"name": "comments",
|
||
"description": "获取小红书笔记评论(支持楼中楼子回复)",
|
||
"domain": "www.xiaohongshu.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "note-id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Note ID or full URL (preserves xsec_token for access)"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of top-level comments (max 50)"
|
||
},
|
||
{
|
||
"name": "with-replies",
|
||
"type": "boolean",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "Include nested replies (楼中楼)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"author",
|
||
"text",
|
||
"likes",
|
||
"time",
|
||
"is_reply",
|
||
"reply_to"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xiaohongshu/comments.js",
|
||
"sourceFile": "xiaohongshu/comments.js"
|
||
},
|
||
{
|
||
"site": "xiaohongshu",
|
||
"name": "creator-note-detail",
|
||
"description": "小红书单篇笔记详情页数据 (笔记信息 + 核心/互动数据 + 观看来源 + 观众画像 + 趋势数据)",
|
||
"domain": "creator.xiaohongshu.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "note-id",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Note ID (from creator-notes or note-detail page URL)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"section",
|
||
"metric",
|
||
"value",
|
||
"extra"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xiaohongshu/creator-note-detail.js",
|
||
"sourceFile": "xiaohongshu/creator-note-detail.js"
|
||
},
|
||
{
|
||
"site": "xiaohongshu",
|
||
"name": "creator-notes",
|
||
"description": "小红书创作者笔记列表 + 每篇数据 (标题/日期/观看/点赞/收藏/评论)",
|
||
"domain": "creator.xiaohongshu.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of notes to return"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"id",
|
||
"title",
|
||
"date",
|
||
"views",
|
||
"likes",
|
||
"collects",
|
||
"comments",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xiaohongshu/creator-notes-summary.js",
|
||
"sourceFile": "xiaohongshu/creator-notes-summary.js"
|
||
},
|
||
{
|
||
"site": "xiaohongshu",
|
||
"name": "creator-notes-summary",
|
||
"description": "小红书最近笔记批量摘要 (列表 + 单篇关键数据汇总)",
|
||
"domain": "creator.xiaohongshu.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 3,
|
||
"required": false,
|
||
"help": "Number of recent notes to summarize"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"id",
|
||
"title",
|
||
"views",
|
||
"likes",
|
||
"collects",
|
||
"comments",
|
||
"shares",
|
||
"avg_view_time",
|
||
"rise_fans",
|
||
"top_source",
|
||
"top_interest",
|
||
"url"
|
||
],
|
||
"timeout": 180,
|
||
"type": "js",
|
||
"modulePath": "xiaohongshu/creator-notes-summary.js",
|
||
"sourceFile": "xiaohongshu/creator-notes-summary.js"
|
||
},
|
||
{
|
||
"site": "xiaohongshu",
|
||
"name": "creator-profile",
|
||
"description": "小红书创作者账号信息 (粉丝/关注/获赞/成长等级)",
|
||
"domain": "creator.xiaohongshu.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"field",
|
||
"value"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xiaohongshu/creator-profile.js",
|
||
"sourceFile": "xiaohongshu/creator-profile.js"
|
||
},
|
||
{
|
||
"site": "xiaohongshu",
|
||
"name": "creator-stats",
|
||
"description": "小红书创作者数据总览 (观看/点赞/收藏/评论/分享/涨粉,含每日趋势)",
|
||
"domain": "creator.xiaohongshu.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "period",
|
||
"type": "string",
|
||
"default": "seven",
|
||
"required": false,
|
||
"help": "Stats period: seven or thirty",
|
||
"choices": [
|
||
"seven",
|
||
"thirty"
|
||
]
|
||
}
|
||
],
|
||
"columns": [
|
||
"metric",
|
||
"total",
|
||
"trend"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xiaohongshu/creator-stats.js",
|
||
"sourceFile": "xiaohongshu/creator-stats.js"
|
||
},
|
||
{
|
||
"site": "xiaohongshu",
|
||
"name": "download",
|
||
"description": "下载小红书笔记中的图片和视频",
|
||
"domain": "www.xiaohongshu.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "note-id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Note ID, full URL, or short link"
|
||
},
|
||
{
|
||
"name": "output",
|
||
"type": "str",
|
||
"default": "./xiaohongshu-downloads",
|
||
"required": false,
|
||
"help": "Output directory"
|
||
}
|
||
],
|
||
"columns": [
|
||
"index",
|
||
"type",
|
||
"status",
|
||
"size"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xiaohongshu/download.js",
|
||
"sourceFile": "xiaohongshu/download.js"
|
||
},
|
||
{
|
||
"site": "xiaohongshu",
|
||
"name": "feed",
|
||
"description": "小红书首页推荐 Feed (via Pinia Store Action)",
|
||
"domain": "www.xiaohongshu.com",
|
||
"strategy": "intercept",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of items to return"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"author",
|
||
"likes",
|
||
"type",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xiaohongshu/feed.js",
|
||
"sourceFile": "xiaohongshu/feed.js"
|
||
},
|
||
{
|
||
"site": "xiaohongshu",
|
||
"name": "note",
|
||
"description": "获取小红书笔记正文和互动数据",
|
||
"domain": "www.xiaohongshu.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "note-id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Note ID or full URL (preserves xsec_token for access)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"field",
|
||
"value"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xiaohongshu/note.js",
|
||
"sourceFile": "xiaohongshu/note.js"
|
||
},
|
||
{
|
||
"site": "xiaohongshu",
|
||
"name": "notifications",
|
||
"description": "小红书通知 (mentions/likes/connections)",
|
||
"domain": "www.xiaohongshu.com",
|
||
"strategy": "intercept",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "type",
|
||
"type": "str",
|
||
"default": "mentions",
|
||
"required": false,
|
||
"help": "Notification type: mentions, likes, or connections"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of notifications to return"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"user",
|
||
"action",
|
||
"content",
|
||
"note",
|
||
"time"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xiaohongshu/notifications.js",
|
||
"sourceFile": "xiaohongshu/notifications.js"
|
||
},
|
||
{
|
||
"site": "xiaohongshu",
|
||
"name": "publish",
|
||
"description": "小红书发布图文笔记 (creator center UI automation)",
|
||
"domain": "creator.xiaohongshu.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "title",
|
||
"type": "str",
|
||
"required": true,
|
||
"help": "笔记标题 (最多20字)"
|
||
},
|
||
{
|
||
"name": "content",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "笔记正文"
|
||
},
|
||
{
|
||
"name": "images",
|
||
"type": "str",
|
||
"required": true,
|
||
"help": "图片路径,逗号分隔,最多9张 (jpg/png/gif/webp)"
|
||
},
|
||
{
|
||
"name": "topics",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "话题标签,逗号分隔,不含 # 号"
|
||
},
|
||
{
|
||
"name": "draft",
|
||
"type": "bool",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "保存为草稿,不直接发布"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"detail"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xiaohongshu/publish.js",
|
||
"sourceFile": "xiaohongshu/publish.js"
|
||
},
|
||
{
|
||
"site": "xiaohongshu",
|
||
"name": "search",
|
||
"description": "搜索小红书笔记",
|
||
"domain": "www.xiaohongshu.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search keyword"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"author",
|
||
"likes",
|
||
"published_at",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xiaohongshu/search.js",
|
||
"sourceFile": "xiaohongshu/search.js"
|
||
},
|
||
{
|
||
"site": "xiaohongshu",
|
||
"name": "user",
|
||
"description": "Get public notes from a Xiaohongshu user profile",
|
||
"domain": "www.xiaohongshu.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "string",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "User id or profile URL"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 15,
|
||
"required": false,
|
||
"help": "Number of notes to return"
|
||
}
|
||
],
|
||
"columns": [
|
||
"id",
|
||
"title",
|
||
"type",
|
||
"likes",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xiaohongshu/user.js",
|
||
"sourceFile": "xiaohongshu/user.js"
|
||
},
|
||
{
|
||
"site": "xiaoyuzhou",
|
||
"name": "episode",
|
||
"description": "View details of a Xiaoyuzhou podcast episode",
|
||
"domain": "www.xiaoyuzhoufm.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Episode ID (eid from podcast-episodes output)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"podcast",
|
||
"duration",
|
||
"plays",
|
||
"comments",
|
||
"likes",
|
||
"date"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xiaoyuzhou/episode.js",
|
||
"sourceFile": "xiaoyuzhou/episode.js"
|
||
},
|
||
{
|
||
"site": "xiaoyuzhou",
|
||
"name": "podcast",
|
||
"description": "View a Xiaoyuzhou podcast profile",
|
||
"domain": "www.xiaoyuzhoufm.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Podcast ID (from xiaoyuzhoufm.com URL)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"author",
|
||
"description",
|
||
"subscribers",
|
||
"episodes",
|
||
"updated"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xiaoyuzhou/podcast.js",
|
||
"sourceFile": "xiaoyuzhou/podcast.js"
|
||
},
|
||
{
|
||
"site": "xiaoyuzhou",
|
||
"name": "podcast-episodes",
|
||
"description": "List recent episodes of a Xiaoyuzhou podcast (up to 15, SSR limit)",
|
||
"domain": "www.xiaoyuzhoufm.com",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Podcast ID (from xiaoyuzhoufm.com URL)"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 15,
|
||
"required": false,
|
||
"help": "Max episodes to show (up to 15, SSR limit)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"eid",
|
||
"title",
|
||
"duration",
|
||
"plays",
|
||
"date"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xiaoyuzhou/podcast-episodes.js",
|
||
"sourceFile": "xiaoyuzhou/podcast-episodes.js"
|
||
},
|
||
{
|
||
"site": "xueqiu",
|
||
"name": "comments",
|
||
"description": "获取单只股票的讨论动态",
|
||
"domain": "xueqiu.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "symbol",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Stock symbol, e.g. SH600519, AAPL, or 00700"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of discussion posts to return"
|
||
}
|
||
],
|
||
"columns": [
|
||
"author",
|
||
"text",
|
||
"likes",
|
||
"replies",
|
||
"retweets",
|
||
"created_at",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xueqiu/comments.js",
|
||
"sourceFile": "xueqiu/comments.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "xueqiu",
|
||
"name": "earnings-date",
|
||
"description": "获取股票预计财报发布日期(公司大事)",
|
||
"domain": "xueqiu.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "symbol",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "股票代码,如 SH600519、SZ000858、00700"
|
||
},
|
||
{
|
||
"name": "next",
|
||
"type": "bool",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "仅返回最近一次未发布的财报日期"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "返回数量,默认 10"
|
||
}
|
||
],
|
||
"columns": [
|
||
"date",
|
||
"report",
|
||
"status"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xueqiu/earnings-date.js",
|
||
"sourceFile": "xueqiu/earnings-date.js"
|
||
},
|
||
{
|
||
"site": "xueqiu",
|
||
"name": "feed",
|
||
"description": "获取雪球首页时间线(关注用户的动态)",
|
||
"domain": "xueqiu.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "page",
|
||
"type": "int",
|
||
"default": 1,
|
||
"required": false,
|
||
"help": "页码,默认 1"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "每页数量,默认 20"
|
||
}
|
||
],
|
||
"columns": [
|
||
"author",
|
||
"text",
|
||
"likes",
|
||
"replies",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xueqiu/feed.js",
|
||
"sourceFile": "xueqiu/feed.js"
|
||
},
|
||
{
|
||
"site": "xueqiu",
|
||
"name": "fund-holdings",
|
||
"description": "获取蛋卷基金持仓明细(可用 --account 按子账户过滤)",
|
||
"domain": "danjuanfunds.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "account",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "按子账户名称或 ID 过滤"
|
||
}
|
||
],
|
||
"columns": [
|
||
"accountName",
|
||
"fdCode",
|
||
"fdName",
|
||
"marketValue",
|
||
"volume",
|
||
"dailyGain",
|
||
"holdGain",
|
||
"holdGainRate",
|
||
"marketPercent"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xueqiu/fund-holdings.js",
|
||
"sourceFile": "xueqiu/fund-holdings.js",
|
||
"navigateBefore": "https://danjuanfunds.com/my-money"
|
||
},
|
||
{
|
||
"site": "xueqiu",
|
||
"name": "fund-snapshot",
|
||
"description": "获取蛋卷基金快照(总资产、子账户、持仓,推荐 -f json 输出)",
|
||
"domain": "danjuanfunds.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"asOf",
|
||
"totalAssetAmount",
|
||
"totalFundMarketValue",
|
||
"accountCount",
|
||
"holdingCount"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xueqiu/fund-snapshot.js",
|
||
"sourceFile": "xueqiu/fund-snapshot.js",
|
||
"navigateBefore": "https://danjuanfunds.com/my-money"
|
||
},
|
||
{
|
||
"site": "xueqiu",
|
||
"name": "groups",
|
||
"description": "获取雪球自选股分组列表(含模拟组合)",
|
||
"domain": "xueqiu.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"pid",
|
||
"name",
|
||
"count"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xueqiu/groups.js",
|
||
"sourceFile": "xueqiu/groups.js"
|
||
},
|
||
{
|
||
"site": "xueqiu",
|
||
"name": "hot",
|
||
"description": "获取雪球热门动态",
|
||
"domain": "xueqiu.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "返回数量,默认 20,最大 50"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"author",
|
||
"text",
|
||
"likes",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xueqiu/hot.js",
|
||
"sourceFile": "xueqiu/hot.js"
|
||
},
|
||
{
|
||
"site": "xueqiu",
|
||
"name": "hot-stock",
|
||
"description": "获取雪球热门股票榜",
|
||
"domain": "xueqiu.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "返回数量,默认 20,最大 50"
|
||
},
|
||
{
|
||
"name": "type",
|
||
"type": "str",
|
||
"default": "10",
|
||
"required": false,
|
||
"help": "榜单类型 10=人气榜(默认) 12=关注榜"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"symbol",
|
||
"name",
|
||
"price",
|
||
"changePercent",
|
||
"heat"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xueqiu/hot-stock.js",
|
||
"sourceFile": "xueqiu/hot-stock.js"
|
||
},
|
||
{
|
||
"site": "xueqiu",
|
||
"name": "kline",
|
||
"description": "获取雪球股票K线(历史行情)数据",
|
||
"domain": "xueqiu.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "symbol",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "股票代码,如 SH600519、SZ000858、AAPL"
|
||
},
|
||
{
|
||
"name": "days",
|
||
"type": "int",
|
||
"default": 14,
|
||
"required": false,
|
||
"help": "回溯天数(默认14天)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"date",
|
||
"open",
|
||
"high",
|
||
"low",
|
||
"close",
|
||
"volume"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xueqiu/kline.js",
|
||
"sourceFile": "xueqiu/kline.js"
|
||
},
|
||
{
|
||
"site": "xueqiu",
|
||
"name": "search",
|
||
"description": "搜索雪球股票(代码或名称)",
|
||
"domain": "xueqiu.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "搜索关键词,如 茅台、AAPL、腾讯"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "返回数量,默认 10"
|
||
}
|
||
],
|
||
"columns": [
|
||
"symbol",
|
||
"name",
|
||
"exchange",
|
||
"price",
|
||
"changePercent",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xueqiu/search.js",
|
||
"sourceFile": "xueqiu/search.js"
|
||
},
|
||
{
|
||
"site": "xueqiu",
|
||
"name": "stock",
|
||
"description": "获取雪球股票实时行情",
|
||
"domain": "xueqiu.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "symbol",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "股票代码,如 SH600519、SZ000858、AAPL、00700"
|
||
}
|
||
],
|
||
"columns": [
|
||
"name",
|
||
"symbol",
|
||
"price",
|
||
"changePercent",
|
||
"marketCap"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xueqiu/stock.js",
|
||
"sourceFile": "xueqiu/stock.js"
|
||
},
|
||
{
|
||
"site": "xueqiu",
|
||
"name": "watchlist",
|
||
"description": "获取雪球自选股/模拟组合股票列表",
|
||
"domain": "xueqiu.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "pid",
|
||
"type": "str",
|
||
"default": "-1",
|
||
"required": false,
|
||
"help": "分组ID:-1=全部(默认) -4=模拟 -5=沪深 -6=美股 -7=港股 -10=实盘 0=持仓(通过 xueqiu groups 获取)"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 100,
|
||
"required": false,
|
||
"help": "默认 100"
|
||
}
|
||
],
|
||
"columns": [
|
||
"symbol",
|
||
"name",
|
||
"price",
|
||
"changePercent"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "xueqiu/watchlist.js",
|
||
"sourceFile": "xueqiu/watchlist.js"
|
||
},
|
||
{
|
||
"site": "yahoo-finance",
|
||
"name": "quote",
|
||
"description": "Yahoo Finance 股票行情",
|
||
"domain": "finance.yahoo.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "symbol",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Stock ticker (e.g. AAPL, MSFT, TSLA)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"symbol",
|
||
"name",
|
||
"price",
|
||
"change",
|
||
"changePercent",
|
||
"open",
|
||
"high",
|
||
"low",
|
||
"volume",
|
||
"marketCap"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "yahoo-finance/quote.js",
|
||
"sourceFile": "yahoo-finance/quote.js"
|
||
},
|
||
{
|
||
"site": "yollomi",
|
||
"name": "background",
|
||
"description": "Generate AI background for a product/object image (5 credits)",
|
||
"domain": "yollomi.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "image",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Image URL (upload via \"opencli yollomi upload\" first)"
|
||
},
|
||
{
|
||
"name": "prompt",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "Background description (optional)"
|
||
},
|
||
{
|
||
"name": "output",
|
||
"type": "str",
|
||
"default": "./yollomi-output",
|
||
"required": false,
|
||
"help": "Output directory"
|
||
},
|
||
{
|
||
"name": "no-download",
|
||
"type": "boolean",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "Only show URL"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"file",
|
||
"size",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "yollomi/background.js",
|
||
"sourceFile": "yollomi/background.js"
|
||
},
|
||
{
|
||
"site": "yollomi",
|
||
"name": "edit",
|
||
"description": "Edit images with AI text prompts (Qwen image edit)",
|
||
"domain": "yollomi.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "image",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Input image URL (upload via \"opencli yollomi upload\" first)"
|
||
},
|
||
{
|
||
"name": "prompt",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Editing instruction (e.g. \"Make it look vintage\")"
|
||
},
|
||
{
|
||
"name": "model",
|
||
"type": "str",
|
||
"default": "qwen-image-edit",
|
||
"required": false,
|
||
"help": "Edit model",
|
||
"choices": [
|
||
"qwen-image-edit",
|
||
"qwen-image-edit-plus"
|
||
]
|
||
},
|
||
{
|
||
"name": "output",
|
||
"type": "str",
|
||
"default": "./yollomi-output",
|
||
"required": false,
|
||
"help": "Output directory"
|
||
},
|
||
{
|
||
"name": "no-download",
|
||
"type": "boolean",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "Only show URL"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"file",
|
||
"size",
|
||
"credits",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "yollomi/edit.js",
|
||
"sourceFile": "yollomi/edit.js"
|
||
},
|
||
{
|
||
"site": "yollomi",
|
||
"name": "face-swap",
|
||
"description": "Swap faces between two photos (3 credits)",
|
||
"domain": "yollomi.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "source",
|
||
"type": "str",
|
||
"required": true,
|
||
"help": "Source face image URL"
|
||
},
|
||
{
|
||
"name": "target",
|
||
"type": "str",
|
||
"required": true,
|
||
"help": "Target photo URL"
|
||
},
|
||
{
|
||
"name": "output",
|
||
"type": "str",
|
||
"default": "./yollomi-output",
|
||
"required": false,
|
||
"help": "Output directory"
|
||
},
|
||
{
|
||
"name": "no-download",
|
||
"type": "boolean",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "Only show URL"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"file",
|
||
"size",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "yollomi/face-swap.js",
|
||
"sourceFile": "yollomi/face-swap.js"
|
||
},
|
||
{
|
||
"site": "yollomi",
|
||
"name": "generate",
|
||
"description": "Generate images with AI (text-to-image or image-to-image)",
|
||
"domain": "yollomi.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "prompt",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Text prompt describing the image"
|
||
},
|
||
{
|
||
"name": "model",
|
||
"type": "str",
|
||
"default": "z-image-turbo",
|
||
"required": false,
|
||
"help": "Model ID (z-image-turbo, flux-schnell, nano-banana, flux-2-pro, ...)"
|
||
},
|
||
{
|
||
"name": "ratio",
|
||
"type": "str",
|
||
"default": "1:1",
|
||
"required": false,
|
||
"help": "Aspect ratio",
|
||
"choices": [
|
||
"1:1",
|
||
"16:9",
|
||
"9:16",
|
||
"4:3",
|
||
"3:4"
|
||
]
|
||
},
|
||
{
|
||
"name": "image",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Input image URL for image-to-image (upload via \"opencli yollomi upload\" first)"
|
||
},
|
||
{
|
||
"name": "output",
|
||
"type": "str",
|
||
"default": "./yollomi-output",
|
||
"required": false,
|
||
"help": "Output directory"
|
||
},
|
||
{
|
||
"name": "no-download",
|
||
"type": "boolean",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "Only show URLs, skip download"
|
||
}
|
||
],
|
||
"columns": [
|
||
"index",
|
||
"status",
|
||
"file",
|
||
"size",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "yollomi/generate.js",
|
||
"sourceFile": "yollomi/generate.js"
|
||
},
|
||
{
|
||
"site": "yollomi",
|
||
"name": "models",
|
||
"description": "List available Yollomi AI models (image, video, tools)",
|
||
"strategy": "public",
|
||
"browser": false,
|
||
"args": [
|
||
{
|
||
"name": "type",
|
||
"type": "str",
|
||
"default": "all",
|
||
"required": false,
|
||
"help": "Filter by model type",
|
||
"choices": [
|
||
"all",
|
||
"image",
|
||
"video",
|
||
"tool"
|
||
]
|
||
}
|
||
],
|
||
"columns": [
|
||
"type",
|
||
"model",
|
||
"credits",
|
||
"description"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "yollomi/models.js",
|
||
"sourceFile": "yollomi/models.js"
|
||
},
|
||
{
|
||
"site": "yollomi",
|
||
"name": "object-remover",
|
||
"description": "Remove unwanted objects from images (3 credits)",
|
||
"domain": "yollomi.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "image",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Image URL"
|
||
},
|
||
{
|
||
"name": "mask",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Mask image URL (white = area to remove)"
|
||
},
|
||
{
|
||
"name": "output",
|
||
"type": "str",
|
||
"default": "./yollomi-output",
|
||
"required": false,
|
||
"help": "Output directory"
|
||
},
|
||
{
|
||
"name": "no-download",
|
||
"type": "boolean",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "Only show URL"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"file",
|
||
"size",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "yollomi/object-remover.js",
|
||
"sourceFile": "yollomi/object-remover.js"
|
||
},
|
||
{
|
||
"site": "yollomi",
|
||
"name": "remove-bg",
|
||
"description": "Remove image background with AI (free)",
|
||
"domain": "yollomi.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "image",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Image URL to remove background from"
|
||
},
|
||
{
|
||
"name": "output",
|
||
"type": "str",
|
||
"default": "./yollomi-output",
|
||
"required": false,
|
||
"help": "Output directory"
|
||
},
|
||
{
|
||
"name": "no-download",
|
||
"type": "boolean",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "Only show URL"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"file",
|
||
"size",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "yollomi/remove-bg.js",
|
||
"sourceFile": "yollomi/remove-bg.js"
|
||
},
|
||
{
|
||
"site": "yollomi",
|
||
"name": "restore",
|
||
"description": "Restore old or damaged photos with AI (4 credits)",
|
||
"domain": "yollomi.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "image",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Image URL to restore"
|
||
},
|
||
{
|
||
"name": "output",
|
||
"type": "str",
|
||
"default": "./yollomi-output",
|
||
"required": false,
|
||
"help": "Output directory"
|
||
},
|
||
{
|
||
"name": "no-download",
|
||
"type": "boolean",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "Only show URL"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"file",
|
||
"size",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "yollomi/restore.js",
|
||
"sourceFile": "yollomi/restore.js"
|
||
},
|
||
{
|
||
"site": "yollomi",
|
||
"name": "try-on",
|
||
"description": "Virtual try-on — see how clothes look on a person (3 credits)",
|
||
"domain": "yollomi.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "person",
|
||
"type": "str",
|
||
"required": true,
|
||
"help": "Person photo URL (upload via \"opencli yollomi upload\" first)"
|
||
},
|
||
{
|
||
"name": "cloth",
|
||
"type": "str",
|
||
"required": true,
|
||
"help": "Clothing image URL"
|
||
},
|
||
{
|
||
"name": "cloth-type",
|
||
"type": "str",
|
||
"default": "upper",
|
||
"required": false,
|
||
"help": "Clothing type",
|
||
"choices": [
|
||
"upper",
|
||
"lower",
|
||
"overall"
|
||
]
|
||
},
|
||
{
|
||
"name": "output",
|
||
"type": "str",
|
||
"default": "./yollomi-output",
|
||
"required": false,
|
||
"help": "Output directory"
|
||
},
|
||
{
|
||
"name": "no-download",
|
||
"type": "boolean",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "Only show URL"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"file",
|
||
"size",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "yollomi/try-on.js",
|
||
"sourceFile": "yollomi/try-on.js"
|
||
},
|
||
{
|
||
"site": "yollomi",
|
||
"name": "upload",
|
||
"description": "Upload an image or video to Yollomi (returns URL for other commands)",
|
||
"domain": "yollomi.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "file",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Local file path to upload"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"file",
|
||
"size",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "yollomi/upload.js",
|
||
"sourceFile": "yollomi/upload.js"
|
||
},
|
||
{
|
||
"site": "yollomi",
|
||
"name": "upscale",
|
||
"description": "Upscale image resolution with AI (1 credit)",
|
||
"domain": "yollomi.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "image",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Image URL to upscale"
|
||
},
|
||
{
|
||
"name": "scale",
|
||
"type": "str",
|
||
"default": "2",
|
||
"required": false,
|
||
"help": "Upscale factor (2 or 4)",
|
||
"choices": [
|
||
"2",
|
||
"4"
|
||
]
|
||
},
|
||
{
|
||
"name": "output",
|
||
"type": "str",
|
||
"default": "./yollomi-output",
|
||
"required": false,
|
||
"help": "Output directory"
|
||
},
|
||
{
|
||
"name": "no-download",
|
||
"type": "boolean",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "Only show URL"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"file",
|
||
"size",
|
||
"scale",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "yollomi/upscale.js",
|
||
"sourceFile": "yollomi/upscale.js"
|
||
},
|
||
{
|
||
"site": "yollomi",
|
||
"name": "video",
|
||
"description": "Generate videos with AI (text-to-video or image-to-video)",
|
||
"domain": "yollomi.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "prompt",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Text prompt describing the video"
|
||
},
|
||
{
|
||
"name": "model",
|
||
"type": "str",
|
||
"default": "kling-2-1",
|
||
"required": false,
|
||
"help": "Model (kling-2-1, openai-sora-2, google-veo-3-1, wan-2-5-t2v, ...)"
|
||
},
|
||
{
|
||
"name": "image",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Input image URL for image-to-video"
|
||
},
|
||
{
|
||
"name": "ratio",
|
||
"type": "str",
|
||
"default": "16:9",
|
||
"required": false,
|
||
"help": "Aspect ratio",
|
||
"choices": [
|
||
"1:1",
|
||
"16:9",
|
||
"9:16",
|
||
"4:3",
|
||
"3:4"
|
||
]
|
||
},
|
||
{
|
||
"name": "output",
|
||
"type": "str",
|
||
"default": "./yollomi-output",
|
||
"required": false,
|
||
"help": "Output directory"
|
||
},
|
||
{
|
||
"name": "no-download",
|
||
"type": "boolean",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "Only show URL, skip download"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"file",
|
||
"size",
|
||
"credits",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "yollomi/video.js",
|
||
"sourceFile": "yollomi/video.js"
|
||
},
|
||
{
|
||
"site": "youtube",
|
||
"name": "channel",
|
||
"description": "Get YouTube channel info and recent videos",
|
||
"domain": "www.youtube.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Channel ID (UCxxxx) or handle (@name)"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Max recent videos (max 30)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"field",
|
||
"value"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "youtube/channel.js",
|
||
"sourceFile": "youtube/channel.js"
|
||
},
|
||
{
|
||
"site": "youtube",
|
||
"name": "comments",
|
||
"description": "Get YouTube video comments",
|
||
"domain": "www.youtube.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "url",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "YouTube video URL or video ID"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Max comments (max 100)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"author",
|
||
"text",
|
||
"likes",
|
||
"replies",
|
||
"time"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "youtube/comments.js",
|
||
"sourceFile": "youtube/comments.js"
|
||
},
|
||
{
|
||
"site": "youtube",
|
||
"name": "search",
|
||
"description": "Search YouTube videos",
|
||
"domain": "www.youtube.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search query"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Max results (max 50)"
|
||
},
|
||
{
|
||
"name": "type",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "Filter type: shorts, video, channel, playlist"
|
||
},
|
||
{
|
||
"name": "upload",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "Upload date: hour, today, week, month, year"
|
||
},
|
||
{
|
||
"name": "sort",
|
||
"type": "str",
|
||
"default": "",
|
||
"required": false,
|
||
"help": "Sort by: relevance, date, views, rating"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"channel",
|
||
"views",
|
||
"duration",
|
||
"published",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "youtube/search.js",
|
||
"sourceFile": "youtube/search.js"
|
||
},
|
||
{
|
||
"site": "youtube",
|
||
"name": "transcript",
|
||
"description": "Get YouTube video transcript/subtitles",
|
||
"domain": "www.youtube.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "url",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "YouTube video URL or video ID"
|
||
},
|
||
{
|
||
"name": "lang",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Language code (e.g. en, zh-Hans). Omit to auto-select"
|
||
},
|
||
{
|
||
"name": "mode",
|
||
"type": "str",
|
||
"default": "grouped",
|
||
"required": false,
|
||
"help": "Output mode: grouped (readable paragraphs) or raw (every segment)"
|
||
}
|
||
],
|
||
"type": "js",
|
||
"modulePath": "youtube/transcript.js",
|
||
"sourceFile": "youtube/transcript.js"
|
||
},
|
||
{
|
||
"site": "youtube",
|
||
"name": "video",
|
||
"description": "Get YouTube video metadata (title, views, description, etc.)",
|
||
"domain": "www.youtube.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "url",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "YouTube video URL or video ID"
|
||
}
|
||
],
|
||
"columns": [
|
||
"field",
|
||
"value"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "youtube/video.js",
|
||
"sourceFile": "youtube/video.js"
|
||
},
|
||
{
|
||
"site": "yuanbao",
|
||
"name": "ask",
|
||
"description": "Send a prompt to Yuanbao web chat and wait for the assistant response",
|
||
"domain": "yuanbao.tencent.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "prompt",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Prompt to send"
|
||
},
|
||
{
|
||
"name": "timeout",
|
||
"type": "str",
|
||
"default": "60",
|
||
"required": false,
|
||
"help": "Max seconds to wait (default: 60)"
|
||
},
|
||
{
|
||
"name": "search",
|
||
"type": "boolean",
|
||
"default": true,
|
||
"required": false,
|
||
"help": "Enable Yuanbao internet search (default: true)"
|
||
},
|
||
{
|
||
"name": "think",
|
||
"type": "boolean",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "Enable Yuanbao deep thinking (default: false)"
|
||
}
|
||
],
|
||
"columns": [
|
||
"Role",
|
||
"Text"
|
||
],
|
||
"timeout": 180,
|
||
"type": "js",
|
||
"modulePath": "yuanbao/ask.js",
|
||
"sourceFile": "yuanbao/ask.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "yuanbao",
|
||
"name": "new",
|
||
"description": "Start a new conversation in Yuanbao web chat",
|
||
"domain": "yuanbao.tencent.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [],
|
||
"columns": [
|
||
"Status",
|
||
"Action"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "yuanbao/new.js",
|
||
"sourceFile": "yuanbao/new.js",
|
||
"navigateBefore": false
|
||
},
|
||
{
|
||
"site": "zhihu",
|
||
"name": "answer",
|
||
"description": "Answer a Zhihu question",
|
||
"domain": "www.zhihu.com",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "target",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Zhihu question URL or typed target"
|
||
},
|
||
{
|
||
"name": "text",
|
||
"type": "str",
|
||
"required": false,
|
||
"positional": true,
|
||
"help": "Answer text"
|
||
},
|
||
{
|
||
"name": "file",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Answer text file path"
|
||
},
|
||
{
|
||
"name": "execute",
|
||
"type": "boolean",
|
||
"required": false,
|
||
"help": "Actually perform the write action"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"outcome",
|
||
"message",
|
||
"target_type",
|
||
"target",
|
||
"created_target",
|
||
"created_url",
|
||
"author_identity"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "zhihu/answer.js",
|
||
"sourceFile": "zhihu/answer.js"
|
||
},
|
||
{
|
||
"site": "zhihu",
|
||
"name": "comment",
|
||
"description": "Create a top-level comment on a Zhihu answer or article",
|
||
"domain": "zhihu.com",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "target",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Zhihu target URL or typed target"
|
||
},
|
||
{
|
||
"name": "text",
|
||
"type": "str",
|
||
"required": false,
|
||
"positional": true,
|
||
"help": "Comment text"
|
||
},
|
||
{
|
||
"name": "file",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Comment text file path"
|
||
},
|
||
{
|
||
"name": "execute",
|
||
"type": "boolean",
|
||
"required": false,
|
||
"help": "Actually perform the write action"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"outcome",
|
||
"message",
|
||
"target_type",
|
||
"target",
|
||
"author_identity",
|
||
"created_url",
|
||
"created_proof"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "zhihu/comment.js",
|
||
"sourceFile": "zhihu/comment.js"
|
||
},
|
||
{
|
||
"site": "zhihu",
|
||
"name": "download",
|
||
"description": "导出知乎文章为 Markdown 格式",
|
||
"domain": "zhuanlan.zhihu.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "url",
|
||
"type": "str",
|
||
"required": true,
|
||
"help": "Article URL (zhuanlan.zhihu.com/p/xxx)"
|
||
},
|
||
{
|
||
"name": "output",
|
||
"type": "str",
|
||
"default": "./zhihu-articles",
|
||
"required": false,
|
||
"help": "Output directory"
|
||
},
|
||
{
|
||
"name": "download-images",
|
||
"type": "boolean",
|
||
"default": false,
|
||
"required": false,
|
||
"help": "Download images locally"
|
||
}
|
||
],
|
||
"columns": [
|
||
"title",
|
||
"author",
|
||
"publish_time",
|
||
"status",
|
||
"size"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "zhihu/download.js",
|
||
"sourceFile": "zhihu/download.js"
|
||
},
|
||
{
|
||
"site": "zhihu",
|
||
"name": "favorite",
|
||
"description": "Favorite a Zhihu answer or article into a specific collection",
|
||
"domain": "zhihu.com",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "target",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Zhihu target URL or typed target"
|
||
},
|
||
{
|
||
"name": "collection",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Collection name"
|
||
},
|
||
{
|
||
"name": "collection-id",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Stable collection id"
|
||
},
|
||
{
|
||
"name": "execute",
|
||
"type": "boolean",
|
||
"required": false,
|
||
"help": "Actually perform the write action"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"outcome",
|
||
"message",
|
||
"target_type",
|
||
"target",
|
||
"collection_name",
|
||
"collection_id"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "zhihu/favorite.js",
|
||
"sourceFile": "zhihu/favorite.js"
|
||
},
|
||
{
|
||
"site": "zhihu",
|
||
"name": "follow",
|
||
"description": "Follow a Zhihu user or question",
|
||
"domain": "www.zhihu.com",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "target",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Zhihu target URL or typed target"
|
||
},
|
||
{
|
||
"name": "execute",
|
||
"type": "boolean",
|
||
"required": false,
|
||
"help": "Actually perform the write action"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"outcome",
|
||
"message",
|
||
"target_type",
|
||
"target"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "zhihu/follow.js",
|
||
"sourceFile": "zhihu/follow.js"
|
||
},
|
||
{
|
||
"site": "zhihu",
|
||
"name": "hot",
|
||
"description": "知乎热榜",
|
||
"domain": "www.zhihu.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of items to return"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"heat",
|
||
"answers"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "zhihu/hot.js",
|
||
"sourceFile": "zhihu/hot.js"
|
||
},
|
||
{
|
||
"site": "zhihu",
|
||
"name": "like",
|
||
"description": "Like a Zhihu answer or article",
|
||
"domain": "zhihu.com",
|
||
"strategy": "ui",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "target",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Zhihu target URL or typed target"
|
||
},
|
||
{
|
||
"name": "execute",
|
||
"type": "boolean",
|
||
"required": false,
|
||
"help": "Actually perform the write action"
|
||
}
|
||
],
|
||
"columns": [
|
||
"status",
|
||
"outcome",
|
||
"message",
|
||
"target_type",
|
||
"target"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "zhihu/like.js",
|
||
"sourceFile": "zhihu/like.js"
|
||
},
|
||
{
|
||
"site": "zhihu",
|
||
"name": "question",
|
||
"description": "知乎问题详情和回答",
|
||
"domain": "www.zhihu.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Question ID (numeric)"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 5,
|
||
"required": false,
|
||
"help": "Number of answers"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"author",
|
||
"votes",
|
||
"content"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "zhihu/question.js",
|
||
"sourceFile": "zhihu/question.js"
|
||
},
|
||
{
|
||
"site": "zhihu",
|
||
"name": "search",
|
||
"description": "知乎搜索",
|
||
"domain": "www.zhihu.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "query",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search query"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 10,
|
||
"required": false,
|
||
"help": "Number of results"
|
||
}
|
||
],
|
||
"columns": [
|
||
"rank",
|
||
"title",
|
||
"type",
|
||
"author",
|
||
"votes",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "zhihu/search.js",
|
||
"sourceFile": "zhihu/search.js"
|
||
},
|
||
{
|
||
"site": "zsxq",
|
||
"name": "dynamics",
|
||
"description": "获取所有星球的最新动态",
|
||
"domain": "wx.zsxq.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of dynamics to return"
|
||
}
|
||
],
|
||
"columns": [
|
||
"time",
|
||
"group",
|
||
"author",
|
||
"title",
|
||
"comments",
|
||
"likes",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "zsxq/dynamics.js",
|
||
"sourceFile": "zsxq/dynamics.js"
|
||
},
|
||
{
|
||
"site": "zsxq",
|
||
"name": "groups",
|
||
"description": "列出当前账号加入的星球",
|
||
"domain": "wx.zsxq.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 50,
|
||
"required": false,
|
||
"help": "Number of groups to return"
|
||
}
|
||
],
|
||
"columns": [
|
||
"group_id",
|
||
"name",
|
||
"category",
|
||
"members",
|
||
"topics",
|
||
"joined_at",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "zsxq/groups.js",
|
||
"sourceFile": "zsxq/groups.js"
|
||
},
|
||
{
|
||
"site": "zsxq",
|
||
"name": "search",
|
||
"description": "搜索星球内容",
|
||
"domain": "wx.zsxq.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "keyword",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Search keyword"
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of results to return"
|
||
},
|
||
{
|
||
"name": "group_id",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Optional group id; defaults to the active group in Chrome"
|
||
}
|
||
],
|
||
"columns": [
|
||
"topic_id",
|
||
"group",
|
||
"author",
|
||
"title",
|
||
"comments",
|
||
"likes",
|
||
"time",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "zsxq/search.js",
|
||
"sourceFile": "zsxq/search.js"
|
||
},
|
||
{
|
||
"site": "zsxq",
|
||
"name": "topic",
|
||
"description": "获取单个话题详情和评论",
|
||
"domain": "wx.zsxq.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "id",
|
||
"type": "str",
|
||
"required": true,
|
||
"positional": true,
|
||
"help": "Topic ID"
|
||
},
|
||
{
|
||
"name": "comment_limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of comments to fetch"
|
||
}
|
||
],
|
||
"columns": [
|
||
"topic_id",
|
||
"type",
|
||
"author",
|
||
"title",
|
||
"comments",
|
||
"likes",
|
||
"comment_preview",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "zsxq/topic.js",
|
||
"sourceFile": "zsxq/topic.js"
|
||
},
|
||
{
|
||
"site": "zsxq",
|
||
"name": "topics",
|
||
"description": "获取当前星球的话题列表",
|
||
"domain": "wx.zsxq.com",
|
||
"strategy": "cookie",
|
||
"browser": true,
|
||
"args": [
|
||
{
|
||
"name": "limit",
|
||
"type": "int",
|
||
"default": 20,
|
||
"required": false,
|
||
"help": "Number of topics to return"
|
||
},
|
||
{
|
||
"name": "group_id",
|
||
"type": "str",
|
||
"required": false,
|
||
"help": "Optional group id; defaults to the active group in Chrome"
|
||
}
|
||
],
|
||
"columns": [
|
||
"topic_id",
|
||
"type",
|
||
"author",
|
||
"title",
|
||
"comments",
|
||
"likes",
|
||
"time",
|
||
"url"
|
||
],
|
||
"type": "js",
|
||
"modulePath": "zsxq/topics.js",
|
||
"sourceFile": "zsxq/topics.js"
|
||
}
|
||
] |