apireno avatar

DOMShell

apireno/domshell

DOMShell turns Chrome's accessibility tree into a virtual filesystem you navigate with ls, cd, cat, and grep. Instead of parsing screenshots or hunting for CSS selectors, your agent treats tabs as directories and buttons as files. Switch tabs with cd tabs/123, explore page structure with tree, click elements by name, and search with find. It ships as a Chrome extension with a built-in terminal and MCP server that exposes one tool wrapping all commands. Sessions get isolated tab groups automatically so agents stay in their lane while you browse normally. Reach for this when you need agents to interact with live websites deterministically, without coordinates or fragile selectors.

GitHub stars
59
tools
38
transport
STDIO, HTTP
last updated
Aug 14, 2026

Tools

38 tools

Public tool metadata for what this MCP can expose to an agent.

domshell_tabs`tabs` (list all tabs)

`tabs` (list all tabs)

No parameter schema in public metadata yet.

domshell_here`here` (jump to active tab)

`here` (jump to active tab)

No parameter schema in public metadata yet.

domshell_ls`ls [options]` (DOM or browser level)

`ls [options]` (DOM or browser level)

No parameter schema in public metadata yet.

domshell_cd`cd <path>` (`~`, `~/tabs/`, `/`, `..`)

`cd <path>` (`~`, `~/tabs/`, `/`, `..`)

No parameter schema in public metadata yet.

domshell_pwd`pwd`

`pwd`

No parameter schema in public metadata yet.

domshell_cat`cat <name>`

`cat <name>`

No parameter schema in public metadata yet.

domshell_text`text [name] [-n N] [--links]` (bulk text; `links=true` inlines URLs)

`text [name] [-n N] [--links]` (bulk text; `links=true` inlines URLs)

No parameter schema in public metadata yet.

domshell_read`read [name] [--meta] [--text] [-d N]` (structured subtree)

`read [name] [--meta] [--text] [-d N]` (structured subtree)

No parameter schema in public metadata yet.

domshell_find`find [pattern] [--type ROLE/alias] [--meta] [--text] [-n N]` (type accepts fuzzy aliases: input, dropdown, nav, etc.)

`find [pattern] [--type ROLE/alias] [--meta] [--text] [-n N]` (type accepts fuzzy aliases: input, dropdown, nav, etc.)

No parameter schema in public metadata yet.

domshell_grep`grep [-r] [-n N] [--content] <pattern>` (section discovery)

`grep [-r] [-n N] [--content] <pattern>` (section discovery)

No parameter schema in public metadata yet.

domshell_tree`tree [depth]`

`tree [depth]`

No parameter schema in public metadata yet.

domshell_extract_links`extract_links [name] [-n N]` (all links as `[text](url)`)

`extract_links [name] [-n N]` (all links as `[text](url)`)

No parameter schema in public metadata yet.

domshell_extract_table`extract_table <name> [--format csv]` (table → markdown/CSV)

`extract_table <name> [--format csv]` (table → markdown/CSV)

No parameter schema in public metadata yet.

domshell_refresh`refresh`

`refresh`

No parameter schema in public metadata yet.

domshell_navigate`navigate <url>` (current tab)

`navigate <url>` (current tab)

No parameter schema in public metadata yet.

domshell_open`open <url>` (new tab)

`open <url>` (new tab)

No parameter schema in public metadata yet.

domshell_click`click <name>`

`click <name>`

No parameter schema in public metadata yet.

domshell_focus`focus <name>`

`focus <name>`

No parameter schema in public metadata yet.

domshell_scroll`scroll [down|up] [N]` or `scroll <target>`

`scroll [down|up] [N]` or `scroll <target>`

No parameter schema in public metadata yet.

domshell_js`js <code>` (arbitrary JavaScript execution)

`js <code>` (arbitrary JavaScript execution)

No parameter schema in public metadata yet.

domshell_type`type <text>`

`type <text>`

No parameter schema in public metadata yet.

domshell_submit`submit <input> <value> [--submit btn]` (atomic form fill)

`submit <input> <value> [--submit btn]` (atomic form fill)

No parameter schema in public metadata yet.

domshell_back`back` (browser history back)

`back` (browser history back)

No parameter schema in public metadata yet.

domshell_forward`forward` (browser history forward)

`forward` (browser history forward)

No parameter schema in public metadata yet.

domshell_close`close [tab-id]` (close a tab)

`close [tab-id]` (close a tab)

No parameter schema in public metadata yet.

domshell_screenshot`screenshot` (capture tab as PNG image)

`screenshot` (capture tab as PNG image)

No parameter schema in public metadata yet.

domshell_select`select <name> <value>` (dropdown selection)

