claude-tmux-bridge

claude-tmux-bridge

An MCP server that connects Claude Desktop to an interactive Claude Code session running in a tmux terminal.

Category
Visit Server

README

Claude Code MCP — tmux Bridge

An MCP server that connects Claude Desktop to an interactive Claude Code session running in a tmux terminal. Instead of spawning a one-shot process per prompt, it communicates with a persistent, visible session — so you can watch Claude work in real time while Desktop orchestrates the tasks.

How It Works

Claude Desktop  →  claude_code MCP tool  →  tmux session  →  Claude Code (interactive)
                        (this repo)
  • Claude Desktop holds your project context, design decisions, and task history. It generates prompts and knows what needs to be done next.
  • Claude Code runs interactively in a tmux terminal you can watch. It has access to all your configured MCP tools and retains full conversation history between calls.
  • This server is the pipe between them — it delivers Desktop's prompts to Code's session and brings the response back.

Requirements

  • macOS
  • Node.js v20 or later
  • tmuxbrew install tmux
  • Claude Code CLI — npm install -g @anthropic-ai/claude-code

Setup

1. Install this server

git clone https://github.com/DaRealDaHoodie/claude-tmux-bridge.git
cd claude-tmux-bridge
npm install
npm run build

2. Configure Claude Desktop

Add this server to your Claude Desktop MCP config (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "claude-tmux-bridge": {
      "command": "node",
      "args": ["/path/to/claude-tmux-bridge/dist/server.js"]
    }
  }
}

Restart Claude Desktop after saving.

Using the Tool

Once configured, Claude Desktop has access to the claude_code tool. When sending a prompt tell Desktop:

  • What to do — the task or question for Claude Code
  • Which project — pass workFolder as the absolute path to your project directory

Example instruction to Desktop:

Use the claude_code tool with workFolder /Users/you/my-project and ask Claude Code to implement the feature we just designed.

Everything else is automatic — the tmux session and Claude Code instance are created on first use.

Session Naming

The tmux session name is derived from your project folder's basename:

workFolder Session name
/Users/you/my-project claude-my-project
/Users/you/other-project claude-other-project
(not provided) claude-code

Watching Claude Work

Sessions run in the background automatically. Attach any time to watch:

tmux attach -t claude-my-project
# Detach with Ctrl+B D

Tool Parameters

Parameter Type Required Description
prompt string yes The prompt to send to Claude Code
workFolder string no Absolute path to project — determines the session
timeout number no Max seconds to wait for a response (default: 300)

Behaviour

  • Session not found — auto-creates the tmux session rooted at workFolder
  • Claude Code not running — auto-launches claude in the session and waits up to 30s for it to be ready
  • Session busy — rejects with a "still busy" message; does not queue
  • Timeout — auto-recovers on next call by checking if Claude has since finished
  • Conversation history — fully preserved between calls (same interactive session)

Environment Variables

Variable Default Description
MCP_CLAUDE_DEBUG false Set to true for verbose debug logging
MCP_STARTUP_DELAY_MS 1000 Wait after sending prompt before polling starts
MCP_POLL_INTERVAL_MS 1500 How often to poll the pane for output changes
MCP_STABLE_THRESHOLD_MS 3000 Fallback: ms of no change before declaring done
MCP_CLAUDE_READY_TIMEOUT 30000 Max ms to wait for Claude Code to start up

Multiple Projects

Each project gets its own named tmux session. You can have multiple sessions open simultaneously — just pass the correct workFolder and Desktop will target the right one.

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured