tmux MCP for C#
Install
Choose your client and configuration scope, then run the command or paste the configuration.
$ claude mcp add tmux -- dnx LibTmux.Mcp --prerelease --yesRuns the server from NuGet without installing it; needs the .NET 10 SDK. Write LibTmux.Mcp@<version> to pin a version.
Config file: ~/.claude.json (this project)
$ claude mcp add tmux --scope user -- dnx LibTmux.Mcp --prerelease --yesRuns the server from NuGet without installing it; needs the .NET 10 SDK. Write LibTmux.Mcp@<version> to pin a version.
Config file: ~/.claude.json (all projects)
$ claude mcp add tmux --scope project -- dnx LibTmux.Mcp --prerelease --yesRuns the server from NuGet without installing it; needs the .NET 10 SDK. Write LibTmux.Mcp@<version> to pin a version.
Config file: .mcp.json (in repo, version-controlled)
Build or install the server first:
$ dotnet tool install --global LibTmux.Mcp --prereleaseThen register:
$ claude mcp add tmux -- libtmux-mcp--prerelease is required: every release so far carries an -alpha tag, and NuGet skips those unless asked.
Config file: ~/.claude.json (this project)
Build or install the server first:
$ dotnet tool install --global LibTmux.Mcp --prereleaseThen register:
$ claude mcp add tmux --scope user -- libtmux-mcp--prerelease is required: every release so far carries an -alpha tag, and NuGet skips those unless asked.
Config file: ~/.claude.json (all projects)
Build or install the server first:
$ dotnet tool install --global LibTmux.Mcp --prereleaseThen register:
$ claude mcp add tmux --scope project -- libtmux-mcp--prerelease is required: every release so far carries an -alpha tag, and NuGet skips those unless asked.
Config file: .mcp.json (in repo, version-controlled)
Runs the server from NuGet without installing it; needs the .NET 10 SDK. Write LibTmux.Mcp@<version> to pin a version.
Config file: claude_desktop_config.json
Build or install the server first:
$ dotnet tool install --global LibTmux.Mcp --prereleaseThen use this config:
--prerelease is required: every release so far carries an -alpha tag, and NuGet skips those unless asked.
Config file: claude_desktop_config.json
$ codex mcp add tmux -- dnx LibTmux.Mcp --prerelease --yesRuns the server from NuGet without installing it; needs the .NET 10 SDK. Write LibTmux.Mcp@<version> to pin a version.
Config file: ~/.codex/config.toml
Codex's CLI doesn't support project scope yet — paste this into .codex/config.toml at the repo root.
Runs the server from NuGet without installing it; needs the .NET 10 SDK. Write LibTmux.Mcp@<version> to pin a version.
Config file: .codex/config.toml (in repo)
Build or install the server first:
$ dotnet tool install --global LibTmux.Mcp --prereleaseThen register:
$ codex mcp add tmux -- libtmux-mcp--prerelease is required: every release so far carries an -alpha tag, and NuGet skips those unless asked.
Config file: ~/.codex/config.toml
Build or install the server first:
$ dotnet tool install --global LibTmux.Mcp --prereleaseThen register:
Codex's CLI doesn't support project scope yet — paste this into .codex/config.toml at the repo root.
--prerelease is required: every release so far carries an -alpha tag, and NuGet skips those unless asked.
Config file: .codex/config.toml (in repo)
$ gemini mcp add --scope user tmux dnx -- LibTmux.Mcp --prerelease --yesRuns the server from NuGet without installing it; needs the .NET 10 SDK. Write LibTmux.Mcp@<version> to pin a version.
Config file: ~/.gemini/settings.json
$ gemini mcp add --scope project tmux dnx -- LibTmux.Mcp --prerelease --yesRuns the server from NuGet without installing it; needs the .NET 10 SDK. Write LibTmux.Mcp@<version> to pin a version.
Config file: .gemini/settings.json (in repo)
Build or install the server first:
$ dotnet tool install --global LibTmux.Mcp --prereleaseThen register:
$ gemini mcp add --scope user tmux libtmux-mcp--prerelease is required: every release so far carries an -alpha tag, and NuGet skips those unless asked.
Config file: ~/.gemini/settings.json
Build or install the server first:
$ dotnet tool install --global LibTmux.Mcp --prereleaseThen register:
$ gemini mcp add --scope project tmux libtmux-mcp--prerelease is required: every release so far carries an -alpha tag, and NuGet skips those unless asked.
Config file: .gemini/settings.json (in repo)
Runs the server from NuGet without installing it; needs the .NET 10 SDK. Write LibTmux.Mcp@<version> to pin a version.
Config file: .cursor/mcp.json (in repo)
Runs the server from NuGet without installing it; needs the .NET 10 SDK. Write LibTmux.Mcp@<version> to pin a version.
Config file: ~/.cursor/mcp.json
Build or install the server first:
$ dotnet tool install --global LibTmux.Mcp --prereleaseThen use this config:
--prerelease is required: every release so far carries an -alpha tag, and NuGet skips those unless asked.
Config file: .cursor/mcp.json (in repo)
Build or install the server first:
$ dotnet tool install --global LibTmux.Mcp --prereleaseThen use this config:
--prerelease is required: every release so far carries an -alpha tag, and NuGet skips those unless asked.
Config file: ~/.cursor/mcp.json
$ grok mcp add --scope user tmux -- dnx LibTmux.Mcp --prerelease --yesRuns the server from NuGet without installing it; needs the .NET 10 SDK. Write LibTmux.Mcp@<version> to pin a version.
Config file: ~/.grok/config.toml
$ grok mcp add --scope project tmux -- dnx LibTmux.Mcp --prerelease --yesRuns the server from NuGet without installing it; needs the .NET 10 SDK. Write LibTmux.Mcp@<version> to pin a version.
Config file: ./.grok/config.toml (in repo)
Build or install the server first:
$ dotnet tool install --global LibTmux.Mcp --prereleaseThen register:
$ grok mcp add --scope user tmux -- libtmux-mcp--prerelease is required: every release so far carries an -alpha tag, and NuGet skips those unless asked.
Config file: ~/.grok/config.toml
Build or install the server first:
$ dotnet tool install --global LibTmux.Mcp --prereleaseThen register:
$ grok mcp add --scope project tmux -- libtmux-mcp--prerelease is required: every release so far carries an -alpha tag, and NuGet skips those unless asked.
Config file: ./.grok/config.toml (in repo)
Runs the server from NuGet without installing it; needs the .NET 10 SDK. Write LibTmux.Mcp@<version> to pin a version.
Config file: ~/.gemini/config/mcp_config.json
Build or install the server first:
$ dotnet tool install --global LibTmux.Mcp --prereleaseThen use this config:
--prerelease is required: every release so far carries an -alpha tag, and NuGet skips those unless asked.
Config file: ~/.gemini/config/mcp_config.json
$ opencode mcp add tmux -- dnx LibTmux.Mcp --prerelease --yesRuns the server from NuGet without installing it; needs the .NET 10 SDK. Write LibTmux.Mcp@<version> to pin a version.
Config file: ~/.config/opencode/opencode.jsonc
Build or install the server first:
$ dotnet tool install --global LibTmux.Mcp --prereleaseThen register:
$ opencode mcp add tmux -- libtmux-mcp--prerelease is required: every release so far carries an -alpha tag, and NuGet skips those unless asked.
Config file: ~/.config/opencode/opencode.jsonc
Tools
Every MCP operation, with its arguments and results.
Guides
Install the tool, choose a socket, and verify the client's connection.
Topics
Tool selection, command waits, capture limits, and cancellation.
Examples
Complete clients for session inspection and bounded command execution.
Language API
Embedding and implementation types.
LibTmux.Mcp is a .NET tool package whose executable is
libtmux-mcp. It serves tmux tools and a static capability resource over standard
input and output.
The tool targets .NET 8 and .NET 10 and requires a POSIX host with tmux.
Its registered operations include capture_pane, run_shell_command,
and capture_since.
Toolsets¶
Use LIBTMUX_TOOLSETS=inspect for discovery and terminal reads.
Additional toolsets enable changes, execution, and teardown. The
tool-selection topic explains exact-name filters,
defaults, and the capability resource. The complete examples
include project files and cleanup for their owned tmux servers.
Workspace Manager is the separately packaged
LibTmux.Workspace library. The MCP catalog does not include a workspace-file operation.