
Research
GemStuffer Campaign Abuses RubyGems as Exfiltration Channel Targeting UK Local Government
GemStuffer abuses RubyGems as an exfiltration channel, packaging scraped UK council portal data into junk gems published from new accounts.
@dwmkerr/shellwright-mcp-server
Advanced tools
Playwright for the shell - MCP server for terminal recording and automation
🖥️ shellwrightUser: Open Vim. Tell me how to close it. Close it. Record this as a video.
Quickstart | Examples | MCP Tools | Configuration
Configure your LLM, IDE or whatever to use the Shellwright MCP server:
{
"mcpServers": {
"shellwright": {
"command": "npx",
"args": ["-y", "shellwright-mcp-server"]
}
}
}
Running Locally
Run the MCP server:
npm install
npm run dev
The server runs at http://localhost:7498/mcp.
Testing with the MCP Inspector
Open the MCP Inspector in another terminal and connect to http://localhost:7498/mcp to list and test tools:
# Open MCP inspector in another terminal.
npx @modelcontextprotocol/inspector
# Now connect to:
# http://localhost:7498/mcp
Testing with an Agent
Run the demo.py program to chat to an agent that has the Shellwright tool:
# Optionally setup your .env to specify configuration.
# cp ./demo/.env.sample .env && vi .env
# Install requirements and run the agent.
pip install -r ./demo/requirements.txt
python ./demo/demo.py
# Output:
# User (enter message): Show me what the htop tool looks like showing me my resources.
# ...or provide a message directly.
python ./demo/demo.py -- "Run a shell command to show me the names \
of the folders in this directory and take a screenshot and give me its path"
You will see logs from the MCP server and the demo agent:

Screenshots and videos by default will be written to ./output.
Have fun with some prompts:
Open Vim. Write a message saying how to close Vim. Close Vim. Give me a screenshot of each step and a GIF recording.
| Tool | Description |
|---|---|
shell_start | Start a new PTY session |
shell_send | Send input to a session |
shell_read | Read the terminal buffer |
shell_snapshot | Get terminal screen as text grid |
shell_screenshot | Save terminal state to txt, svg, png |
shell_record_start | Start recording for GIF export |
shell_record_stop | Stop recording and export GIF |
shell_stop | Stop a PTY session |
| Variable | Parameter | Default | Description |
|---|---|---|---|
PORT | --port, -p | 7498 | Server port ("SWRT" on a phone keypad) |
THEME | --theme, -t | one-dark | Color theme (one-dark, one-light, dracula, solarized-dark, nord) |
TEMP_DIR | --temp-dir | /tmp/shellwright | Directory for recording frames |
MIT
FAQs
Playwright for the shell - MCP server for terminal recording and automation
We found that @dwmkerr/shellwright-mcp-server demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
GemStuffer abuses RubyGems as an exfiltration channel, packaging scraped UK council portal data into junk gems published from new accounts.

Company News
Socket was named to the Rising in Cyber 2026 list, recognizing 30 private cybersecurity startups selected by CISOs and security executives.

Research
Socket detected 84 compromised TanStack npm package artifacts modified with suspected CI credential-stealing malware.