MCP server
The libtmux MCP server exposes tmux to any client that speaks the Model Context Protocol, so an agent can create sessions, send keys and read pane output without shelling out.
Install
Pick your client, install method and scope. Every combination below is rendered server-side, so the command you see is the command you get — nothing is assembled in the browser.
With uvx installed:
$ claude mcp add tmux -- uvx libtmux-mcp
Config file: ~/.claude.json (this project)
With uvx installed:
$ claude mcp add tmux -- uvx --exclude-newer P7D --exclude-newer-package libtmux-mcp=2099-01-01 libtmux-mcp
Config file: ~/.claude.json (this project)
With uvx installed:
$ claude mcp add tmux -- uvx --no-config libtmux-mcp
Config file: ~/.claude.json (this project)
With uvx installed:
$ claude mcp add tmux --scope user -- uvx libtmux-mcp
Config file: ~/.claude.json (all projects)
With uvx installed:
$ claude mcp add tmux --scope user -- uvx --exclude-newer P7D --exclude-newer-package libtmux-mcp=2099-01-01 libtmux-mcp
Config file: ~/.claude.json (all projects)
With uvx installed:
$ claude mcp add tmux --scope user -- uvx --no-config libtmux-mcp
Config file: ~/.claude.json (all projects)
With uvx installed:
$ claude mcp add tmux --scope project -- uvx libtmux-mcp
Config file: .mcp.json (in repo, version-controlled)
With uvx installed:
$ claude mcp add tmux --scope project -- uvx --exclude-newer P7D --exclude-newer-package libtmux-mcp=2099-01-01 libtmux-mcp
Config file: .mcp.json (in repo, version-controlled)
With uvx installed:
$ claude mcp add tmux --scope project -- uvx --no-config libtmux-mcp
Config file: .mcp.json (in repo, version-controlled)
With pipx installed:
$ claude mcp add tmux -- pipx run libtmux-mcp
Config file: ~/.claude.json (this project)
With pipx installed:
$ claude mcp add tmux -- pipx run libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ~/.claude.json (this project)
With pipx installed:
$ claude mcp add tmux -- pipx run libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ~/.claude.json (this project)
With pipx installed:
$ claude mcp add tmux --scope user -- pipx run libtmux-mcp
Config file: ~/.claude.json (all projects)
With pipx installed:
$ claude mcp add tmux --scope user -- pipx run libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ~/.claude.json (all projects)
With pipx installed:
$ claude mcp add tmux --scope user -- pipx run libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ~/.claude.json (all projects)
With pipx installed:
$ claude mcp add tmux --scope project -- pipx run libtmux-mcp
Config file: .mcp.json (in repo, version-controlled)
With pipx installed:
$ claude mcp add tmux --scope project -- pipx run libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: .mcp.json (in repo, version-controlled)
With pipx installed:
$ claude mcp add tmux --scope project -- pipx run libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: .mcp.json (in repo, version-controlled)
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen register:
$ claude mcp add tmux -- libtmux-mcp
Config file: ~/.claude.json (this project)
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen register:
$ claude mcp add tmux -- libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ~/.claude.json (this project)
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen register:
$ claude mcp add tmux -- libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ~/.claude.json (this project)
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen register:
$ claude mcp add tmux --scope user -- libtmux-mcp
Config file: ~/.claude.json (all projects)
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen register:
$ claude mcp add tmux --scope user -- libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ~/.claude.json (all projects)
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen register:
$ claude mcp add tmux --scope user -- libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ~/.claude.json (all projects)
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen register:
$ claude mcp add tmux --scope project -- libtmux-mcp
Config file: .mcp.json (in repo, version-controlled)
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen register:
$ claude mcp add tmux --scope project -- libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: .mcp.json (in repo, version-controlled)
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen register:
$ claude mcp add tmux --scope project -- libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: .mcp.json (in repo, version-controlled)
With uvx installed:
{
"mcpServers": {
"tmux": {
"command": "uvx",
"args": ["libtmux-mcp"]
}
}
}
Config file: claude_desktop_config.json
With uvx installed:
{
"mcpServers": {
"tmux": {
"command": "uvx",
"args": ["--exclude-newer", "P7D", "--exclude-newer-package", "libtmux-mcp=2099-01-01", "libtmux-mcp"]
}
}
}
Config file: claude_desktop_config.json
With uvx installed:
{
"mcpServers": {
"tmux": {
"command": "uvx",
"args": ["libtmux-mcp"],
"env": { "UV_NO_CONFIG": "1" }
}
}
}
Config file: claude_desktop_config.json
With pipx installed:
{
"mcpServers": {
"tmux": {
"command": "pipx",
"args": ["run", "libtmux-mcp"]
}
}
}
Config file: claude_desktop_config.json
With pipx installed:
{
"mcpServers": {
"tmux": {
"command": "pipx",
"args": ["run", "libtmux-mcp"]
}
}
}pip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: claude_desktop_config.json
With pipx installed:
{
"mcpServers": {
"tmux": {
"command": "pipx",
"args": ["run", "libtmux-mcp"]
}
}
}pip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: claude_desktop_config.json
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen use this config:
{
"mcpServers": {
"tmux": {
"command": "libtmux-mcp"
}
}
}
Config file: claude_desktop_config.json
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen use this config:
{
"mcpServers": {
"tmux": {
"command": "libtmux-mcp"
}
}
}pip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: claude_desktop_config.json
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen use this config:
{
"mcpServers": {
"tmux": {
"command": "libtmux-mcp"
}
}
}pip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: claude_desktop_config.json
With uvx installed:
$ codex mcp add tmux -- uvx --exclude-newer P7D --exclude-newer-package libtmux-mcp=2099-01-01 libtmux-mcp
Config file: ~/.codex/config.toml
With uvx installed:
$ codex mcp add tmux -- uvx --no-config libtmux-mcp
Config file: ~/.codex/config.toml
With uvx installed:
Codex's CLI doesn't support project scope yet — paste this into .codex/config.toml at the repo root.
[mcp_servers.tmux]
command = "uvx"
args = ["libtmux-mcp"]
Config file: .codex/config.toml (in repo)
With uvx installed:
Codex's CLI doesn't support project scope yet — paste this into .codex/config.toml at the repo root.
[mcp_servers.tmux]
command = "uvx"
args = ["--exclude-newer", "P7D", "--exclude-newer-package", "libtmux-mcp=2099-01-01", "libtmux-mcp"]
Config file: .codex/config.toml (in repo)
With uvx installed:
Codex's CLI doesn't support project scope yet — paste this into .codex/config.toml at the repo root.
[mcp_servers.tmux]
command = "uvx"
args = ["libtmux-mcp"]
env = { UV_NO_CONFIG = "1" }
Config file: .codex/config.toml (in repo)
With pipx installed:
$ codex mcp add tmux -- pipx run libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ~/.codex/config.toml
With pipx installed:
$ codex mcp add tmux -- pipx run libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ~/.codex/config.toml
With pipx installed:
Codex's CLI doesn't support project scope yet — paste this into .codex/config.toml at the repo root.
[mcp_servers.tmux]
command = "pipx"
args = ["run", "libtmux-mcp"]
Config file: .codex/config.toml (in repo)
With pipx installed:
Codex's CLI doesn't support project scope yet — paste this into .codex/config.toml at the repo root.
[mcp_servers.tmux]
command = "pipx"
args = ["run", "libtmux-mcp"]pip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: .codex/config.toml (in repo)
With pipx installed:
Codex's CLI doesn't support project scope yet — paste this into .codex/config.toml at the repo root.
[mcp_servers.tmux]
command = "pipx"
args = ["run", "libtmux-mcp"]pip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: .codex/config.toml (in repo)
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen register:
$ codex mcp add tmux -- libtmux-mcp
Config file: ~/.codex/config.toml
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen register:
$ codex mcp add tmux -- libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ~/.codex/config.toml
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen register:
$ codex mcp add tmux -- libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ~/.codex/config.toml
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen register:
Codex's CLI doesn't support project scope yet — paste this into .codex/config.toml at the repo root.
[mcp_servers.tmux]
command = "libtmux-mcp"
Config file: .codex/config.toml (in repo)
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen register:
Codex's CLI doesn't support project scope yet — paste this into .codex/config.toml at the repo root.
[mcp_servers.tmux]
command = "libtmux-mcp"pip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: .codex/config.toml (in repo)
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen register:
Codex's CLI doesn't support project scope yet — paste this into .codex/config.toml at the repo root.
[mcp_servers.tmux]
command = "libtmux-mcp"pip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: .codex/config.toml (in repo)
With uvx installed:
$ gemini mcp add --scope user tmux uvx -- libtmux-mcp
Config file: ~/.gemini/settings.json
With uvx installed:
$ gemini mcp add --scope user tmux uvx -- --exclude-newer P7D --exclude-newer-package libtmux-mcp=2099-01-01 libtmux-mcp
Config file: ~/.gemini/settings.json
With uvx installed:
$ gemini mcp add --scope user tmux uvx -- --no-config libtmux-mcp
Config file: ~/.gemini/settings.json
With uvx installed:
$ gemini mcp add --scope project tmux uvx -- libtmux-mcp
Config file: .gemini/settings.json (in repo)
With uvx installed:
$ gemini mcp add --scope project tmux uvx -- --exclude-newer P7D --exclude-newer-package libtmux-mcp=2099-01-01 libtmux-mcp
Config file: .gemini/settings.json (in repo)
With uvx installed:
$ gemini mcp add --scope project tmux uvx -- --no-config libtmux-mcp
Config file: .gemini/settings.json (in repo)
With pipx installed:
$ gemini mcp add --scope user tmux pipx -- run libtmux-mcp
Config file: ~/.gemini/settings.json
With pipx installed:
$ gemini mcp add --scope user tmux pipx -- run libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ~/.gemini/settings.json
With pipx installed:
$ gemini mcp add --scope user tmux pipx -- run libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ~/.gemini/settings.json
With pipx installed:
$ gemini mcp add --scope project tmux pipx -- run libtmux-mcp
Config file: .gemini/settings.json (in repo)
With pipx installed:
$ gemini mcp add --scope project tmux pipx -- run libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: .gemini/settings.json (in repo)
With pipx installed:
$ gemini mcp add --scope project tmux pipx -- run libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: .gemini/settings.json (in repo)
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen register:
$ gemini mcp add --scope user tmux libtmux-mcp
Config file: ~/.gemini/settings.json
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen register:
$ gemini mcp add --scope user tmux libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ~/.gemini/settings.json
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen register:
$ gemini mcp add --scope user tmux libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ~/.gemini/settings.json
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen register:
$ gemini mcp add --scope project tmux libtmux-mcp
Config file: .gemini/settings.json (in repo)
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen register:
$ gemini mcp add --scope project tmux libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: .gemini/settings.json (in repo)
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen register:
$ gemini mcp add --scope project tmux libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: .gemini/settings.json (in repo)
With uvx installed:
{
"mcpServers": {
"tmux": {
"command": "uvx",
"args": ["libtmux-mcp"]
}
}
}
Config file: .cursor/mcp.json (in repo)
With uvx installed:
{
"mcpServers": {
"tmux": {
"command": "uvx",
"args": ["--exclude-newer", "P7D", "--exclude-newer-package", "libtmux-mcp=2099-01-01", "libtmux-mcp"]
}
}
}
Config file: .cursor/mcp.json (in repo)
With uvx installed:
{
"mcpServers": {
"tmux": {
"command": "uvx",
"args": ["libtmux-mcp"],
"env": { "UV_NO_CONFIG": "1" }
}
}
}
Config file: .cursor/mcp.json (in repo)
With uvx installed:
{
"mcpServers": {
"tmux": {
"command": "uvx",
"args": ["libtmux-mcp"]
}
}
}
Config file: ~/.cursor/mcp.json
With uvx installed:
{
"mcpServers": {
"tmux": {
"command": "uvx",
"args": ["--exclude-newer", "P7D", "--exclude-newer-package", "libtmux-mcp=2099-01-01", "libtmux-mcp"]
}
}
}
Config file: ~/.cursor/mcp.json
With uvx installed:
{
"mcpServers": {
"tmux": {
"command": "uvx",
"args": ["libtmux-mcp"],
"env": { "UV_NO_CONFIG": "1" }
}
}
}
Config file: ~/.cursor/mcp.json
With pipx installed:
{
"mcpServers": {
"tmux": {
"command": "pipx",
"args": ["run", "libtmux-mcp"]
}
}
}
Config file: .cursor/mcp.json (in repo)
With pipx installed:
{
"mcpServers": {
"tmux": {
"command": "pipx",
"args": ["run", "libtmux-mcp"]
}
}
}pip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: .cursor/mcp.json (in repo)
With pipx installed:
{
"mcpServers": {
"tmux": {
"command": "pipx",
"args": ["run", "libtmux-mcp"]
}
}
}pip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: .cursor/mcp.json (in repo)
With pipx installed:
{
"mcpServers": {
"tmux": {
"command": "pipx",
"args": ["run", "libtmux-mcp"]
}
}
}
Config file: ~/.cursor/mcp.json
With pipx installed:
{
"mcpServers": {
"tmux": {
"command": "pipx",
"args": ["run", "libtmux-mcp"]
}
}
}pip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ~/.cursor/mcp.json
With pipx installed:
{
"mcpServers": {
"tmux": {
"command": "pipx",
"args": ["run", "libtmux-mcp"]
}
}
}pip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ~/.cursor/mcp.json
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen use this config:
{
"mcpServers": {
"tmux": {
"command": "libtmux-mcp"
}
}
}
Config file: .cursor/mcp.json (in repo)
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen use this config:
{
"mcpServers": {
"tmux": {
"command": "libtmux-mcp"
}
}
}pip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: .cursor/mcp.json (in repo)
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen use this config:
{
"mcpServers": {
"tmux": {
"command": "libtmux-mcp"
}
}
}pip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: .cursor/mcp.json (in repo)
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen use this config:
{
"mcpServers": {
"tmux": {
"command": "libtmux-mcp"
}
}
}
Config file: ~/.cursor/mcp.json
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen use this config:
{
"mcpServers": {
"tmux": {
"command": "libtmux-mcp"
}
}
}pip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ~/.cursor/mcp.json
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen use this config:
{
"mcpServers": {
"tmux": {
"command": "libtmux-mcp"
}
}
}pip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ~/.cursor/mcp.json
With uvx installed:
$ grok mcp add --scope user tmux -- uvx libtmux-mcp
Config file: ~/.grok/config.toml
With uvx installed:
$ grok mcp add --scope user tmux -- uvx --exclude-newer P7D --exclude-newer-package libtmux-mcp=2099-01-01 libtmux-mcp
Config file: ~/.grok/config.toml
With uvx installed:
$ grok mcp add --scope user tmux -- uvx --no-config libtmux-mcp
Config file: ~/.grok/config.toml
With uvx installed:
$ grok mcp add --scope project tmux -- uvx libtmux-mcp
Config file: ./.grok/config.toml (in repo)
With uvx installed:
$ grok mcp add --scope project tmux -- uvx --exclude-newer P7D --exclude-newer-package libtmux-mcp=2099-01-01 libtmux-mcp
Config file: ./.grok/config.toml (in repo)
With uvx installed:
$ grok mcp add --scope project tmux -- uvx --no-config libtmux-mcp
Config file: ./.grok/config.toml (in repo)
With pipx installed:
$ grok mcp add --scope user tmux -- pipx run libtmux-mcp
Config file: ~/.grok/config.toml
With pipx installed:
$ grok mcp add --scope user tmux -- pipx run libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ~/.grok/config.toml
With pipx installed:
$ grok mcp add --scope user tmux -- pipx run libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ~/.grok/config.toml
With pipx installed:
$ grok mcp add --scope project tmux -- pipx run libtmux-mcp
Config file: ./.grok/config.toml (in repo)
With pipx installed:
$ grok mcp add --scope project tmux -- pipx run libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ./.grok/config.toml (in repo)
With pipx installed:
$ grok mcp add --scope project tmux -- pipx run libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ./.grok/config.toml (in repo)
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen register:
$ grok mcp add --scope user tmux -- libtmux-mcp
Config file: ~/.grok/config.toml
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen register:
$ grok mcp add --scope user tmux -- libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ~/.grok/config.toml
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen register:
$ grok mcp add --scope user tmux -- libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ~/.grok/config.toml
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen register:
$ grok mcp add --scope project tmux -- libtmux-mcp
Config file: ./.grok/config.toml (in repo)
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen register:
$ grok mcp add --scope project tmux -- libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ./.grok/config.toml (in repo)
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen register:
$ grok mcp add --scope project tmux -- libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ./.grok/config.toml (in repo)
With uvx installed:
{
"mcpServers": {
"tmux": {
"command": "uvx",
"args": ["libtmux-mcp"]
}
}
}
Config file: ~/.gemini/config/mcp_config.json
With uvx installed:
{
"mcpServers": {
"tmux": {
"command": "uvx",
"args": ["--exclude-newer", "P7D", "--exclude-newer-package", "libtmux-mcp=2099-01-01", "libtmux-mcp"]
}
}
}
Config file: ~/.gemini/config/mcp_config.json
With uvx installed:
{
"mcpServers": {
"tmux": {
"command": "uvx",
"args": ["libtmux-mcp"],
"env": { "UV_NO_CONFIG": "1" }
}
}
}
Config file: ~/.gemini/config/mcp_config.json
With pipx installed:
{
"mcpServers": {
"tmux": {
"command": "pipx",
"args": ["run", "libtmux-mcp"]
}
}
}
Config file: ~/.gemini/config/mcp_config.json
With pipx installed:
{
"mcpServers": {
"tmux": {
"command": "pipx",
"args": ["run", "libtmux-mcp"]
}
}
}pip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ~/.gemini/config/mcp_config.json
With pipx installed:
{
"mcpServers": {
"tmux": {
"command": "pipx",
"args": ["run", "libtmux-mcp"]
}
}
}pip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ~/.gemini/config/mcp_config.json
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen use this config:
{
"mcpServers": {
"tmux": {
"command": "libtmux-mcp"
}
}
}
Config file: ~/.gemini/config/mcp_config.json
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen use this config:
{
"mcpServers": {
"tmux": {
"command": "libtmux-mcp"
}
}
}pip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ~/.gemini/config/mcp_config.json
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen use this config:
{
"mcpServers": {
"tmux": {
"command": "libtmux-mcp"
}
}
}pip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ~/.gemini/config/mcp_config.json
With uvx installed:
$ opencode mcp add tmux -- uvx libtmux-mcp
Config file: ~/.config/opencode/opencode.jsonc
With uvx installed:
$ opencode mcp add tmux -- uvx --exclude-newer P7D --exclude-newer-package libtmux-mcp=2099-01-01 libtmux-mcp
Config file: ~/.config/opencode/opencode.jsonc
With uvx installed:
$ opencode mcp add tmux -- uvx --no-config libtmux-mcp
Config file: ~/.config/opencode/opencode.jsonc
With pipx installed:
$ opencode mcp add tmux -- pipx run libtmux-mcp
Config file: ~/.config/opencode/opencode.jsonc
With pipx installed:
$ opencode mcp add tmux -- pipx run libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ~/.config/opencode/opencode.jsonc
With pipx installed:
$ opencode mcp add tmux -- pipx run libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ~/.config/opencode/opencode.jsonc
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen register:
$ opencode mcp add tmux -- libtmux-mcp
Config file: ~/.config/opencode/opencode.jsonc
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen register:
$ opencode mcp add tmux -- libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ~/.config/opencode/opencode.jsonc
Install the packages first:
$ pip install --user --upgrade libtmux libtmux-mcpThen register:
$ opencode mcp add tmux -- libtmux-mcppip has no per-package cooldown override, so this snippet runs without cooldown enforcement. Switch to the uvx tab — it applies the cooldown to transitive deps via `--exclude-newer` while exempting libtmux-mcp itself via `--exclude-newer-package`.
Config file: ~/.config/opencode/opencode.jsonc
Dependency cooldowns
Use the Configure cooldowns checkbox above to enable or disable. These settings choose how cooldown behaves once enabled.
What are cooldowns?
Cooldowns delay picking up newly uploaded packages so the community has time to spot supply-chain attacks before you install. Most package managers don't apply one by default — you opt in via a global setting in your tool's config.
Learn more at cooldowns.dev · Datadog Security Labs writeup .
Scope, and why it matters
Most clients distinguish a user scope, which follows you across every project, from a project scope committed alongside the repository so collaborators get the same server. A tmux server is machine-local state, so user scope is usually right; choose project scope when the workspace definition itself is part of the repo.
Ports with an MCP server
All eight ports ship one. The reference implementation is Python, whose 54 tools are the set the others are measured against:
- Python libtmux 54 tools
- TypeScript @libtmux/libtmux 47 tools
- Rust libtmux 48 tools
- Go github.com/libtmux/libtmux-go/tmux 59 tools
- Java io.github.libtmux:libtmux 29 tools
- .NET LibTmux 42 tools
- C++ libtmux-cxx 12 tools
- Swift libtmux-swift 38 tools
They do not agree on tool names. Across the eight servers,
110 distinct names are registered and 6 exist in
all of them; Java and .NET prefix every tool with tmux_ on
the wire. What each port
actually registers is on the
tool surface
page, extracted from each port's own source. Symbol-level library parity
is a separate axis — see parity.