The version timeline, feature classification, and the explicit boundary of what se-cli will never become.
Every feature is ranked by where it lands se-cli's defensibility — not by how flashy it looks.
The foundation. Without these, se-cli isn't usable or competitive — the CLI/daemon architecture, wait/retry layer, and MCP server. Built first, no exceptions.
Differentiation. Capabilities that distinguish se-cli from raw WebDriver and from Playwright-CLI — assertions, network, emulation, remote/Grid.
Nice-to-have. Recording, VSCode extension — significant effort, smaller payoff. Scheduled late, may slip.
Revised 2026-07-29 — these four rules decide every "should we build this?" question.
Wait/retry/timeout, Grid, custom browsers, real Safari, Edge IE mode. These are strengths Playwright will never match — prioritized as the defensive stronghold.
Playwright-CLI features that are easy to port (auto-wait, retry-assertion, device emulation) are ranked by complexity × importance and shipped early when the ratio is favourable.
Every Selenium capability that requires code (explicit waits, ExpectedConditions, Actions chains, setScriptTimeout) is exposed via the 4-tier priority: flag > ENV > config file > default.
To avoid misplaced community expectations, se-cli declares what it will never implement — native aria ref engine, full tracing parity, real IE 11.
v0.1–v0.7 are shipped. v0.8–v0.13 are planned, sequenced by dependency and value.
CLI + daemon process architecture, basic commands (open/close/goto/click/fill/type/press/snapshot/screenshot/eval), aria snapshot + ref mechanism, named sessions, multi-browser (Chrome/Edge/Firefox), code generation replay.
Storage management (cookie/localStorage/sessionStorage), state save/load round-trip, tab management, install --skills, --profile persistent user data dir, --persistent auto userDataDir.
Recursive iframe snapshot with cross-frame refs (e.g. f3e15), Shadow DOM traversal for open shadow roots, find enhanced to search across frames and shadow boundaries.
The foundation every later release depends on. Surfaces Selenium's implicit/explicit wait, pageLoad/script timeout, and ExpectedConditions as CLI-native config — --timeout, --wait, --retry, plus config get/set/list/init.
Closes the gap vs Playwright CLI: hover, dblclick, drag, dialog accept/dismiss, upload, resize, fine-grained keyboard/mouse control, and actions-chain to combine actions into one round-trip.
Playwright-style retry-until-timeout assertions with CI-friendly exit codes: expect <ref> visible|hidden|enabled|disabled|checked|text|value|count|attribute, --not inversion, expect title/expect url.
BiDi-based network interception (route/unroute/route-list), console capture with level filtering, requests/request listing and inspection, and persistent element highlight with --style/--hide/--all via CSS overlay.
Device presets (device "iPhone 13"), geolocation/timezone/locale/color-scheme/viewport/UA/permissions, network throttling (slow3g), CPU slowdown, and offline emulation. State integrated into state-save.
Dual-track: CLI+SKILLS for coding agents, MCP Server for autonomous workflows — sharing the same tool implementation. MCP server lives in core, with a separate se-mcp wrapper package. Adds run-code, generate-locator, By.role() codegen, and spec-compliant SKILL.md frontmatter.
The Selenium moat. Real Safari via safaridriver, Selenium Grid 4 (--endpoint), custom browser/driver binaries, --browser=electron with --app-binary for Electron app testing, cloud browsers (Browserbase/Sauce/BrowserStack), Grid sharding, pdf export, and Edge IE mode for legacy scenarios.
record mode that emits a complete test file, multi-framework test code export (export --format=pytest|junit5|mocha), built-in test report generation (--report=junit|allure|html), simplified tracing, video capture (CDP or ffmpeg), video chapters, and a show dashboard for multi-session monitoring and page annotation.
A separate repo (se-extension-vscode): MCP Server registration, snapshot/screenshot Webview, status bar, and configuration settings. Following the playwright-vscode pattern.
Expand WebDriver BiDi coverage beyond v0.7 network/console — browsingContext (viewport, print, CSP bypass, downloads), input (file dialogs), script (preload scripts), emulation (cross-browser alternative to CDP). Plus daemon performance optimization (startup, snapshot efficiency, memory) and stability hardening (error recovery, session resilience, circuit breaker retry).
No version commitment — explored when the core stabilizes.
Python / Java client bindings. The CLI stays Node; bindings wrap the socket protocol.
Simplified GUI playback for recorded traces (aligned with issue #24).
BiDi DOM mutation events for live ref invalidation.
BiDi script pinning and preloading before page scripts run.
Multi-language skill files for non-English agents.
pytest-selenium / JUnit5 integration — attach to test pause points (issue #22).
iOS/Android bidirectional, Appium Grid (issue #79).
Selenium Grid 4 hub/node deploy, autoscale, health checks.
aria-ref selector engine stability; will always rely on data-se-ref attributes.Cross-reference the same roadmap from two more angles.