Starmux — All-in-One Self-Hosted Remote MCP Server & Gateway

io.github.cookyecatPublished by GitHub account cookyecatv0.16.2Updated Nov 7, 2026

All-in-one remote MCP server & gateway: built-in file, terminal, process & stdio tools over HTTP.

The publisher's own server: Registry Mcp

Overview

AI-generated overview

Self-hosted daemon that exposes filesystem, terminal, process and Git tools to AI clients over Streamable HTTP, and multiplexes other local MCP servers.

What you can do
  • Read, write and list files, search code with ripgrep, and apply diff-based edits
  • Run interactive shell/PTY sessions, read output, and list or kill background processes
  • Run Git workflows and switch between read-only and coding permission modes
  • Serve a Streamable HTTP endpoint and multiplex extra local stdio MCP servers behind one port
  • Manage per-client API keys, OAuth sessions and instances from a CLI or local admin dashboard
When to use it
Use it when you want a cloud or desktop AI client to inspect and operate files and a shell on a machine that has no native agent app, such as a headless Linux server or ARM64 board, or when you want several local stdio MCP servers behind one authenticated HTTP endpoint.
Requirements
Node.js 22.12+ on macOS, Linux (x64/ARM64) or Windows; installed globally from npm and started with the starmux up command. It listens on 127.0.0.1:18893 by default; remote or cloud clients need port forwarding, a reverse proxy or a tunnel. OAuth 2.0 mode requires a self-hosted Keycloak.
Before you install
Authentication is None by default, so anyone who can reach the endpoint gets the tools; add Bearer API keys or OAuth before exposing it. Coding mode runs shell and file tools with your OS account's permissions and the project directory is only a working context, not a sandbox. Read-only mode is the safer default. Exposing it through tunnels or public proxies sends tool traffic beyond your network.

Installation

In SourceWeft

  1. Open Starmux — All-in-One Self-Hosted Remote MCP Server & Gateway in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Starmux — All-in-One Self-Hosted Remote MCP Server & Gateway

One turnkey daemon for remote filesystem, terminal, background processes, auth, and stdio MCP multiplexing—no manual component assembly required.

All-in-One Remote MCP Server · Streamable HTTP Gateway · Built-in Filesystem, Terminal, Process & Git Tools · stdio Multiplexer · MIT

Why Starmux? · All-in-One vs. DIY Stacks · Quick Start · Auth & Multi-Instance Permissions · Use Cases · macOS App · Documentation


Why Starmux?

Cloud AI assistants (like ChatGPT Web, Claude, or Doubao) are isolated in the browser, and many desktop coding agents (like WorkBuddy, Cursor, Claude Code, Codex, Antigravity, DSH-Harness, Kimi Code, Minimax Code, or ZCode) lack native apps for headless Linux servers or ARM64 edge boards.

Normally, solving this requires manually assembling 3–4 separate open-source tools: a local tool server (DesktopCommanderMCP or filesystem-mcp), a stdio-to-HTTP transport adapter (supergateway or mcp-proxy), an authentication/aggregation gateway (MCPHub or ContextForge), and a process supervisor.

Starmux (Star topology + Multiplexer) replaces that entire fragmented chain with a single, turnkey self-hosted daemon (starmux up):

