Releases: jackwener/OpenCLI
Releases · jackwener/OpenCLI
v1.8.0
What's Changed
- 微博新增用户搜索导出博文命令opencli weibo search_by_user 1670458304 --start 2025-06-01 --end 2025-06-02 by @chonglinghuc in #1379
- Fix YouTube transcript caption fetching by @sczhengyabin in #1499
- fix(chatgpt): unwrap page.evaluate envelope across browser commands by @ele-yufo in #1580
- feat: add Flomo memos reader adapter by @Pandas886 in #1549
- feat(douyin): restore publish and delete flow by @jackwener in #1587
- docs(readme): tighten tagline & emphasize browser control by @jackwener in #1596
- feat: add Youdao Notes shared note reader adapter by @Pandas886 in #1547
- feat(linkedin): add messaging commands by @hanzili in #1597
- fix(adapters): surface silent empty fallbacks by @jackwener in #1603
- feat(bilibili): add summary command for the official AI video summary by @asimovVong in #1590
- fix(audit): ignore sentinels in thrown errors by @jackwener in #1604
- fix(barchart): surface greeks fetch failures by @jun0315 in #1599
- docs(readme): simplify Highlights from 9 to 5 bullets by @jackwener in #1605
- fix(electron-apps): move codex CDP port off 9222 to avoid browser-bridge collision by @Benjamin-eecs in #1630
- fix(adapters): drop silent-sentinel row fallbacks across 6 read commands by @Benjamin-eecs in #1631
- fix(weibo/publish): replace brittle CSS-module hash with placeholder selector by @Benjamin-eecs in #1625
- feat(xiaohongshu): add delete-note command to remove published notes by @Benjamin-eecs in #1624
- feat(weibo): add delete command to remove user's own posts by @Benjamin-eecs in #1620
- fix(lesswrong): drop "Unknown" silent sentinel in author column by @Benjamin-eecs in #1611
- feat(twitter): rewrite download profile path on GraphQL UserMedia with cursor pagination by @Benjamin-eecs in #1636
- build: tsc 重建后恢复 dist/src/main.js 的 +x 权限 by @huanghe in #1644
- feat(weread-official): integrate WeRead official Agent Gateway as new CLI namespace by @jackwener in #1648
- feat(linkedin): consolidate messaging and Sales Navigator commands by @hanzili in #1647
- feat(xianyu): add inbox, messages, and reply commands by @jun0315 in #1639
- feat(zhihu): paginate search results by @lenovobenben in #1615
- fix(browser): goto 重试时回收陈旧 page identity + 把 -32000 "Cannot find default execution context" 归类为可重试 by @huanghe in #1645
- fix: keep media filenames in output directory by @hiSandog in #1642
- feat(12306): add full read adapter (stations / trains / train / price / me / passengers / orders) by @Benjamin-eecs in #1637
- docs(readme): fix skill attribution — 'operate any website' uses opencli-browser, not opencli-adapter-author by @jackwener in #1654
- fix(youtube/transcript): 把 timedtext URL 匹配限定到当前 videoId,修跨视频字幕串台 by @huanghe in #1655
- fix(twitter/lists): 跳过 "Discover new Lists" 推荐区块,避免被当成用户的 list 抓取 by @huanghe in #1652
- fix(adapters): drop silent-sentinel row fallbacks across Apple Podcasts, Reddit, and Gitee by @Benjamin-eecs in #1634
- feat(suno): add suno.com music-generation adapter by @ele-yufo in #1638
- fix(zhihu): decode numeric entities in answer detail by @lenovobenben in #1629
- feat(reddit): 新增 subscribed 命令 + 在 listing 命令上暴露 id / created_utc / selftext by @huanghe in #1651
- chore(deps): bump undici from 6.25.0 to 8.3.0 by @dependabot[bot] in #1661
- chore(deps): bump ws from 8.20.0 to 8.20.1 by @dependabot[bot] in #1662
- chore(deps): bump @types/node from 25.6.0 to 25.9.0 by @dependabot[bot] in #1664
- chore(deps): bump tsx from 4.21.0 to 4.22.2 by @dependabot[bot] in #1663
- feat(twitter): 新增 list-create 命令(GraphQL CreateList mutation) by @huanghe in #1656
- feat(twitter): 在 read 命令上暴露 card binding_values(链接预览卡片) by @huanghe in #1660
- fix(cli): escape leading-dash positional values via argv preprocessor by @Benjamin-eecs in #1658
- feat(linkedin-learning): add search / trending / course read commands by @Benjamin-eecs in #1657
- docs(readme): tighten skill attribution (T1) + remove redundant Highlights (T2) by @jackwener in #1666
- feat(reddit/subscribed): 接入 LoginWallError 嗅探(#1650 的第一个 caller) by @huanghe in #1668
- feat(twitter): 在 read 命令上暴露 quoted_tweet(被引用的推文) by @huanghe in #1667
- feat(zhihu): include answer links in question results by @lenovobenben in #1670
- feat(twitter): 在 read 命令上暴露 bio(用户简介) by @huanghe in #1675
- fix(xhs,youtube): 把合法空数据语义切到 EmptyResultError by @huanghe in #1674
- feat(reddit): 在 listing 命令上暴露 post_hint / url / preview / gallery 4 个媒体路由列 by @huanghe in #1676
- fix(deps): restore Node 20 compatibility by @jackwener in #1673
- feat(twitter): add device-follow command for /i/timeline notification stream by @Benjamin-eecs in #1672
- fix(chatgpt): detect generated image surfaces by @jackwener in #1677
- feat(zhihu): add answer comments reader by @lenovobenben in #1671
- docs(readme): curate built-in commands + add wrangler external CLI by @jackwener in #1679
- fix(adapters): migrate empty-data throws to EmptyResultError across 5 commands (#1674 follow-up) by @Benjamin-eecs in #1678
- feat(linkedin): add people-search command by @Benjamin-eecs in #1649
- docs(readme): shrink CLI Hub + Core Concepts + merge Update into Install by @jackwener in #1681
- chore(skills): remove smart-search by @jackwener in #1683
- feat(booking): add search adapter for Booking.com hotel listings by @jackwener in #1680
- chore(release): 1.8.0 by @jackwener in #1682
New Contributors
- @chonglinghuc made their first contribution in #1379
- @sczhengyabin made their first contribution in #1499
- @ele-yufo made their first contribution in #1580
- @asimovVong made their first contribution in #1590
- @jun0315 made their first contribution in #1599
Full Changelog: v1.7.22...v1.8.0
v1.7.22
What's Changed
- fix(boss): map code=24 (identity mismatch) to AuthRequiredError by @Benjamin-eecs in #1573
- fix(weibo): unwrap page.evaluate envelope in read adapters by @Benjamin-eecs in #1568
- feat(external): add Longbridge CLI by @jackwener in #1584
- feat(external-cli): render brand alias for ambiguous executable names by @jackwener in #1585
- chore(release): 1.7.22 by @jackwener in #1586
Full Changelog: v1.7.21...v1.7.22
v1.7.21
What's Changed
- fix(ci): add Windows native binding lock entries by @jackwener in #1563
- fix(xiaohongshu,rednote): unwrap page.evaluate envelope in search adapter by @cyqiris in #1561
- fix(extension): reuse existing adapter tab group by @GreyC in #1541
- feat: add DuckDuckGo, Brave, and Yahoo web search adapters by @Pandas886 in #1546
- test(extension): cover adapter group tiebreaker by @jackwener in #1566
- feat(boss): support job-seeker chatlist and chatmsg by @GreyC in #1539
- fix(facebook/feed): add fallback extraction for empty article nodes by @GreyC in #1538
- fix(social): use ephemeral adapter site sessions by @jackwener in #1569
- chore(release): 1.7.21 by @jackwener in #1571
New Contributors
Full Changelog: v1.7.20...v1.7.21
v1.7.20
What's Changed
- feat(external)!: drop -cli suffix from tg/discord/wx subcommand names by @jackwener in #1544
- fix(extension): keep active daemon websocket by @GreyC in #1540
- docs(browser): clarify named session lifecycle by @GreyC in #1542
- fix(extension): coalesce daemon websocket connects by @jackwener in #1554
- feat(twitter/list-tweets): include media via extractMedia (parity with timeline/search) by @huanghe in #1464
- feat(twitter): add extractMedia parity to bookmarks + bookmark-folder by @jackwener in #1555
- fix(daemon): report unknown browser command results by @jackwener in #1558
- refactor(notion): replace built-in CDP adapter with external ntn CLI by @jackwener in #1559
- fix(cli): show external CLI package aliases by @jackwener in #1560
- chore(release): 1.7.20 by @jackwener in #1562
New Contributors
Full Changelog: v1.7.19...v1.7.20
v1.7.19
What's Changed
- fix(xiaohongshu+rednote): scroll until enough rows for --limit > 13 (#1471) by @jackwener in #1487
- docs(skill/adapter-author): aria-label / placeholder / title are locale-dependent (#1474) by @jackwener in #1488
- feat(ctrip): add hotel-search + flight browser-mode commands (#1481) by @jackwener in #1489
- chore(scripts): auto-refresh dist/ before build-manifest by @jackwener in #1490
- feat(reddit): add whoami, home, subreddit-info read commands by @jackwener in #1491
- refactor(browser): replace --session flag with positional by @jackwener in #1505
- feat(browser): add function form page.evaluate by @jackwener in #1508
- refactor(env): remove OPENCLI_KEEP_TAB by @jackwener in #1509
- refactor(extension): remove lease key session backdoor by @jackwener in #1510
- fix(xueqiu/kline,earnings-date): format dates in Asia/Shanghai instead of UTC by @Benjamin-eecs in #1498
- fix(browser): drop session injection from extension exec results by @hansnow in #1518
- ci(e2e): drop e2e-headed from pull_request trigger by @jackwener in #1521
- ci(adapter-test): gate off pull_request by @jackwener in #1522
- fix(google/search): wrap evaluate return to fix Array.isArray check by @lyingflatDDD in #1523
- fix(twitter): make reply submission robust by @darthjaja6 in #1511
- fix(twitter): repair search and tweets readback by @darthjaja6 in #1512
- feat(reddit/read): --expand-more via /api/morechildren + 7-kind typed errors by @jackwener in #1492
- fix: clamp download progress percentages by @hiSandog in #1520
- fix(xiaohongshu+rednote/search): fall back to href-based note cards when section.note-item class is dropped by @Benjamin-eecs in #1507
- feat(zhihu): paginate question answers and recommendations by @lenovobenben in #1517
- chore: drop util.styleText to support Node v20+ by @jackwener in #1524
- fix(xiaohongshu): parseLikes should handle 2.1w / 1.5万 / 1.2k shortforms by @John15Wil in #1504
- fix(google-scholar/search): wrap evaluate return to fix serialization by @lyingflatDDD in #1525
- feat(zhihu): add answer-detail to fetch a single answer's full content by @jackwener in #1528
- fix(twitter): raise cursor pagination guard by @jackwener in #1532
- fix(twitter): repair list-add / list-tweets / lists / following after 2026-05 changes by @ppop123 in #1503
- feat(twitter): default tweets to logged-in user + fix sibling envelope-unwrap silent bug by @jackwener in #1531
- chore(release): 1.7.19 by @jackwener in #1543
New Contributors
- @hansnow made their first contribution in #1518
- @lyingflatDDD made their first contribution in #1523
- @lenovobenben made their first contribution in #1517
- @John15Wil made their first contribution in #1504
- @ppop123 made their first contribution in #1503
Full Changelog: v1.7.18...v1.7.19
v1.7.18
What's Changed
- feat(rednote): add rednote.com adapter mirroring xiaohongshu read commands (#1136) by @Benjamin-eecs in #1475
- feat(reddit): add reply command for replying to comments by @gauravsaxena1997 in #1428
- fix(youtube): request srv3 format for caption URLs (#1420) by @kagura-agent in #1422
- fix(doubao/ask): restore Assistant detection after 2026-05 DOM refactor by @jackwener in #1484
- fix(doctor): pass session to connectivity probe by @jackwener in #1485
- chore(release): 1.7.18 by @jackwener in #1486
New Contributors
- @gauravsaxena1997 made their first contribution in #1428
Full Changelog: v1.7.17...v1.7.18
v1.7.17
What's Changed
- refactor(browser): replace workspace with explicit sessions by @jackwener in #1461
- refactor(adapter): rename site browser reuse to persistent sessions by @jackwener in #1462
- refactor(doctor): drop --no-live / --sessions + dead protocol chain by @jackwener in #1470
- feat(chatgpt): support local image uploads by @E2ern1ty in #1476
- chore(release): 1.7.17 by @jackwener in #1483
Full Changelog: v1.7.16...v1.7.17
v1.7.16
What's Changed
- perf(adapters): hoist cookie reads to page.getCookies (Tier 1, 25 files) by @jackwener in #1450
- perf(twitter): drop redundant goto+wait — framework auto pre-navs (PR C) by @jackwener in #1451
- refactor(browser): split interactive and automation windows by @jackwener in #1453
- perf(twitter): enable browserSession reuse:site on 17 read-only adapters (PR B) by @jackwener in #1454
- perf(deepseek): replace fixed-sleep waits with selector-based readiness by @jackwener in #1449
- perf(claude): replace fixed-sleep waits with selector-based readiness (D2) by @jackwener in #1452
- fix(chatgpt): add Chinese locale selectors for image command by @cd233ljx in #1354
- feat(openreview): add author command for ID-explicit publication lookup by @Benjamin-eecs in #1365
- fix(xiaohongshu): fallback to base64 upload when CDP setFileInput returns 'Not allowed' by @DevEverything01 in #1374
- perf(reddit): opt 13 browser adapters into shared site-tab lease by @jackwener in #1455
- chore(extension): rename adapter tab group by @jackwener in #1457
- feat(help): structured help for daemon/plugin/adapter/profile namespaces by @jackwener in #1407
- feat(external): register tg-cli, discord-cli, wx-cli by @jackwener in #1458
- docs(readme): list tg-cli, discord-cli, wx-cli in External CLI sections by @jackwener in #1459
- perf(chatgpt): replace fixed-sleep waits with selector-based readiness (D3) by @jackwener in #1456
- chore(release): 1.7.16 by @jackwener in #1460
New Contributors
- @cd233ljx made their first contribution in #1354
- @DevEverything01 made their first contribution in #1374
Full Changelog: v1.7.15...v1.7.16
v1.7.15
What's Changed
- feat(help): hard-gate empty positional help text + fix 18 offenders by @jackwener in #1403
- feat(help): add browser structured help by @jackwener in #1404
- feat(twitter): P1+P2+P3+P4+P5 — search filters, bookmark folders, engagement scoring, sibling dedupe + help docs by @jackwener in #1406
- docs(browser): design agent runtime roadmap by @jackwener in #1411
- fix(browser): drive click through CDP mouse events by @jackwener in #1412
- feat(browser): add opt-in AX refs by @jackwener in #1413
- feat(browser): route AX refs through same-origin frames by @jackwener in #1414
- feat(browser): compare DOM and AX state metrics by @jackwener in #1415
- docs(browser): document AX validation workflow by @jackwener in #1416
- fix(browser): enable Accessibility before AX snapshots by @jackwener in #1417
- fix(douyin): handle empty response body in browserFetch by @kagura-agent in #1408
- feat(dianping): resolve unknown cities live from www.dianping.com by @henrycjchen in #1429
- fix(e2e): unstick e2e-headed by matching fake daemon version by @jackwener in #1432
- feat(browser): add semantic locator flags by @jackwener in #1434
- feat(browser): add hover focus and dblclick by @jackwener in #1435
- feat(browser): add check and uncheck by @jackwener in #1437
- feat(browser): add upload command by @jackwener in #1438
- feat(browser): add drag command by @jackwener in #1439
- feat(browser): extend semantic locators to actions by @jackwener in #1440
- feat(browser): wait for downloads by @jackwener in #1441
- feat(browser): route AX refs through cross-origin frames by @jackwener in #1442
- fix(browser): enable AX in cross-origin frame targets by @jackwener in #1443
- feat(browser): add semantic locators to input actions by @jackwener in #1444
- test(browser): add real Chrome AX smoke by @jackwener in #1445
- feat(browser): add annotated screenshot refs by @jackwener in #1433
- chore(release): 1.7.15 by @jackwener in #1448
New Contributors
- @henrycjchen made their first contribution in #1429
Full Changelog: v1.7.14...v1.7.15
v1.7.14
What's Changed
- fix(browser): restart stale ready daemon by @jackwener in #1399
- feat(twitter): add unlike + retweet + unretweet + quote (write-action symmetry P0) by @jackwener in #1400
- feat(help): make adapter help agent-friendly by @jackwener in #1401
- chore(release): 1.7.14 by @jackwener in #1402
Full Changelog: v1.7.13...v1.7.14