Skip to content

apireno/DOMShell

vmcp-v2.0.1 scope: mcp Feature

This release adds 3 notable features for engineering teams evaluating rollout.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Affected surfaces

auth breaking_upgrade

Summary

AI summary

Updates Headline, Also fixed, and Known follow-ups across a mixed release.

Changes in this release

Feature Low

Adds new `key` command to dispatch keyboard events (Enter, Escape, arrows, F‑keys, chars with modifiers).

Adds new `key` command to dispatch keyboard events (Enter, Escape, arrows, F‑keys, chars with modifiers).

Source: llm_adapter@2026-05-26

Confidence: high

Feature Low

Adds MCP tool annotations (`readOnlyHint`, `destructiveHint`, `openWorldHint`) for context‑aware UI rendering in hosts like Claude Desktop and Cursor.

Adds MCP tool annotations (`readOnlyHint`, `destructiveHint`, `openWorldHint`) for context‑aware UI rendering in hosts like Claude Desktop and Cursor.

Source: llm_adapter@2026-05-26

Confidence: high

Dependency Low

Updates DOMShell Chrome extension to version 1.3.1 (bug‑fix release) and MCP server package @apireno/domshell to 2.0.1.

Updates DOMShell Chrome extension to version 1.3.1 (bug‑fix release) and MCP server package @apireno/domshell to 2.0.1.

Source: llm_adapter@2026-05-26

Confidence: high

Bugfix Medium

`navigate` no longer leaves AX tree stuck on previous page; fixes `cdpSwitchToTab` fast path caching.

`navigate` no longer leaves AX tree stuck on previous page; fixes `cdpSwitchToTab` fast path caching.

Source: llm_adapter@2026-05-26

Confidence: high

Bugfix Medium

Clicks now dispatch trusted browser events by default, ensuring `event.isTrusted` is true for DOMShell clicks.

Clicks now dispatch trusted browser events by default, ensuring `event.isTrusted` is true for DOMShell clicks.

Source: llm_adapter@2026-05-26

Confidence: high

Bugfix Low

Per-action terminal confirmation is OFF by default in MCP server; adds `--confirm` flag to re‑enable prompts and fixes underlying TTY deadlock.

Per-action terminal confirmation is OFF by default in MCP server; adds `--confirm` flag to re‑enable prompts and fixes underlying TTY deadlock.

Source: llm_adapter@2026-05-26

Confidence: high

Bugfix Low

Limits `js`/`eval` timeout to 30 seconds with best‑effort cleanup; non‑resolving Promises no longer hang MCP calls.

Limits `js`/`eval` timeout to 30 seconds with best‑effort cleanup; non‑resolving Promises no longer hang MCP calls.

Source: llm_adapter@2026-05-26

Confidence: high

Bugfix Low

Improves `scroll down`/`scroll up` to advance virtualized lists by walking up from cursor to nearest scrollable ancestor; adds `--window` flag for document‑level scrolling.

Improves `scroll down`/`scroll up` to advance virtualized lists by walking up from cursor to nearest scrollable ancestor; adds `--window` flag for document‑level scrolling.

Source: llm_adapter@2026-05-26

Confidence: high

Bugfix Low

Fixes `ls <path>` to actually respect the supplied path argument instead of silently ignoring it.

Fixes `ls <path>` to actually respect the supplied path argument instead of silently ignoring it.

Source: llm_adapter@2026-05-26

Confidence: high

Bugfix Low

Enhances `cd` diagnostic to list available subdirectories and suggest using `tree` for deeper navigation.

Enhances `cd` diagnostic to list available subdirectories and suggest using `tree` for deeper navigation.

Source: llm_adapter@2026-05-26

Confidence: high

Full changelog

Bug-sweep patch built on top of 2.0.0 / 1.3.0. Real-world stress-testing against LinkedIn surfaced a stack of issues — all addressed in one tight cycle.

Headline

  • navigate no longer leaves the AX tree stuck on the previous page (#36) — cdpSwitchToTab's fast path was returning the pre-navigation cached tree because nothing invalidated it. Same fix covers back and forward.
  • Clicks now dispatch trusted browser events by default (#37) — React-driven SPAs (LinkedIn, Twitter/X, Notion, …) and any code checking event.isTrusted no longer silently ignore DOMShell clicks.
  • New key command (#40) — dispatch keyboard events (Enter, Escape, arrows, F-keys, single chars with modifiers) to the focused element. Three-round fix: special keys go through rawKeyDown (else Chrome drops them); auto-selects between trusted CDP and JS synthetic based on whether the target tab is the active tab in its window; --activate opt-in flag for explicit trusted dispatch with focus restore.
  • Per-action terminal confirmation is OFF by default in the MCP server (#39) — the architecture is now "server tags tier in metadata, host owns the prompt." --no-confirm is preserved as a no-op for backward compatibility; new --confirm flag re-enables prompts for users running the server in their own terminal. Underlying TTY deadlock fixed.
  • MCP tool annotations (#39 follow-up — credit @m13v) — all 38 tools now carry readOnlyHint / destructiveHint / openWorldHint so hosts (Claude Desktop, Cursor) can render context-aware approval UIs with the surrounding conversation context.

Also fixed

  • js / eval timeout (#38) — 30-second cap with best-effort Runtime.terminateExecution cleanup; non-resolving Promises no longer hang the MCP call.
  • scroll down / scroll up advance virtualized lists (#35) — walks up from the cursor to find the nearest scrollable ancestor; --window flag forces document scroll.
  • ls <path> (#41) — actually respects the path argument now (was silently ignored).
  • cd diagnostic (#42) — failure messages list available subdirectories and point at tree for deeper paths.

Versions in this release

  • @apireno/domshell (MCP server) — 2.0.1 (this tag, shipping to npm)
  • DOMShell Chrome extension — 1.3.1 (tag extension-v1.3.1)

Known follow-ups

  • #42cd/ls/tree view parity (open for clean repro; the diagnostic message is the interim improvement).
  • #45 — AX-tree collapsing hides React-handler-bearing inner divs (the structural reason LinkedIn's <li> rows still don't activate via DOMShell even with trusted keys; out of scope for this patch).

Web Store

Chrome extension 1.3.1 ships when 1.3.0 clears its in-flight Web Store review (1.3.0 carries the new tabGroups permission — a code-only 1.3.1 should sail through). The packaged ZIP is built from this tag (sha256 7cfc05ea76e58099a66305bbbf16959047a17f39a5a81acf1768fb746fc9add9).

See CHANGELOG.md for the full per-bullet detail.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track apireno/DOMShell

Get notified when new releases ship.

Sign up free

About apireno/DOMShell

Browse the web using filesystem commands (ls, cd, grep, click). 38 MCP tools map Chrome's Accessibility Tree to a virtual filesystem via a Chrome Extension.

All releases →

Beta — feedback welcome: [email protected]