text
Traditional DIY Stack:  [Filesystem/Terminal MCP] + [supergateway / mcp-proxy] + [Auth/Aggregator Gateway] + [Supervisor]Starmux (All-in-One):   [                   Single 'starmux up' Daemon (127.0.0.1:18893/mcp)                   ]
  • Turnkey Filesystem, Diff File Editing, Terminal & Process Management (Desktop Commander Engine): Out of the box—with zero external MCP servers to install—AI clients can read/write local files (read_file, write_file, list_directory), run ripgrep code searches (start_search), perform surgical diff edits (edit_block), control interactive PTY/Shell terminal sessions (start_process, interact_with_process, read_process_output), manage background processes (list_processes, kill_process, force_terminate), and run Git workflows.
  • Operate Headless Linux, NVIDIA Jetson (ARM64), macOS & Windows Remotely: Desktop AI clients like WorkBuddy or ChatGPT have no native Linux or ARM64 desktop app. Run Starmux on your target Linux workstation, NVIDIA Jetson Orin, or server, and drive its filesystem and terminal remotely from your Mac/PC or browser.
  • Built-in stdio-to-Streamable HTTP Bridge & Multi-Server Aggregator: Exposes a native Streamable HTTP (/mcp) endpoint directly and can multiplex your own extra local stdio MCP servers (upstreams) behind the same port—no separate supergateway or mcp-proxy wrapper needed.
  • Integrated Read-Only Safety Gate, Revocable API Keys, OAuth 2.0 & Local Admin UI: Starts in Global Read-Only mode (readOnly) by default so AI can safely inspect files and directories without running shell commands or modifying disk. Switch to Coding mode (--code) when needed, lock down remote access with per-client revocable Bearer API keys or OAuth 2.0 + PKCE, and manage everything from the CLI or private local Admin UI / Web Dashboard.

All-in-One vs. Fragmented DIY Stacks

Instead of wiring together separate tool backends, transport bridges, and auth proxies—or deploying heavy control planes that still lack host tools—Starmux provides a unified end-to-end runtime:

CapabilityStarmux (All-in-One Daemon)DIY Stack (DesktopCommanderMCP + supergateway / mcp-proxy)Pure MCP Gateways (MCPHub / ContextForge / MetaMCP)SSH MCP Bridges (ssh-mcp / ssh-mcp-server)Vendor-Hosted Relays (Hosted Remote Desktop Commander)
Built-in Filesystem, Diff Edit, Terminal & Process Tools✅ Built-in (25+ tools)⚠️ Requires separate tool server❌ None (must wire external servers first)✅ Via OpenSSH / SFTP✅ Built-in
Native Streamable HTTP /mcp Endpoint✅ Built-in⚠️ Requires transport adapter✅ Built-in❌ Local stdio only (no direct Cloud AI HTTP)✅ Hosted cloud endpoint
Works with Cloud/Browser AI (ChatGPT Web, Claude)✅ Direct HTTPS or Tunnel⚠️ Manual proxy + auth wiring✅ With external tool backends❌ Requires local stdio host✅ Via vendor cloud
Headless Linux x64 / ARM64 & NVIDIA Jetson Support✅ Single-command CLI (starmux up)⚠️ Manual multi-process setup⚠️ Often requires Docker / DB stack✅ Via SSH target⚠️ Depends on host agent
Enforced Global Read-Only vs. Coding Mode Switch✅ 1-command switch (--read / --code)❌ No unified read-only gate❌ No host-tool read/code mode❌ Relies on OS SSH user⚠️ Vendor-defined
Per-Client Revocable Bearer API Keys & OAuth 2.0✅ Built-in + Local Admin UI❌ Requires external auth proxy✅ Built-in❌ SSH keys only✅ Vendor OAuth
Multiplex Extra Local stdio MCP Servers (upstreams)✅ Built-in namespaced router⚠️ Adapter-dependent✅ Built-in❌ No❌ No
100% Self-Hosted (Zero Mandatory Third-Party Relay)✅ Your network & keys✅ Self-hosted✅ Self-hosted✅ Self-hosted❌ Traffic routes via vendor relay

Quick Start

1. Install

Requires Node.js 22.12+ on macOS, Linux (x64 / ARM64 / NVIDIA Jetson), or Windows.

bash
npm install -g starmux

(Upgrading? Run starmux down before installing the new version—see the Upgrade Guide.)

2. Start in your project directory

bash
cd /path/to/your/project
# Option 1: Read-only mode (default — safely inspect files, folders & code)starmux up
# or, Option 2: Coding mode (enable file edits, interactive terminal, process management & Git)starmux up --code

Starmux starts in the background on http://127.0.0.1:18893/mcp with Authentication: None by default for immediate local connection:

