sideshell
Allows AI agents to execute commands in a visible iTerm2 terminal pane, maintaining session persistence and allowing user intervention.
Integrates with JetBrains IDEs via a plugin to run commands in a terminal within the IDE, supporting persistent sessions and user interaction.
Enables AI agents to run commands in a tmux session, providing a persistent terminal with visible history and intervention capability.
Provides integration with WezTerm for running commands in a persistent, visible terminal pane.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@sideshellrun 'python -m http.server' in a new side terminal"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
sideshell
AI sidecar terminal — let Claude/Cursor run commands in a visible, persistent terminal you control.
Why?
When AI assistants run shell commands, they execute in a hidden terminal:
❌ No visible history
❌ Can't intervene (enter password, confirm prompts)
❌ Output mixed with AI conversation
sideshell runs commands in a separate visible terminal:
✅ Full command history visible
✅ Persistent session (survives AI restarts)
✅ Intervene anytime (passwords, confirmations)
✅ Clean separation from AI conversation
Related MCP server: TermPipe MCP
Supported Terminals
Terminal | Platform | Status |
iTerm2 | macOS | ✅ Full support (native Python API) |
tmux | macOS, Linux, WSL | ✅ Full support |
WezTerm | macOS, Linux, Windows | ✅ Full support |
Kitty | macOS, Linux | ✅ Full support |
Ghostty | macOS | ✅ Full support ( |
maquake | macOS | ✅ Full support (drop-down terminal via Unix socket) |
VS Code / Cursor | macOS, Linux, Windows | ✅ Full support (via extension, Unix-socket bridge) |
JetBrains IDEs | macOS, Linux, Windows | ✅ Full support (via plugin, Unix-socket bridge) |
Features
Multi-Backend - Works with iTerm2, tmux, WezTerm, Kitty, Ghostty, maquake, VS Code/Cursor, or JetBrains IDEs
Sidecar Terminal - AI commands run in a visible terminal pane
You Stay in Control - See everything, intervene anytime
Session Persistence - Terminal survives AI session restarts
TUI Support - Arrow keys, F1-F12, Ctrl+C/D/Z for interactive apps
Focus Management - Optionally returns focus after operations
Installation
Using uvx (Recommended)
# Install uv first
curl -LsSf https://astral.sh/uv/install.sh | sh
# Run sideshell
uvx sideshell-mcpClaude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"sideshell": {
"command": "uvx",
"args": ["sideshell-mcp"]
}
}
}Using pipx
pipx install sideshell-mcp
sideshell-mcpBackend Selection
# Auto-detect (default)
uvx sideshell-mcp
# Force specific backend
uvx sideshell-mcp --backend=tmux
uvx sideshell-mcp --backend=iterm2Available Tools (17)
Tool | Description |
| Execute commands (supports |
| Read terminal output |
| Send special keys: Ctrl+C/D/Z, arrows, F1-F12, Home/End, PageUp/Down |
| List all windows/tabs/sessions |
| Split pane horizontally or vertically |
| Create new window |
| Create new tab |
| Smart session creation (splits if window exists) |
| Focus specific session |
| Close terminal session |
| Set tab title, badge, and color |
| Get detailed terminal state |
| List available color presets |
| Apply color preset |
| Show alert dialog |
| Clear terminal screen |
| Paste text to terminal |
MCP Resources
Resource | Description |
| List all terminal sessions |
| Backend features and system info |
| Session details |
| Screen content |
Prerequisites
iTerm2 (macOS)
Open iTerm2 → Preferences → General → Magic
Enable "Enable Python API"
Restart iTerm2
tmux
# macOS
brew install tmux
# Ubuntu/Debian
sudo apt install tmuxWezTerm
Download from wezfurlong.org/wezterm
Kitty
# macOS
brew install --cask kitty
# Linux
curl -L https://sw.kovidgoyal.net/kitty/installer.sh | shArchitecture
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ MCP Client │────▶│ sideshell │────▶│ Terminal │
│ (Claude) │ │ MCP Server │ │ Backend │
└─────────────┘ └──────────────┘ └─────────────┘
│
┌───────┴────────────┐
│ Backends │
├────────────────────┤
│ • iTerm2 │
│ • tmux │
│ • WezTerm │
│ • Kitty │
│ • Ghostty │
│ • maquake │
│ • VS Code / Cursor │
│ • JetBrains IDEs │
└────────────────────┘VS Code/Cursor and JetBrains backends talk to their IDE extension/plugin over a
local Unix domain socket (~/.sideshell/<ide>.sock) using newline-delimited
JSON-RPC 2.0 with a token handshake.
Development
git clone https://github.com/menemy/sideshell
cd sideshell
uv pip install -e ".[dev]"
# Run tests
python tests/test_iterm2_backend.py # iTerm2
python tests/test_tmux_backend.py # tmux
python tests/test_wezterm_backend.py # WezTerm
python tests/test_kitty_backend.py # Kitty
# Lint & format
ruff format .
ruff check . --fixRequirements
Python 3.11+
One of: iTerm2, tmux, WezTerm, Kitty, Ghostty, maquake, VS Code/Cursor, or a JetBrains IDE
License
MIT
Contributing
Fork the repository
Create a feature branch
Add tests for new functionality
Ensure all tests pass
Submit a pull request
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/menemy/sideshell'
If you have feedback or need assistance with the MCP directory API, please join our Discord server