shell-use

Official registry AI and agents

Let agents use the shell like a human.

What can you do with shell-use?

  • Interact with any CLI application (vim, htop, gdb, etc.)
  • Send special keys (Ctrl+C, Enter, arrow keys, etc.)
  • Dockerized for easy deployment

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

OCI package ghcr.io/kyuheon-kr/shell-use:1.0.0
Claude Code
claude mcp add shell-use -e 'SHELL_USE_SESSIONS=<SHELL_USE_SESSIONS>' -e 'SHELL_USE_SOCKET=<SHELL_USE_SOCKET>' -- docker run -i --rm ghcr.io/kyuheon-kr/shell-use:1.0.0
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "shell-use": {
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "ghcr.io/kyuheon-kr/shell-use:1.0.0"
            ],
            "env": {
                "SHELL_USE_SESSIONS": "<SHELL_USE_SESSIONS>",
                "SHELL_USE_SOCKET": "<SHELL_USE_SOCKET>"
            }
        }
    }
}

Environment variables

  • SHELL_USE_SESSIONS required Comma-separated list of allowed session names
  • SHELL_USE_SOCKET Path to tmux socket (default: /tmux/tmux.sock in Docker)

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

shell-use

Let agents use the shell like a human.


Features
  • Interact with any CLI application (vim, htop, gdb, etc.)
  • Send special keys (Ctrl+C, Enter, arrow keys, etc.)
  • Dockerized for easy deployment
Available Tools
ToolDescription
list_sessions()Returns allowed session names
capture(session, scroll_back?)Captures terminal screen text
send_keys(session, keys)Sends key input (e.g., Enter, C-c)
send_text(session, text, enter?)Sends literal text (enter=True to press Enter)
scroll(session, direction, amount?)Scrolls through history
exit_scroll_mode(session)Exits copy-mode

Setup
1. Build the Docker image
docker build -t shell-use:latest .
2. Create a tmux session
tmux new-session -s dev
2.1. Get the tmux socket path
SOCK="$(tmux display-message -p -F '#{socket_path}')"
[ -S "$SOCK" ] || { echo "tmux socket not found: $SOCK"; exit 1; }
3. Configure your MCP client

Claude Code:

claude mcp add shell-use \
  -- docker run -i --rm \
  -v "$SOCK":/tmux/tmux.sock \
  -e SHELL_USE_SOCKET=/tmux/tmux.sock \
  -e SHELL_USE_SESSIONS=dev \
  shell-use:latest

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "shell-use": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-v", "/tmp/tmux-1000/default:/tmux/tmux.sock",
        "-e", "SHELL_USE_SOCKET=/tmux/tmux.sock",
        "-e", "SHELL_USE_SESSIONS=dev",
        "shell-use:latest"
      ]
    }
  }
}

Replace /tmp/tmux-1000/default with the path from tmux display-message -p -F '#{socket_path}'.


Environment Variables
VariableDescriptionRequired
SHELL_USE_SESSIONSComma-separated list of allowed session namesYes
SHELL_USE_SOCKETPath to tmux socket (default: /tmux/tmux.sock in Docker)No

Acknowledgments

Inspired by browser-use.

Frequently asked questions

What is shell-use?

Let agents use the shell like a human.

How do I install shell-use?

It runs on your machine. In Claude Code: claude mcp add shell-use -e 'SHELL_USE_SESSIONS=<SHELL_USE_SESSIONS>' -e 'SHELL_USE_SOCKET=<SHELL_USE_SOCKET>' -- docker run -i --rm ghcr.io/kyuheon-kr/shell-use:1.0.0. For other clients, paste the JSON configuration from this page into their MCP settings.

Does shell-use need an API key?

Yes. It expects SHELL_USE_SESSIONS, which you set in its configuration.

Is shell-use open source?

Yes. Its code is on GitHub under the MIT license.

Who maintains shell-use?

It is published by kyuheon-kr. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.