
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 toolsPublic 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.
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