jackwener
53b28637bb
docs(CLI-CREATOR): add mandatory Playwright MCP Bridge workflow for AI agents
...
Critical addition: AI agents MUST use browser_navigate, browser_snapshot,
browser_network_requests, browser_click to discover APIs interactively.
Includes 6-step workflow, concrete tool examples, and common mistakes table.
This directly addresses the root cause of the subtitle API exploration failure.
2026-03-15 18:31:04 +08:00
jackwener
ad9e9605fc
feat: extreme architectural optimizations
...
Phase 1: Smart autoScroll with MutationObserver (single IPC, instant DOM change detection)
Phase 2: Build-time CLI manifest compiler + lazy-loading engine (instant cold start)
Phase 3: Batch IPC fetch (N browser fetches in single evaluate() call)
2026-03-15 18:25:58 +08:00
jackwener
0e1cea84b6
chore: release v0.4.0
v0.4.0
2026-03-15 18:16:27 +08:00
jackwener
ee2e0a3bfc
docs: update command tables to 46 commands, add subtitle/dynamic/ranking/frontpage/subreddit/profile/timeline/me/user, update SKILL.md version
2026-03-15 18:16:26 +08:00
jackwener
4fc4c4b92f
fix: apply remaining code review fixes to subtitle.ts and explore.ts
...
- subtitle.ts: URL injection fix (JSON.stringify), --lang option,
debug console.error removal, comment numbering
- explore.ts: clickLabels targeted clicking, empty-value penalty
moved to scoreEndpoint(), removed console.log debug output
- Deleted stale test_subtitle.ts
2026-03-15 18:12:40 +08:00
jackwener
a47d687513
perf: extreme architectural optimizations
...
Phase 1: Smart autoScroll with MutationObserver (single IPC, instant DOM change detection)
Phase 2: Build-time CLI manifest compiler + lazy-loading engine (instant cold start)
Phase 3: Batch IPC fetch (N browser fetches in single evaluate() call)
2026-03-15 18:12:36 +08:00
jackwener
2dacba8244
fix: code review improvements (#1-#8)
...
- #1 Fix URL injection in subtitle.ts via JSON.stringify
- #2 Remove debug console.error from production code
- #3 Delete stale test_subtitle.ts
- #4 Add --lang option for multi-language subtitle selection
- #5 Fix duplicate comment numbering (two '// 4.')
- #6 Add clickLabels targeted clicking + --click flag to explore
- #7 Move empty-value penalty into scoreEndpoint() (affects filtering)
- #8 Add cascade request code template to CLI-CREATOR.md
2026-03-15 18:09:59 +08:00
jackwener
e64fc65554
feat: add Bilibili subtitle adapter with Wbi signing & explore fuzzing
...
- New: src/clis/bilibili/subtitle.ts - cascading BVID→CID→subtitle fetch
using apiGet with automatic Wbi signature (w_rid)
- Enhanced: src/explore.ts - added INTERACT_FUZZ_JS for interactive
API discovery via simulated clicks (--auto flag)
- Enhanced: src/explore.ts - empty-value score penalty for anti-bot detection
- Fixed: src/main.ts - restored explore command syntax, added --auto option
- Updated: CLI-CREATOR.md - cascading requests & anti-bot sections
2026-03-15 18:03:25 +08:00
jackwener
4e6d6bb81d
chore: release v0.3.0
v0.3.0
2026-03-15 16:04:40 +08:00
jackwener
790c94d644
feat: Add Xueqiu site with 6 new commands and a Twitter bookmarks command, updating documentation.
2026-03-15 16:03:45 +08:00
jackwener
aef110a8f8
feat(browser): support OPENCLI_BROWSER_EXECUTABLE_PATH env var to specify custom Playwright MCP browser path ( Resolves #8 )
2026-03-15 15:54:08 +08:00
jackwener
71f2f3d6e6
fix: integrate community bugfixes for PRs 1, 4, 6 and Issue 7
...
- Fix zhihu id truncation issue beyond safe integer
- Add json filter to template engine
- Escape evaluate args in browser scripts using json filter
- Resolve module not found bug for index.ts
Co-authored-by: 袁鑫 <eric.yuanxin@gmail.com >
Co-authored-by: zhenxing jiang <jiangzhx@gmail.com >
Co-authored-by: wangruotian <wangruotian@meituan.com >
Co-authored-by: 滕文证 <83223457+tenwz@users.noreply.github.com >
2026-03-15 15:43:33 +08:00
jackwener
829172fc59
feat: introduce browser interception and auto-scroll utilities, enable dynamic loading of TypeScript CLIs, and add a JSON template filter
2026-03-15 15:42:19 +08:00
jackwener
20f7d58dd6
feat: Add new CLIs for Bilibili, Reddit, Twitter, and Xiaohongshu, incorporating an intercept strategy for Twitter.
2026-03-15 15:33:30 +08:00
jackwener
92c23e8f9b
docs: fix CLI creator guide links in READMEs
2026-03-15 08:59:13 +08:00
jackwener
70863fbdec
Release v0.2.0
v0.2.0
2026-03-15 08:54:35 +08:00
jackwener
1361fe6c19
feat: release v0.2.0 with all new adapters and fixes
2026-03-15 08:54:35 +08:00
jackwener
f19842c6b7
0.1.2
v0.1.2
2026-03-15 08:46:39 +08:00
jackwener
46ae0a0aa3
fix: test import path
2026-03-15 08:46:39 +08:00
jackwener
0fd9adf0f5
feat: add 8 new sites — bbc, weibo, boss, yahoo-finance, reuters, smzdm, ctrip, youtube
...
New adapters ported from bb-sites:
- bbc/news: BBC News RSS headlines (public API)
- weibo/hot: 微博热搜 (browser)
- boss/search: BOSS直聘搜索职位 (browser)
- yahoo-finance/quote: 股票行情 (browser)
- reuters/search: 路透社新闻搜索 (browser)
- smzdm/search: 什么值得买搜索好价 (browser)
- ctrip/search: 携程旅行搜索 (browser)
- youtube/search: YouTube视频搜索 (browser)
Also: build script adds clean-yaml step, docs updated to 28 commands / 16 sites
2026-03-15 08:46:13 +08:00
jackwener
862be02732
0.1.1
v0.1.1
2026-03-15 08:10:51 +08:00
jackwener
999d340a34
refactor: remove xiaohongshu me, add lessons learned, fix docs
...
- Remove xiaohongshu/me (profile page async loading too unreliable)
- CLI-CREATOR: add 4 lessons to 常见陷阱 (stale dist YAML, TS IIFE
format, async polling, YAML vs TS threshold)
- Fix build: clean-yaml before copy to prevent stale overrides
- Fix docs: MCP token is configured via MCP config, not env var
- Update all command lists (README, README.zh-CN, SKILL.md)
2026-03-15 08:10:40 +08:00
jackwener
fd94a5d27b
fix: auto-close tabs after command, add login requirement reminders
...
- browser.ts: close all tabs opened during session (not just extension tabs)
uses _initialTabCount to restore Chrome to pre-command state
- README/README.zh-CN: add ⚠️ login requirement warning with examples
- SKILL.md: add login note and tab auto-close mention
2026-03-15 07:57:12 +08:00
jackwener
129df91247
docs: fix site count from 13 to 8 in READMEs
2026-03-15 07:53:03 +08:00
jackwener
9df96db598
refactor: pipeline error propagation, me.yaml→me.ts, docs overhaul
...
Code:
- pipeline.ts: warn on stderr when step returns {error} object
- xiaohongshu/me.yaml → me.ts (evaluate code belongs in TS)
- index.ts: register xiaohongshu/me.ts
Docs:
- CLI-CREATOR: YAML vs TS decision tree, tap step docs with
real example, 'explore store first' debugging workflow
- SKILL.md: add tap to Pipeline Steps table, update XHS commands
- README + README.zh-CN: update xiaohongshu command list
2026-03-15 07:51:20 +08:00
jackwener
f26b906bd5
docs(CLI-CREATOR): add mandatory testing checklist and tap debugging guide
...
- build ≠ working: must run commands to verify
- added step-by-step testing checklist
- added tap step debugging tips for intercept strategy
2026-03-15 07:39:38 +08:00
jackwener
7bc670ee22
feat(xiaohongshu): add me + notifications, remove broken adapters
...
- me: personal profile info (navigate + evaluate from Pinia store)
- notifications: browse notifications by type (mentions/likes/connections)
uses tap pipeline to call getNotification store action
- removed note, comments, user-posts (store action names unverified)
2026-03-15 07:38:53 +08:00
jackwener
9124dcc018
chore: clean up duplicate adapters
...
- Remove xiaohongshu/search.yaml (keep .ts with XHR interception)
- Remove zhihu/search.ts (keep .yaml, self-contained)
- Clean ~/.opencli/clis/ generated candidates (5 dirs)
24 commands across 8 sites, no duplicates
2026-03-15 07:30:35 +08:00
jackwener
0988fcb334
feat(xiaohongshu): add me, note, comments, user-posts commands
...
All 4 commands use YAML tap pipeline with Pinia store interception:
- me: personal profile info
- note --id: note detail
- comments --id: note comments
- user-posts --uid: user's published notes
2026-03-15 07:29:42 +08:00
jackwener
7c88c603c8
docs: add CLI-CREATOR.md + fix MCP token config instructions
...
- CLI-CREATOR.md: comprehensive adapter development guide with
5-tier strategy decision tree, YAML/TS templates, XHR interception
pattern, common pitfalls, and AI Agent auto-generation workflow
- Fix all docs: MCP Bridge connects via PLAYWRIGHT_MCP_EXTENSION_TOKEN
in MCP config (not by clicking to approve)
2026-03-15 07:23:16 +08:00
jackwener
81c8ad522b
docs: add npm install, update guide, Chinese README
...
- README.md: npm install -g as primary, update instructions, release guide
- README.zh-CN.md: full Chinese version with same structure
- SKILL.md: updated install section with npm global install
- Both READMEs link to each other
2026-03-15 07:20:27 +08:00
jackwener
ba620f4498
feat: add tap pipeline step and probe command
...
- tap: declarative Store Action Bridge (Pinia/Vuex)
- fetch + XHR dual interception, auto-cleanup
- 4-line YAML replaces 30+ line JS monkey-patching
- probe: AI-powered site intelligence command
- auto-discovers Pinia/Vuex stores and actions
- correlates stores → API endpoints → capabilities
- outputs stores.json artifact
- synthesize: generates tap-based pipelines for store-action sites
- xiaohongshu: feed.yaml and search.yaml using tap
- build: copy YAML adapters to dist/
2026-03-15 07:20:00 +08:00
jackwener
d35d78d836
docs: polish README and SKILL for v0.1.0
...
README:
- Cleaner structure, accurate 25 commands / 13 sites
- Correct strategy labels (v2ex=public, not cookie)
- Explore artifacts documentation
- Better formatting and English/Chinese mix
SKILL:
- 5-tier authentication strategy table
- Public API YAML pattern example
- TS escape hatch guidance
- intercept pipeline step docs
- Troubleshooting section
2026-03-15 07:18:17 +08:00
jackwener
4b85ddd678
feat: add xiaohongshu search + v2ex topic + test fixes
...
- xiaohongshu/search.ts: Pinia store + XHR interception (from bb-sites)
- v2ex/topic.yaml: public API topic details
- Register xiaohongshu/search in index.ts
- 25 commands across 13 sites
Tested: bilibili hot/search ✅ , zhihu hot ✅ , v2ex hot/topic ✅ ,
hackernews top ✅ , github search ✅
2026-03-15 07:16:03 +08:00
jackwener
93f4753d1c
fix: critical MCP result parsing + V2EX strategy + extension tab cleanup
...
- browser.ts: strip '### Ran Playwright code' suffix from MCP evaluate results
to correctly parse JSON data (was causing all evaluate-based commands to fail)
- browser.ts: auto-close chrome-extension:// tabs on session close
- pipeline.ts: add JSON string auto-parse fallback for evaluate step
- v2ex: add strategy:public + browser:false (public API, no browser needed)
- v2ex: simplify to use fetch step instead of evaluate
Tested: bilibili hot/search ✅ , zhihu hot ✅ , v2ex hot ✅ ,
hackernews top ✅ , github search ✅
2026-03-15 07:14:07 +08:00
jackwener
1ee4919a24
docs: update README and SKILL with new features
...
- Fix directory path: ai-native-cli → opencli
- Add reddit, zhihu/question to command tables
- Add AI Agent workflow section with cascade command
- Add intercept pipeline step to reference
- Add reddit examples to SKILL.md
2026-03-15 07:01:01 +08:00
jackwener
36c4a3a480
feat: Deep Explore + Strategy Cascade + adapter migration
...
- Rewrite explore.ts: network interception, response body analysis,
endpoint scoring, capability inference, framework detection
- Rewrite synthesize.ts: evaluate-based YAML generation,
buildTemplatedUrl, volatile param stripping
- Add cascade.ts: automatic strategy probe (PUBLIC→COOKIE→HEADER)
- Upgrade zhihu/hot.yaml: better API with heat/answers
- Add zhihu/search.yaml, zhihu/question.ts, reddit/hot.yaml
- Migrate bilibili adapters: favorite, feed, history, user-videos
- 22 commands across 12 sites
2026-03-15 06:58:58 +08:00
jackwener
c019f8c6f2
feat: add cascade strategy probe, intercept pipeline step, buildTemplatedUrl
2026-03-15 06:45:05 +08:00
jackwener
f1160be8bb
feat(synthesize): add buildTemplatedUrl with volatile param stripping
v0.1.0
2026-03-15 06:41:20 +08:00
jackwener
932ab9097f
fix: MCP extension mode, network output parsing, URL template generation
...
- Add --extension flag when spawning Playwright MCP server
- Fix findMcpServerPath to find @playwright/mcp/cli.js locally
- Fix parseNetworkOutput regex to handle [GET] url => [200] format
- Add buildTemplatedUrl: strips volatile params (w_rid/wts), templates
search/limit/pagination params without URL encoding artifacts
- Add fileURLToPath import
2026-03-15 06:41:01 +08:00
jackwener
668421db3d
fix: rename to @jackwener/opencli (npm name conflict with open-cli)
2026-03-15 06:38:16 +08:00
jackwener
5e01125dec
feat: deep explore + enhanced synthesize + generate pipeline
...
- Rewrite explore.ts: network interception, response body schema analysis,
framework detection, auto capability inference, endpoint scoring
- Rewrite synthesize.ts: generate YAML pipelines from capabilities with
field mappings, templated URLs, and proper arg definitions
- Enhance generate.ts: goal normalization (with Chinese aliases),
smart candidate selection, richer summary output
- Add Page.networkRequests(), consoleMessages(), scroll() to browser.ts
2026-03-15 06:34:09 +08:00
jackwener
f76b5c4150
chore: add package-lock.json for CI
2026-03-15 06:32:53 +08:00
jackwener
60c03d30be
0.1.0
2026-03-15 06:32:01 +08:00
jackwener
6b7299edd4
feat(browser): add networkRequests, consoleMessages, scroll
2026-03-15 06:32:01 +08:00
jackwener
e05146efce
feat(browser): add networkRequests, consoleMessages, scroll methods
2026-03-15 06:30:24 +08:00
jackwener
9496080fdb
ci: add GitHub Actions for CI and auto-release on v* tags
2026-03-15 06:24:39 +08:00
jackwener
d4133f955b
feat: opencli TypeScript rewrite with 20 commands across 11 sites
2026-03-15 06:23:17 +08:00