C#
Drive a real tmux from C#.
LibTmux
You are reading the latest documentation. Use the version control in the header to move between releases, or the port dropdown to find a corresponding page in another language.
Install
Library LibTmux
$ dotnet package add LibTmux --prerelease--prerelease is required: every release so far carries an -alpha tag, and NuGet skips those unless asked.
Workspace Manager LibTmux.Workspace.Cli
The workspace package is separate from the core library.
$ dotnet tool install --global LibTmux.Workspace.Cli --prerelease--prerelease is required: every release so far carries an -alpha tag. Add $HOME/.dotnet/tools to PATH if the shell cannot find tmux-workspace.
$ dnx LibTmux.Workspace.Cli --prerelease --yes -- --helpRuns it once from NuGet without installing anything; needs the .NET 10 SDK.
$ dotnet tool install LibTmux.Workspace.Cli --prereleaseRun at a repository root: it writes dotnet-tools.json, which pins the version for everyone who clones it. Run it as dotnet tmux-workspace.
MCP LibTmux.Mcp
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
Topics
Subject-by-subject, with C# in every code block.
Guides
Task guides for C#.
Examples
Complete programs, sourced from the code each port tests.
Concepts
The domain model every port shares.