Skip to content

Releases: jackwener/opencli

v1.5.3

28 Mar 03:02
4f13484

Choose a tag to compare

What's Changed

  • fix(network): honor proxy env for node requests by @WSL0809 in #512
  • perf: smart-wait — waitForCapture, wait({ selector }), daemon backoff by @jackwener in #527
  • refactor: slim CI matrix, shared utils, unified logging, remove test leak by @jackwener in #525
  • fix(extension): change automation window state from minimized to normal by @Astro-Han in #531
  • chore(release): 1.5.3 by @jackwener in #533

New Contributors

Full Changelog: v1.5.2...v1.5.3

v1.5.2

27 Mar 16:49
9919f03

Choose a tag to compare

What's Changed

  • fix(extension): minimize automation window + reduce idle timeout by @jackwener in #521
  • fix: relax extension version check, enable all adapter tests by @jackwener in #520
  • fix(weread): resolve shelf auth fallback by @Astro-Han in #518
  • chore(extension): bump version to 1.5.1 by @jackwener in #519
  • fix(ci): stabilize public command and plugin e2e checks by @jackwener in #522
  • fix(browser): retry settle probe after SPA client-side redirect by @Astro-Han in #517
  • perf: smart pre-navigation, DOM-stable waits, in-memory URL tracking by @jackwener in #524
  • chore(release): 1.5.2 by @jackwener in #523

Full Changelog: v1.5.1...v1.5.2

v1.5.1

27 Mar 11:27
f9f11e4

Choose a tag to compare

What's Changed

  • fix(doctor): remove unused fix option and add release URL to extension install hint by @jackwener in #498
  • fix(plugin): remove legacy LOCK_FILE/MONOREPOS_DIR constants by @ByteYue in #495
  • feat(plugin): add 'plugin create ' scaffold command by @ByteYue in #494
  • feat(plugin): support local path install via file:// and absolute path by @ByteYue in #491
  • fix(xiaohongshu): adapt publish to new two-step creator center UI by @Astro-Han in #490
  • fix(plugin): detect symlinked monorepo sub-plugins in discoverPlugins by @ByteYue in #487
  • fix(twitter): use DOM-only scraping for trending to match page results by @Astro-Han in #486
  • perf: parallel file discovery and external CLI caching by @jackwener in #501
  • feat(xiaohongshu): add published_at to search results by @Astro-Han in #485
  • fix(plugin): handle EXDEV cross-filesystem rename during install by @ByteYue in #488
  • feat(bluesky): add Bluesky adapter with 9 commands by @0xsline in #215
  • fix(execution): apply timeout to non-browser commands by @Astro-Han in #383
  • fix(plugin): prevent raw .ts import crash when esbuild transpilation fails by @ByteYue in #503
  • feat(plugin): support multi-source plugin install (ssh, git@, generic https) by @ByteYue in #504
  • perf: smart pre-navigation — skip redundant nav + remove 2s wait by @jackwener in #507
  • fix(v2ex): fetch hot topics through browser context by @huguoliang1314 in #493
  • refactor(plugin): make plugin installs transactional by @jackwener in #509
  • chore(release): 1.5.1 by @jackwener in #513

New Contributors

Full Changelog: v1.5.0...v1.5.1

v1.5.0

26 Mar 19:58
218ba91

Choose a tag to compare

What's New