`select <name> <value>` (dropdown selection)

No parameter schema in public metadata yet.

domshell_wait`wait <pattern> [--type ROLE] [--timeout N]` (wait for element)

`wait <pattern> [--type ROLE] [--timeout N]` (wait for element)

No parameter schema in public metadata yet.

domshell_eval`eval <expression>` (read-only JS evaluation, no `--allow-write` needed)

`eval <expression>` (read-only JS evaluation, no `--allow-write` needed)

No parameter schema in public metadata yet.

domshell_diff`diff [--json]` (compare tree against pre-action snapshot)

`diff [--json]` (compare tree against pre-action snapshot)

No parameter schema in public metadata yet.

domshell_whoami`whoami`

`whoami`

No parameter schema in public metadata yet.

domshell_functions`functions [pattern] [--json]` (list callable page functions)

`functions [pattern] [--json]` (list callable page functions)

No parameter schema in public metadata yet.

domshell_call`call <funcName> [args]` (call a global JS function)

`call <funcName> [args]` (call a global JS function)

No parameter schema in public metadata yet.

domshell_watch`watch <cmd> [--interval N] [--times N] [--until-change]` (periodic re-execution)

`watch <cmd> [--interval N] [--times N] [--until-change]` (periodic re-execution)

No parameter schema in public metadata yet.

domshell_for`for <source> : <template>` (iterate over output lines, `{}` replaced)

`for <source> : <template>` (iterate over output lines, `{}` replaced)

No parameter schema in public metadata yet.

domshell_script`script list|save|show|run|delete` (scripts with `$1` substitution)

`script list|save|show|run|delete` (scripts with `$1` substitution)

No parameter schema in public metadata yet.

domshell_each`each [--pattern FILTER] <cmd>` (cross-tab operations)

`each [--pattern FILTER] <cmd>` (cross-tab operations)

No parameter schema in public metadata yet.

domshell_execute(any command)

(any command)

No parameter schema in public metadata yet.

Sponsors

Readme

DOMShell

           | |
        ___|_|___
       |___|_|___|
       |   | |   |
       |___|_|___|
        /  | |  \
       /   | |   \
      |____|_|____|
      |           |
      |  DOMSHELL |
      |           |
      |___________|
      |###########|
      |###########|
       \#########/
        \_______/
 
  ██   ██ ██ ███████
  ██   ██ ██   ███
  ███████ ██   ██
  ██░░░██ ██   ██
  ██   ██ ██   ██
  ░░   ░░ ░░   ░░
   ███████ ██   ██ ███████
     ███   ███████ ██░░░░░
     ███   ██░░░██ █████
     ███   ██   ██ ██░░░
     ███   ██   ██ ███████
     ░░░   ░░   ░░ ░░░░░░░
   ██████   ██████  ███    ███  ██
   ██   ██ ██    ██ ████  ████  ██
   ██   ██ ██    ██ ██ ████ ██  ██
   ██   ██ ██    ██ ██  ██  ██  ░░
   ██████   ██████  ██      ██  ██
   ░░░░░░   ░░░░░░  ░░      ░░  ░░

The browser is your filesystem. A Chrome Extension that lets AI agents (and humans) browse the web using standard Linux commands — ls, cd, cat, grep, click — via a terminal in the Chrome Side Panel.


View the full README on GitHub

Details

Repository
github.com/apireno/domshell
Website
pireno.com/domshell
Categories
Web & Browser Automation, AI & LLM Tools, Developer Tools
Package
@apireno/domshell
Transport
STDIO, HTTP
Registry
MCP registry, active

Related Web & Browser Automation MCP servers

View all
1retio-ai avatarPageMapretio-ai/retio-pagemapStructured web intelligence for AI agents. 5x fewer tokens than Playwright/Firecrawl, 84.7% accuracy32stars
2harusame64 avatarDesktop Touch Mcpharusame64/desktop-touch-mcpComputer-use MCP for Windows 10/11: 32 tools — screenshot, UIA, Chrome CDP, type/click/scroll, VBA.25stars
3codelipenghui avatarMcp Matcodelipenghui/mcp-matHeadless Eclipse MAT MCP server for Java heap dump analysis19stars
4browserless avatarBrowserlessbrowserless/browserless-mcpOfficial Browserless MCP server: browser automation, scraping, screenshots and PDFs for AI agents.19stars
5kaael1 avatarMcp Power Automatekaael1/mcp-power-automateLocal MCP for Power Automate with browser-backed auth, target locking, review diff, and rollback.18stars
6multiplex-ai avatarMuggle Worksmultiplex-ai/muggle-ai-worksAcceptance test agent for coding agents: real-browser tests, with screenshots on the PR.16stars