Browse the web with filesystem commands. 38 MCP tools: ls, cd, grep, click, type via Chrome.
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"domshell": {
"args": [
"-y",
"@apireno/domshell",
"--allow-write",
"--no-confirm",
"--token",
"my-secret-token"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
██████ ██████ ███ ███ ██ ██ ██ ██ ██ ████ ████ ██ ██ ██ ██ ██ ██ ████ ██ ██ ██ ██ ██ ██ ██ ██ ██ ░░ ██████ ██████ ██ ██ ██ ░░░░░░ ░░░░░░ ░░ ░░ ░░
Run this in your terminal to verify the server starts. Then let us know if it worked — your result helps other developers.
npx -y '@apireno/domshell' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
Checked @apireno/domshell against OSV.dev.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in browser / developer-tools
Read, write, and manage files on the local filesystem
Browser automation with Puppeteer for web scraping and testing
A Model Context Protocol (MCP) server and CLI that provides tools for agent use when working on iOS and macOS projects.
Manage Supabase projects — databases, auth, storage, and edge functions
MCP Security Weekly
Get CVE alerts and security updates for Domshell MCP Server and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
| |
___|_|___
|___|_|___|
| | | |
|___|_|___|
/ | | \
/ | | \
|____|_|____|
| |
| 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.
Install from Chrome Web Store | npm package | Read the blog post | Project home
DOMShell maps the browser into a virtual filesystem. Windows and tabs become top-level directories (~). Each tab's Accessibility Tree becomes a nested filesystem where container elements are directories and buttons, links, and inputs are files. Navigate Chrome the same way you'd navigate /usr/local/bin.
AI agents that interact with websites typically rely on screenshots, pixel coordinates, or brittle CSS selectors. DOMShell takes a different approach: it exposes the browser's own Accessibility Tree as a familiar filesystem metaphor.
This means an agent can:
ls ~/tabs/ and switch with cd ~/tabs/123 instead of guessing which tab is activels and tree instead of parsing screenshotscd navigation/ instead of guessing coordinatesclick submit_btn instead of fragile DOM queriescat or bulk-extract with text instead of scraping innerHTMLfind --type combobox instead of writing selectorsThe filesystem abstraction is deterministic, semantic, and works on any website — no site-specific adapters needed.
Install DOMShell directly from the Chrome Web Store. No build step required.
git clone https://github.com/apireno/DOMShell.git
cd DOMShell
npm install
npm run build
chrome://extensions/dist/ folderOpen any webpage, then open the DOMShell side panel. You'll see a terminal:
╔══════════════════════════════════════╗
║ DOMShell v1.1.0 ║
║ The browser is your filesystem. ║
╚══════════════════════════════════════╝
Type 'help' to see available commands.
Type 'tabs' to see open browser tabs, then 'cd tabs/<id>' to enter one.
dom@shell:~$
You start at ~ (the browser root). Jump straight to the active tab with here, or explore:
dom@shell:~$ ls
windows/ (2 windows)
tabs/ (5 tabs)
dom@shell:~$ here
✓ Entered tab 123
Title: Google
URL: https://google.com
AX Nodes: 247
# List all open tabs
dom@shell:~$ tabs
ID TITLE URL WIN
123 Google google.com 1
124 GitHub - apireno github.com/apireno 1
125 Wikipedia e
... [View full README on GitHub](https://github.com/apireno/DOMShell#readme)