jackwener
b3850d9c53
fix(xiaohongshu): switch search from broken XHR interception to DOM extraction ( Fixes #10 )
...
Co-authored-by: jack4world <jack4world@users.noreply.github.com >
2026-03-15 18:55:29 +08:00
jackwener
91d7892516
docs(CLI-CREATOR): streamline 840→719 lines — remove redundancies, keep all value
...
- MCP Bridge: 6-step flowchart + step-by-step → compact table (-51 lines)
- Remove duplicate cascade code example (kept full template below)
- Verbose mode + output verification → 3-line compact form
- Step 5 + design philosophy → merged into concise section
2026-03-15 18:49:47 +08:00
jackwener
3f859b3238
docs(CLI-CREATOR): add SDK table, template-first guide, pagination pattern, success story
...
Four practical improvements based on real adapter development experience:
- Real success story: 5-minute following adapter walkthrough
- Step 2.5: template-first + Bilibili SDK reference table
- Pagination pattern with code template (pn+ps)
- Wbi vs fetchJson decision rule
2026-03-15 18:46:13 +08:00
jackwener
2fdab085a7
chore: release v0.4.1
v0.4.1
2026-03-15 18:41:14 +08:00
jackwener
7ec04c66cb
docs: deep review fixes — sync command tables to actual 47 commands
...
- Command count 46 → 47 (added following)
- bilibili row: add 'following' command
- github row: remove non-existent 'trending', change mode to Public
- SKILL.md: add following, xueqiu hot/search commands
- Fix github section from 'trending=browser' to 'public'
2026-03-15 18:41:14 +08:00
jackwener
f8ee50b776
feat(bilibili): add following adapter — get user's followed accounts
...
Discovered via Playwright MCP Bridge workflow (CLI-CREATOR.md):
- Navigate to space.bilibili.com/{uid}/fans/follow
- Sniff network: GET /x/relation/followings (Cookie-tier, no Wbi needed)
- Verify API response: total=1342, fields: mid/uname/sign
Also fixed .d.ts loading bug in build-manifest.ts and engine.ts:
- build-manifest now scans .js files in dist/ (not .ts)
- engine.ts skips .d.js declaration stubs
2026-03-15 18:38:34 +08:00
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