Files
jackwener__opencli/cli-manifest.json
jakevin d2974a9ff6 refactor(adapters): convert adapter layer from TypeScript to JavaScript (#928)
* 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.
2026-04-10 14:52:18 +08:00

16836 lines
362 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[
{
"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"
}
]