- Shell Proxy
Shell Proxy
shellproxy is a clean command execution proxy for AI agents, solving the "terminal blindness" problem — garbage characters, ANSI escape codes, shell init noise, and encoding issues that make AI agents unable to read terminal output.
It sits between AI agents and terminals, executing commands in a clean, controlled environment and returning structured JSON output.
Overview
shellproxy
shellproxy is a clean command execution proxy for AI agents, solving the "terminal blindness" problem — garbage characters, ANSI escape codes, shell init noise, and encoding issues that make AI agents unable to read terminal output.
It sits between AI agents and terminals, executing commands in a clean, controlled environment and returning structured JSON output.
Features
- ANSI stripping — removes all color codes, cursor movements, and control sequences
- Shell init bypass — runs
bash --norc --noprofile, PowerShell with-NoProfile, etc. - Auto shell detection — prefers WSL bash on Windows, falls back to cmd; bash/sh on Unix
- Structured JSON output —
exit_code,stdout,stderr,duration_ms,shell,truncated - Streaming mode — line-by-line output for long-running commands
- File output — write results to a file in addition to stdout
- MCP server — exposes
run_commandandrun_command_streamas MCP tools - Configurable — env vars, config file
~/.shellproxy.json, or CLI flags
Installation
Unix (Linux, macOS, WSL)
curl -sSL https://raw.githubusercontent.com/aliforever/shellproxy/main/install.sh | sh
Windows (PowerShell)
irm https://raw.githubusercontent.com/aliforever/shellproxy/main/install.ps1 | iex
From source
git clone https://github.com/aliforever/shellproxy
cd shellproxy
go build -o shellproxy .
Usage
Run a command (buffered)
shellproxy run "echo hello world"
Output:
{
"exit_code": 0,
"stdout": "hello world\n",
"stderr": "",
"duration_ms": 12,
"shell": "wsl",
"truncated": false
}
Run with plain text output
shellproxy run --output text "ls -la"
Stream output line by line
shellproxy run --stream "npm install"
Output:
[stdout] added 342 packages in 4.2s
[stdout] found 0 vulnerabilities
--- exit_code: 0 | duration: 4213ms | shell: wsl ---
Write result to file
shellproxy run --file /tmp/result.json "go build ./..."
Specify a shell explicitly
shellproxy run --shell cmd "dir"
shellproxy run --shell bash "cat /etc/os-release"
shellproxy run --shell pwsh "Get-Date"
Inject environment variables
shellproxy run --env "NODE_ENV=production" --env "PORT=8080" "node server.js"
Set a timeout
shellproxy run --timeout 30 "long-running-command"
Truncate large output
shellproxy run --truncate 4096 "cat large-file.log"
MCP Server Mode
Start shellproxy as an MCP server over stdio:
shellproxy serve
AI Client Configuration
Add shellproxy to your AI client's MCP config:
{
"mcpServers": {
"shellproxy": {
"command": "shellproxy",
"args": ["serve"],
"env": {
"SHELLPROXY_SHELL": "auto",
"SHELLPROXY_TIMEOUT": "60"
}
}
}
}
Available MCP Tools
| Tool | Description |
|---|---|
run_command | Execute a command and return complete JSON result |
run_command_stream | Execute a command and return output line-by-line |
run_command parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
command | string | ✓ | Shell command to execute |
shell | string | auto, cmd, bash, wsl, pwsh, sh | |
cwd | string | Working directory | |
timeout_seconds | number | Timeout (0 = no limit) | |
env | object | Extra env vars as {"KEY": "VALUE"} | |
truncate_bytes | number | Max output size in bytes |
Configuration
shellproxy can be configured via environment variables or a JSON config file.
Config file: ~/.shellproxy.json
{
"shell": "auto",
"timeout_seconds": 60,
"strip_ansi": true,
"output_mode": "buffered",
"output_file": "",
"truncate_bytes": 0
}
Environment variables
| Variable | Default | Description |
|---|---|---|
SHELLPROXY_SHELL | auto | Shell to use |
SHELLPROXY_TIMEOUT | 60 | Timeout in seconds |
SHELLPROXY_STRIP_ANSI | true | Strip ANSI codes (0/false to disable) |
SHELLPROXY_OUTPUT_MODE | buffered | buffered, stream, or file |
SHELLPROXY_OUTPUT_FILE | File path for file output mode | |
SHELLPROXY_TRUNCATE_BYTES | 0 | Truncate output at N bytes |
SHELLPROXY_CONFIG | ~/.shellproxy.json | Override config file path |
Global Flags
Flags:
--shell string Shell to use: auto, cmd, bash, wsl, pwsh, sh (default "auto")
--timeout int Command timeout in seconds 0 = no timeout (default 60)
--strip-ansi Strip ANSI escape codes from output (default true)
-h, --help help for shellproxy
Building from Source
# Build for current platform
make build
# Build for all platforms
make build-all
# Run tests
make test
# Run specific test suites
make test-strip # ANSI stripping tests
make test-detect # Shell detection tests
make test-exec # Integration exec tests
License
MIT
Server Config
{
"mcpServers": {
"shellproxy": {
"command": "shellproxy",
"args": [
"serve"
],
"env": {
"SHELLPROXY_SHELL": "auto",
"SHELLPROXY_STRIP_ANSI": "true",
"SHELLPROXY_TIMEOUT": "60"
}
}
}
}Recommend Servers
TraeBuild with Free GPT-4.1 & Claude 3.7. Fully MCP-Ready.
Y GuiA web-based graphical interface for AI chat interactions with support for multiple AI models and MCP (Model Context Protocol) servers.
ChatWiseThe second fastest AI chatbot™
AiimagemultistyleA Model Context Protocol (MCP) server for image generation and manipulation using fal.ai's Stable Diffusion model.
WindsurfThe new purpose-built IDE to harness magic
CursorThe AI Code Editor
Baidu Map百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
MCP AdvisorMCP Advisor & Installation - Use the right MCP server for your needs
Jina AI MCP ToolsA Model Context Protocol (MCP) server that integrates with Jina AI Search Foundation APIs.
Playwright McpPlaywright MCP server
Amap Maps高德地图官方 MCP Server
BlenderBlenderMCP connects Blender to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Blender. This integration enables prompt assisted 3D modeling, scene creation, and manipulation.
Howtocook Mcp基于Anduin2017 / HowToCook (程序员在家做饭指南)的mcp server,帮你推荐菜谱、规划膳食,解决“今天吃什么“的世纪难题;
Based on Anduin2017/HowToCook (Programmer's Guide to Cooking at Home), MCP Server helps you recommend recipes, plan meals, and solve the century old problem of "what to eat today"
Tavily Mcp
RedisA Model Context Protocol server that provides access to Redis databases. This server enables LLMs to interact with Redis key-value stores through a set of standardized tools.
Zhipu Web SearchZhipu Web Search MCP Server is a search engine specifically designed for large models. It integrates four search engines, allowing users to flexibly compare and switch between them. Building upon the web crawling and ranking capabilities of traditional search engines, it enhances intent recognition capabilities, returning results more suitable for large model processing (such as webpage titles, URLs, summaries, site names, site icons, etc.). This helps AI applications achieve "dynamic knowledge acquisition" and "precise scenario adaptation" capabilities.
EdgeOne Pages MCPAn MCP service designed for deploying HTML content to EdgeOne Pages and obtaining an accessible public URL.
Visual Studio Code - Open Source ("Code - OSS")Visual Studio Code
DeepChatYour AI Partner on Desktop
MiniMax MCPOfficial MiniMax Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech, image generation and video generation APIs.
Serper MCP ServerA Serper MCP Server