text
● Starmux is running  (instance: default)  Instance        <instance UUID>  Listen          http://127.0.0.1:18893/mcp  (this computer only)  Project         /path/to/your/project  Mode            Read-only (global · OS account)  (run 'starmux up --code' to enable edits & shell)  Auth            None (no token required)

(Switch between Read-only and Coding permissions anytime with starmux up --code and starmux up --read.)

3. Expose for Remote / Cloud AI (Skip if your AI client runs on this same computer)

Because Starmux binds strictly to 127.0.0.1:18893 for local security, choose the forwarding method that matches your network when connecting from a cloud AI client (ChatGPT Web) or another computer (WorkBuddy / Cursor on Mac $\rightarrow$ Linux / Jetson):

Network ScenarioBest ForRecommended MethodQuick Setup Command
A. Reachable IP / LAN / VPN (Host IP or domain can be reached directly)• All AI clients over LAN (http://LAN_IP/mcp), Tailscale, or public domain (https://mcp.example.com/mcp)
• Desktop AI on Laptop controlling a remote Linux / Jetson host over SSH
Option A1: Caddy Reverse Proxy
Option A2: OpenSSH Port Forwarding (ssh -L, zero extra install on host)
• A1 (Caddy): See collapsible block below
• A2 (SSH): ssh -N -L 127.0.0.1:18893:127.0.0.1:18893 user@remote-host
B. Behind NAT / CGNAT (No inbound port or connecting to Cloud AI)Home/office PC or lab server behind a firewall/CGNAT connecting to ChatGPT Web or remote agents without opening inbound portsOpenAI Secure MCP Tunnel or Cloudflare TunnelSee Option B in collapsible block below
Copy-paste commands for Option A1 (Caddy Reverse Proxy) & Option B (Outbound Tunnels)
  • Option A1: Reachable IP (LAN or Public Domain) with Caddy: Replace mcp.example.com with your public domain (or http://YOUR_LAN_IP on a trusted private LAN):

    bash
    caddy run --adapter caddyfile --config - << 'EOF'mcp.example.com {	handle /mcp {		reverse_proxy 127.0.0.1:18893 {			header_up Host 127.0.0.1:18893		}	}}EOF
  • Option B: Behind NAT / CGNAT — Outbound Tunnel (No inbound port forwarding required):

    • OpenAI Secure MCP Tunnel (for ChatGPT Web / Codex):
      bash
      tunnel-client run \  --control-plane.tunnel-id "tunnel_YOUR_TUNNEL_ID" \  --control-plane.api-key "env:MAC_MCP_TUNNEL_KEY" \  --mcp.server-url "http://127.0.0.1:18893/mcp" \  --health.listen-addr "127.0.0.1:18891" \  --log.level info
    • or, Cloudflare Quick Tunnel:
      bash
      cloudflared tunnel --url http://127.0.0.1:18893 --http-host-header 127.0.0.1:18893

(See Installation & Networking for Tailscale, frp, rathole, ngrok, and IPv6 TLS setups.)

4. Connect your AI client

With default settings (Auth: None), connect your AI client using any of the 3 options below:

Option 1 — Ask your AI coding agent to add it for you (Zero manual config)

For agentic coding clients (Claude Code, Antigravity, Codex, Cursor, WorkBuddy, DSH-Harness, Kimi Code, Minimax Code, ZCode), send this prompt in the AI chat (replace the URL with your LAN IP, domain, or http://127.0.0.1:18893/mcp):

text
Create this MCP Server connector:"starmux": {  "type": "streamable-http",  "url": "http://192.168.50.114/mcp"}
or, Option 2 — AI clients with a Form UI (e.g., ChatGPT Web, Claude, Doubao)
MCP Client FieldValue to Fill In
TransportStreamable HTTP (or select your Tunnel in ChatGPT Web)
URLhttps://mcp.example.com/mcp (Remote HTTPS / Tunnel) — or http://127.0.0.1:18893/mcp (same computer)
AuthenticationNone (default for local/LAN; use Bearer API Key or OAuth 2.0 for public endpoints)
or, Option 3 — Manually paste into mcp.json
  • Same-computer connection (or when using local ssh -L port forwarding):

    json
    {  "mcpServers": {    "starmux": {      "type": "streamable-http",      "url": "http://127.0.0.1:18893/mcp"    }  }}
  • Remote / LAN connection (via Direct Proxy or Tunnel — do NOT use 127.0.0.1 across separate machines):

    json
    {  "mcpServers": {    "starmux": {      "type": "streamable-http",      "url": "https://mcp.example.com/mcp"    }  }}

Securing Remote Access: Auth & Multi-Instance Permissions

When exposing Starmux beyond 127.0.0.1, lock down your endpoint with per-client credentials and permission controls:

1. Per-Client Bearer API Keys & OAuth 2.0

  1. Per-Client Bearer API Keys (with instant revocation & private Admin UI): Create a named credential for each AI client so you can audit or revoke them independently without exposing the local admin interface:
    bash
    starmux auth key "My AI Client"starmux auth                    # List active API keys, OAuth sessions, and auth statusstarmux dashboard               # Open the private local Admin UI / Web Access Console (127.0.0.1 only)
    Then add the Authorization header to your client's mcp.json:
    json
    {  "mcpServers": {    "starmux": {      "type": "streamable-http",      "url": "https://mcp.example.com/mcp",      "headers": {        "Authorization": "Bearer smx_YOUR_GENERATED_API_KEY"      }    }  }}
  2. OAuth 2.0 + PKCE Browser Login (for ChatGPT Web): Acts as a standard OAuth 2.0 protected resource server with PKCE and session revocation (via self-hosted Keycloak). See Security & Authentication — OAuth 2.0.

2. Advanced: Multiple Instances, Separate Project Folders & stdio Multiplexing (-i)

(Optional) By default, Starmux runs a single default instance. If you want separate remote MCP endpoints on one computer—each with its own port, project directory / folder context, credentials, mounted stdio MCP servers, and Read-Only vs. Coding permission mode—pass -i <name>:

bash
# Instance 1: Coding mode on port 18893 for repo-astarmux up ~/work/repo-a -i work --code
# Instance 2: Strict Read-Only mode on an auto-assigned port for docs/blog folderstarmux up ~/personal/blog -i blog --read
starmux ls                      # List all instances with status, mode, port, and project folderstarmux config edit -i work     # Mount extra local stdio MCP servers (upstreams) or customize settingsstarmux config apply -i work    # Hot-reload configuration changesstarmux down -i work            # Stop a specific instance

Security & Trust Boundary Note: Starmux's default Read-Only mode (--read) blocks write tools, shell execution, and Git mutations across the instance. In Coding mode (--code), terminal and file tools run with your OS account's permissions (the configured project directory sets the working context, not an OS chroot sandbox; an optional home-directory write sandbox is available on macOS). See Instances & Upstream Multiplexing and Security Model.


Everyday CLI Commands

bash
starmux status          # Check health, endpoints, active permission mode, and recent tool activitystarmux up .            # Switch active project folder context to current directorystarmux auth            # View auth mode, create/revoke per-client API keys, and inspect OAuth sessionsstarmux verify          # Run an end-to-end local MCP handshake, tool discovery, and read probestarmux doctor          # Run environment, port lease, and configuration diagnosticsstarmux dashboard       # Open the local Web Admin UI / Access Console to manage access & tool deny rulesstarmux logs -f         # Stream live MCP gateway and tool invocation logsstarmux down            # Stop the gateway (alias: stop)

Tested AI Client Matrix

AI ClientRecommended SetupStatusDetailed Guide
ChatGPT WebDirect HTTPS or OpenAI Tunnel (+ OAuth 2.0)✅ TestedChatGPT Web Setup
Claude App / CodeChat Prompt (Claude Code) or Remote MCP Custom Connector (Claude App)✅ TestedAI Coding Agents · Claude App
WorkBuddyChat Prompt / Local / LAN / SSH / Caddy HTTPS (Mac $\rightarrow$ Linux / Jetson)✅ TestedWorkBuddy to Linux / Jetson Guide
AntigravityChat Prompt / Local / LAN / SSH / HTTPS✅ TestedAI Coding Agents Setup
Codex CLI / AppChat Prompt / Tunnel or HTTPS + Bearer API Key✅ TestedCodex CLI Setup
CursorChat Prompt / Local / LAN / SSH / HTTPS✅ TestedAI Coding Agents Setup
DSH-Harness / Kimi / Minimax / ZCodeChat Prompt / Local / LAN / SSH / HTTPS✅ TestedAI Coding Agents Setup
Doubao (豆包)Direct HTTPS or Tunnel✅ TestedClaude & Doubao Setup

Common Use Cases & FAQ

中文场景速览(一站式自托管远程 MCP 服务与网关): Starmux 将 Desktop Commander 风格的文件读写、代码搜索、Diff 编辑、交互式终端、进程管理与 Git 工具、stdio 转 Streamable HTTP 网关、多本地 stdio MCP 服务聚合、只读(Read-Only)与 Coding 权限切换、以及 API Key / OAuth 2.0 鉴权 一体化内置于单个守护进程中。无需手工拼装 DesktopCommanderMCP + supergateway,即可让网页版 ChatGPT、Claude、豆包 或桌面端 WorkBuddy、Cursor、Codex、Antigravity 通过局域网 Caddy、Direct HTTPS(支持公网 IPv4/IPv6)、SSH 转发或内网穿透(NAT/CGNAT Tunnel)安全操作 Linux (x64/ARM64)、NVIDIA Jetson、macOS 与 Windows 上的本地文件与终端。


Native macOS App

Prefer a visual interface? The native SwiftUI menu bar App puts service health, Read-Only vs. Coding mode toggles, live MCP connection topology, and recent tool calls in one compact panel.

[Starmux native macOS menu bar app showing service status, MCP connection topology, and recent tool calls]

Native macOS Menu Bar App (English & Chinese) · Controls the same instances as the CLI

The App and CLI manage the same underlying instances. Quitting the App stops only instances started by the App; background instances started via CLI keep running.

Host PlatformCore & CLI (starmux)Native Menu Bar App
macOS (Apple Silicon / Intel)✅ Tested🧪 Development Build (App Build Guide)
Linux (x64 / ARM64 / NVIDIA Jetson)✅ Tested—
Windows (x64)✅ Tested—

Documentation & Architecture Guides

Explore the Documentation Index by topic:

  • 📦 Installation, Platforms & Network Forwarding — Supported hosts (macOS, Linux, NVIDIA Jetson, Windows), everyday CLI commands, upgrades, source builds, and Caddy / Tunnel / SSH forwarding.
  • 🔒 Security, Access Control & Authentication — Global Read-Only vs. Coding permissions, trust boundaries, per-client Bearer API keys (starmux auth key), private local Admin UI, and self-hosted Keycloak OAuth 2.0 + PKCE.
  • 🤖 AI Client Configuration Guides — End-to-end setup (including 1-step Prompt Auto-Setup) for ChatGPT Web, Claude App / Code, WorkBuddy, Antigravity, Codex, Cursor, DSH-Harness, Kimi Code, Minimax Code, ZCode, and Doubao (豆包).
  • ⚙️ Multi-Instance & JSONC Configuration — Running multiple isolated instances (-i NAME), hot-reloading config.jsonc, mounting extra local stdio MCP servers (upstreams), and managing secrets.

License

Starmux original code is MIT Licensed. Desktop Commander is bundled as a pinned dependency and retains its own license and notices. Starmux is an independent open-source project and is not endorsed by Desktop Commander or AI client vendors.

Source: README.md at commit 74ea4f0

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.16.2LatestNov 7, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Remote-Mcp integrations