Features

  • Plugin system: opencli-plugin.json manifest and monorepo plugin support (#475)
  • Zero onboarding: extension version check and update notifier (#479)
  • Smart error dispatch: inline Browser Bridge diagnosis with real-time status (#481)
  • New adapters: paperreview.ai (#464), IMDb (#472), Product Hunt (#462), 36kr (#461)
  • Adapter enhancements: douban photo commands (#474), twitter likes (#448), bilibili/xiaohongshu comments (#457), linux-do unified feed (#434), chatgpt model selection (#438)
  • Runtime: Bun compatibility (#459)

Improvements

  • Deduplicated code, improved type safety, simplified error classes (#480)
  • Unified YAML args parsing, browser step constants, and CommandArgs type
  • Hook dedup protection for plugins
  • Safer output normalization

Fixes

  • Extension release packaging validation (#470)
  • Various adapter fixes (jd, xiaohongshu, weread, weixin)
  • Stabilized http download temp file handling (#443)
  • Restored executable permission on bin entries after tsc build (#446)

Full Changelog: v1.4.1...v1.5.0

v1.4.1

25 Mar 08:23
2bfd3ee

Choose a tag to compare

What's Changed

  • ci: add cross-platform E2E and smoke test support (Linux/macOS/Windows) by @ByteYue in #411
  • chore: release v1.4.0 by @jackwener in #413
  • feat(extension): Chrome Web Store readiness — popup UI, privacy policy, CSP by @jackwener in #415
  • feat: add filter option for twitter search by @stormslowly in #410
  • feat: add url field to 9 search adapters (67% -> 97% coverage) by @AllenS0104 in #414
  • feat(douyin): add Douyin creator center adapter (14 commands, 8-phase publish pipeline) by @nianyi778 in #416
  • feat(weibo,youtube): add Weibo commands and YouTube channel/comments by @jackwener in #418
  • fix: remove incorrect gws external CLI entry by @jackwener in #419
  • fix: remove nonexistent readwise external CLI entry by @jackwener in #420
  • chore: trim adapter test suite to bilibili, zhihu, v2ex by @jackwener in #421
  • fix(test): gate extended browser e2e tests behind OPENCLI_E2E=1 by @jackwener in #423
  • fix(extension): improve UX when daemon is not running by @jackwener in #424
  • chore: release v1.4.1 by @jackwener in #425

New Contributors

Full Changelog: v1.4.0...v1.4.1

v1.4.0

25 Mar 06:35
594ad50

Choose a tag to compare

Highlights

New Adapters

  • Pixiv — ranking, search, user illusts, detail, download
  • JD.com — product details
  • Web — generic web read for any URL → Markdown
  • Dictionary — search, synonyms, examples
  • LinkedIn — timeline feed

Plugin System

  • Lifecycle hooks API — onStartup, onBeforeExecute, onAfterExecute
  • Plugin structure validation on install/update
  • Windows path and symlink compatibility

Bug Fixes

  • Fix hasLimit analysis bug (was using wrong parameter Set)
  • Fix template engine chained || evaluation
  • Fix phantom scroll pipeline step (declared but never registered)
  • Extension security hardening — tab isolation, URL validation, cookie scope
  • HTTP status checking in fetch pipeline step
  • Cookie scoping for downloads
  • Natural numeric sort with localeCompare
  • 17+ additional bug fixes from deep code reviews

Code Quality

  • Replace all catch (err: any) with typed getErrorMessage() across 13 files
  • Adopt CliError subclasses across social and desktop adapters
  • Cross-platform CI matrix (Linux/macOS/Windows)
  • Comprehensive documentation sync — SKILL.md, README, docs site

Full Changelog: v1.3.3...v1.4.0

v1.3.3

23 Mar 17:45
167c7c7

Choose a tag to compare

What's New

🛡️ Browser Stealth Anti-Detection

Automatic injection of 7 anti-detection patches when controlling browsers via CDP or daemon mode, preventing websites from detecting opencli's automation:

  • navigator.webdriver masking
  • window.chrome stub (headless only)
  • navigator.plugins / languages fallback (headless only)
  • Permissions.query normalization
  • Dynamic cdc_* / __playwright / __puppeteer artifact cleanup
  • CDP stack trace sanitization via Error.prototype.stack getter override

Other Changes

  • Docs sync with current command registry (#318)
  • Extracted shared modules: getErrorMessage and DEFAULT_DAEMON_PORT (#313)

What's Changed

  • docs: clarify release follow-up steps by @jackwener in #279
  • feat: add weixin article download adapter & abstract download helpers by @jackwener in #280
  • feat(xiaohongshu): add publish command for 图文 note automation by @stone16 in #276
  • feat: add Doubao browser adapter by @helloimcx in #277
  • fix: add turndown dependency to package.json by @jackwener in #288
  • feat(doubao-app): add Doubao AI desktop app CLI adapter by @jackwener in #289
  • docs: sync adapter lists with codebase by @jackwener in #291
  • feat(hackernews): add new, best, ask, show, jobs, search, user commands by @Astro-Han in #290
  • fix(xiaohongshu): scope image selector to avoid downloading avatars by @jackwener in #293
  • docs: add gws to External CLI Hub table in README by @Astro-Han in #286
  • feat: add xianyu-cli (闲鱼) as external CLI by @donquijote2557-web in #292
  • revert: remove xianyu-cli by @jackwener in #295
  • fix: ensure standard PATH is available for external CLIs by @jicaiji1-max in #285
  • fix(xiaohongshu): improve search login-wall handling and detail output by @xiaokuili in #298
  • feat(v2ex): add node, user, member, replies, nodes commands by @Astro-Han in #282
  • Add weibo search command by @caokaizz in #299
  • docs: update xiaohongshu search description, fix unit test count 31→32 by @jackwener in #301
  • fix(tests,docs): use positional arg syntax for search commands by @jackwener in #302
  • feat(record): add live recording command for API capture by @yee94 in #300
  • feat(yollomi): add new commands and update documentation in README files by @AniChikage in #235
  • feat(plugin): add update command, hot reload after install, README section by @jackwener in #307
  • feat: refine error handling with semantic error types by @jackwener in #312
  • chore: pre-release cleanup — fix dependencies, sync docs, reduce code duplication by @jackwener in #311
  • docs(SKILL.md): sync command reference — add missing sites and desktop adapters by @jackwener in #314
  • fix(external): replace execSync with execFileSync to prevent command injection by @0xsline in #309
  • fix: remove duplicate getErrorMessage import in discovery.ts by @jackwener in #315
  • fix(e2e): broaden xiaoyuzhou skip logic for overseas CI runners by @jackwener in #316
  • refactor: extract shared utilities to reduce code duplication by @shouldnotappearcalm in #313
  • chore: release v1.3.2 by @jackwener in #317
  • docs: sync command references with current registry by @jackwener in #318
  • feat(browser): add stealth anti-detection for CDP and daemon modes by @jackwener in #319
  • fix(stealth): review fixes — guard plugins, rewrite stack trace cleanup by @jackwener in #320
  • chore: release v1.3.3 by @jackwener in #321

New Contributors

Full Changelog: v1.3.1...v1.3.3

v1.3.2

23 Mar 17:03

Choose a tag to compare

chore: release v1.3.2

v1.3.1

22 Mar 16:33
7881261

Choose a tag to compare

What's Changed

  • docs: clean up READMEs - remove redundant sections by @jackwener in #261
  • refactor: deprecate opencli setup, enhance doctor with daemon auto-start by @jackwener in #262
  • refactor: doctor defaults to live mode, remove setup entirely by @jackwener in #263
  • chore: update package-lock.json by @jackwener in #264
  • fix: update doctor tests for auto-start daemon and --no-live default by @jackwener in #265
  • fix: remove duplicate horizontal rules in READMEs by @jackwener in #266
  • docs: remove all --live references from markdown docs by @jackwener in #267
  • ci: trigger website rebuild on release by @ByteYue in #269
  • fix(daemon): harden security against browser CSRF attacks by @jackwener in #270
  • docs: refresh testing guide by @yanCode in #223
  • perf: smart page settle via DOM stability detection by @jackwener in #271
  • chore: bump version to 1.3.0 by @jackwener in #272
  • chore: release v1.3.1 by @jackwener in #273

Full Changelog: v1.2.6...v1.3.1

v1.3.0

23 Mar 17:03

Choose a tag to compare

What's Changed

  • docs: clean up READMEs - remove redundant sections by @jackwener in #261
  • refactor: deprecate opencli setup, enhance doctor with daemon auto-start by @jackwener in #262
  • refactor: doctor defaults to live mode, remove setup entirely by @jackwener in #263
  • chore: update package-lock.json by @jackwener in #264
  • fix: update doctor tests for auto-start daemon and --no-live default by @jackwener in #265
  • fix: remove duplicate horizontal rules in READMEs by @jackwener in #266
  • docs: remove all --live references from markdown docs by @jackwener in #267
  • ci: trigger website rebuild on release by @ByteYue in #269
  • fix(daemon): harden security against browser CSRF attacks by @jackwener in #270
  • docs: refresh testing guide by @yanCode in #223
  • perf: smart page settle via DOM stability detection by @jackwener in #271

Full Changelog: v1.2.6...v1.3.0