# io.github.k8ika0s/mcp-tmux (npm · @k8ika0s/mcp-tmux)

Model Context Protocol server that lets LLMs collaboratively drive tmux

- Trust score: 70/100 (medium)
- Change this week: +17
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-04

## Components

- npm · `@k8ika0s/mcp-tmux`: 70/100 (this document), [markdown](https://verifymcp.io/servers/k8ika0s-mcp-tmux/k8ika0s-mcp-tmux.md), [page](https://verifymcp.io/servers/k8ika0s-mcp-tmux/k8ika0s-mcp-tmux)

## Channel facts

- Registry: `npm`
- Package: `@k8ika0s/mcp-tmux`
- Version: `0.1.7`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-04.

- **Supply Chain Security**: 83/100
  - No malware found by supply-chain analysis.
  - CVE check failed: a known medium-severity CVE affects hono 4.12.33, reached via @modelcontextprotocol/sdk > hono. A fixed version is available.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (111 of 115), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (AGPL-3.0-only).
  - Actively maintained (last published 232 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 85/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Tool/resource definitions use about 3436 tokens (~85/item across 40 items; 39 tools + 1 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 99% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add k8ika0s-mcp-tmux -- npx -y @k8ika0s/mcp-tmux
```

### Codex

```bash
codex mcp add k8ika0s-mcp-tmux -- npx -y @k8ika0s/mcp-tmux
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "k8ika0s-mcp-tmux": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@k8ika0s/mcp-tmux"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add k8ika0s-mcp-tmux --command npx --arg -y --arg @k8ika0s/mcp-tmux
```

### Hermes

```yaml
mcp_servers:
  k8ika0s-mcp-tmux:
    command: "npx"
    args: ["-y", "@k8ika0s/mcp-tmux"]
```

### Other

```json
{
  "mcpServers": {
    "k8ika0s-mcp-tmux": {
      "command": "npx",
      "args": [
        "-y",
        "@k8ika0s/mcp-tmux"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-04 (score 70, −1)

- [security regression] CVE-2026-69207 affects this package: medium
- [security regression] Known CVEs: partial → fail

### 2026-08-03 (score 71, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-02 (score 70, +65)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [functional improvement] Schema quality: unverified → excellent
- [functional improvement] License: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Stability: unverified → 0.20
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] Schema quality: unverified → 100
- [functional] Licence: AGPL-3.0-only

### 2026-08-01 (score 5, −21)

- [functional regression] Schema quality: 100 → unverified
- [functional regression] Tool coverage: 100 → unverified

### 2026-07-31 (score 26, −27)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-27 (score 53)

First indexed and scored.

## MCP tools (39)

### `tmux_set_default` (~72 tokens)

Set default host/session/window/pane

Persist defaults for later tool calls. Omit fields you do not want to change.

Input parameters:

- `host` (string): SSH host alias to remember.
- `pane` (string): Pane target to remember.
- `session` (string): Session name to remember.
- `window` (string): Window target to remember.

### `tmux_get_default` (~16 tokens)

Show default host/session/window/pane

Display the current remembered defaults.

### `tmux_open_session` (~89 tokens)

Ensure/attach remote tmux session

Given an ssh host alias and session name, ensure the remote tmux session exists (create if missing) and set it as default for subsequent commands.

Input parameters:

- `command` (string): Optional command to start the session with if it needs to be created.
- `host` (string, required): SSH config host alias to connect to.
- `session` (string, required): tmux session name on the remote host.

### `tmux_default_context` (~24 tokens)

Show default tmux target context

Returns the default session (if any) and a quick layout snapshot.

### `tmux_state` (~90 tokens)

Snapshot tmux state

Return sessions, windows, panes, and the last lines of the active/default pane.

Input parameters:

- `captureLines` (number): How many lines of scrollback to include from the capture target (default 200).
- `host` (string): SSH host alias (optional). Uses default host if set.
- `session` (string): Session name (optional). Uses default session if set; required if none set.

### `tmux_readonly_state` (~97 tokens)

Snapshot tmux state (readonly)

Readonly variant of tmux_state to retrieve sessions, windows, panes, and recent capture without modifying defaults.

Input parameters:

- `captureLines` (number): How many lines of scrollback to include from the capture target (default 200).
- `host` (string): SSH host alias (optional). Uses default host if set.
- `session` (string): Session name (optional). Uses default session if set; required if none set.

### `tmux_context_history` (~120 tokens)

Capture recent tmux history

Capture recent scrollback from a pane or session to infer context; also extracts recent commands heuristically.

Input parameters:

- `allPanes` (boolean): If true, capture all panes in the session.
- `host` (string): SSH host alias (optional). Uses default host if set.
- `lines` (number): How many lines to capture per pane.
- `session` (string): Session (optional; uses default).
- `target` (string): Pane target (pane id or session:window.pane). If omitted, uses active panes in session.

### `tmux_quickstart` (~25 tokens)

Quickstart instructions

Returns a concise how-to for using the tmux MCP tools safely.

### `tmux_server_info` (~21 tokens)

Server info and version

Return the running server version and package identifier for verification.

### `tmux_set_audit_logging` (~80 tokens)

Set audit logging

Enable or disable verbose audit logging for a host/session (logs commands and outputs).

Input parameters:

- `enabled` (boolean, required): Set to true to enable audit logging, false to disable.
- `host` (string): Host alias (optional). Uses default host if set.
- `session` (string): Session name (optional). Uses default session if set.

### `tmux_capture_layout` (~57 tokens)

Capture window layouts

Return window layouts for a session so they can be restored later.

Input parameters:

- `host` (string): SSH host alias (optional). Uses default host if set.
- `session` (string): Session name (optional, defaults to stored session).

### `tmux_restore_layout` (~72 tokens)

Restore a window layout

Apply a saved layout string to a target window.

Input parameters:

- `host` (string): SSH host alias (optional). Uses default host if set.
- `layout` (string, required): Layout string obtained from tmux_capture_layout.
- `target` (string, required): Window target (e.g., session:window or window id).

### `tmux_tail_pane` (~108 tokens)

Tail a pane buffer

Poll a pane multiple times to watch output without reissuing commands.

Input parameters:

- `host` (string): SSH host alias (optional). Uses default host if set.
- `intervalMs` (number): Delay between polls in milliseconds.
- `iterations` (number): How many polling iterations.
- `lines` (number): How many lines per fetch.
- `target` (string): Pane target to tail (pane id or session:window.pane). If omitted, uses default pane if set.

### `tmux_tail_task` (~114 tokens)

Tail a pane (task)

Create a task to poll pane output over time. Client can poll for incremental results.

Input parameters:

- `host` (string): SSH host alias (optional). Uses default host if set.
- `intervalMs` (number): Delay between polls in milliseconds.
- `iterations` (number): How many polling iterations before auto-complete.
- `lines` (number): How many lines per fetch.
- `target` (string): Pane target to tail (pane id or session:window.pane). If omitted, uses default pane if set.

### `tmux_multi_run` (~188 tokens)

Fan-out send and capture

Send the same keys to multiple targets (across hosts) and optionally capture results.

Input parameters:

- `capture` (boolean): Capture after sending.
- `captureLines` (number): Default lines to capture (per-target override available).
- `delayMs` (number): Default delay before capture in ms (per-target override available).
- `enter` (boolean): Append Enter.
- `keys` (string, required): Keys/command to send.
- `mode` (string): send_capture (default) captures once, tail polls, pattern checks for regex.
- `pattern` (string): Regex pattern when mode=pattern.
- `patternFlags` (string): Regex flags (e.g., i)
- `tailIntervalMs` (number): Tail interval ms (mode=tail).
- `tailIterations` (number): Tail iterations (mode=tail).
- `targets` (array, required): List of targets to fan-out to.

### `tmux_watch_dir_task` (~75 tokens)

Watch a directory for new files

Poll a directory (local or via SSH) and complete when new files appear or after max iterations.

Input parameters:

- `host` (string): SSH host alias (optional).
- `intervalMs` (number): Polling interval ms.
- `iterations` (number): Max polling iterations.
- `path` (string): Directory to watch.

### `tmux_wait_for_pattern_task` (~133 tokens)

Wait for output pattern

Poll a pane for a regex pattern and complete when matched or after iterations.

Input parameters:

- `flags` (string): Regex flags (e.g., i)
- `host` (string): SSH host alias (optional). Uses default host if set.
- `intervalMs` (number): Delay between polls in milliseconds.
- `iterations` (number): Max polling iterations.
- `lines` (number): Lines per fetch.
- `pattern` (string, required): Regex pattern to search for.
- `target` (string): Pane target to watch (pane id or session:window.pane). If omitted, uses default pane if set.

### `tmux_select_window` (~53 tokens)

Focus a window

Select a window so subsequent commands target it.

Input parameters:

- `host` (string): SSH host alias (optional). Uses default host if set.
- `target` (string, required): Window target (session:window or window id).

### `tmux_select_pane` (~56 tokens)

Focus a pane

Select a pane so subsequent commands target it.

Input parameters:

- `host` (string): SSH host alias (optional). Uses default host if set.
- `target` (string, required): Pane target (pane id or session:window.pane).

### `tmux_set_sync_panes` (~69 tokens)

Toggle synchronize-panes

Enable or disable synchronize-panes for a window.

Input parameters:

- `host` (string): SSH host alias (optional). Uses default host if set.
- `on` (boolean, required): Whether to enable synchronize-panes.
- `target` (string, required): Window target (session:window or window id).

### `tmux_save_layout_profile` (~72 tokens)

Save a layout profile

Capture layouts for all windows in a session and store them under a profile name.

Input parameters:

- `host` (string): SSH host alias (optional). Uses default host if set.
- `name` (string, required): Profile name to store.
- `session` (string): Session to capture (optional, uses default session).

### `tmux_apply_layout_profile` (~83 tokens)

Apply a saved layout profile

Apply a previously saved layout profile to a session. Windows are matched by index; pane counts must be compatible.

Input parameters:

- `host` (string): SSH host alias (optional). Uses default host if set.
- `name` (string, required): Profile name to load.
- `session` (string): Session to apply to (optional; uses saved session from profile if omitted).

### `tmux_health` (~43 tokens)

Health check

Check tmux availability, PATH/bin resolution, and session listing for a host.

Input parameters:

- `host` (string): SSH host alias (optional). Uses default host if set.

### `tmux_list_sessions` (~41 tokens)

List tmux sessions

Enumerate sessions with attachment counts and window totals.

Input parameters:

- `host` (string): SSH host alias (optional). If omitted, uses default host or local.

### `tmux_list_windows` (~63 tokens)

List windows

List windows within a session (or all sessions if no target provided).

Input parameters:

- `host` (string): SSH host alias (optional). Uses default host if set.
- `target` (string): Session name or id to list (optional). If omitted, lists all.

### `tmux_list_panes` (~61 tokens)

List panes

List panes across windows or inside a specific target.

Input parameters:

- `host` (string): SSH host alias (optional). Uses default host if set.
- `target` (string): Target (session, window, or pane) to narrow the list. Optional.

### `tmux_capture_pane` (~106 tokens)

Capture pane output

Read the scrollback of a pane to observe command results.

Input parameters:

- `end` (number): Optional end line offset.
- `host` (string): SSH host alias (optional). Uses default host if set.
- `start` (number): Optional start line offset (e.g. -200 for last 200 lines). Defaults to -200.
- `target` (string): Pane target (pane id or session:window.pane). If omitted, uses default pane if set.

### `tmux_batch_capture` (~44 tokens)

Capture multiple panes (batch)

Capture scrollback from multiple panes in parallel (readonly).

Input parameters:

- `defaultLines` (number): Default lines to capture for targets without lines.
- `targets` (array, required)

### `tmux_send_keys` (~112 tokens)

Send keys to pane

Send keystrokes to a tmux target, optionally appending Enter.

Input parameters:

- `enter` (boolean): Append Enter after the keys.
- `host` (string): SSH host alias (optional). Uses default host if set.
- `keys` (string, required): The text/keys to send. Supports <SPACE>/<ENTER>/<TAB>/<ESC>. Empty + enter=true sends Enter.
- `target` (string): Pane target (pane id or session:window.pane). If omitted, uses default pane if set.

### `tmux_run_batch` (~203 tokens)

Run a batch of commands in one call

Execute multiple shell commands sequentially in one tmux pane and capture the output. Uses "&&" by default (fail fast) or ";" when failFast=false. Automatically captures output (paged) and can clean the prompt before writing.

Input parameters:

- `captureLines` (number): Lines to capture after execution (default 200).
- `cleanPrompt` (boolean): Send Ctrl+C then Ctrl+U before first write to clear any stray input (bash/zsh friendly). Default true.
- `failFast` (boolean): Use && between commands (default true). Set false to use ";" so later commands run even if earlier fail.
- `host` (string): SSH host alias (optional). Uses default host if set.
- `steps` (array, required): List of commands to run sequentially in the same pane, with optional per-step Enter.
- `target` (string): Pane target (pane id or session:window.pane). If omitted, uses default pane if set.

### `tmux_new_session` (~64 tokens)

Create a new session

Create a detached tmux session to collaborate in.

Input parameters:

- `command` (string): Optional command to start in the first window.
- `host` (string): SSH host alias (optional). Uses default host if set.
- `name` (string, required): Session name to create.

### `tmux_new_window` (~92 tokens)

Create a new window

Create a window in a target session, useful for side-by-side collaboration.

Input parameters:

- `command` (string): Optional command to run when the window starts.
- `host` (string): SSH host alias (optional). Uses default host if set.
- `name` (string): Optional window name.
- `target` (string, required): Target session (or window) to create the window in, e.g. mysession.

### `tmux_split_pane` (~94 tokens)

Split a pane

Split a pane horizontally or vertically, optionally running a command.

Input parameters:

- `command` (string): Optional command to run in the new pane.
- `host` (string): SSH host alias (optional). Uses default host if set.
- `orientation` (string): horizontal = side-by-side (-h), vertical = stacked (-v).
- `target` (string, required): Pane target (pane id or session:window.pane).

### `tmux_kill_session` (~65 tokens)

Kill a session

Terminate a tmux session. Use with care.

Input parameters:

- `confirm` (boolean): Must be true to proceed.
- `host` (string): SSH host alias (optional). Uses default host if set.
- `target` (string, required): Session name or id to kill.

### `tmux_kill_window` (~70 tokens)

Kill a window

Close a tmux window. Use with care.

Input parameters:

- `confirm` (boolean): Must be true to proceed.
- `host` (string): SSH host alias (optional). Uses default host if set.
- `target` (string, required): Window target, e.g. session:window or window id.

### `tmux_kill_pane` (~73 tokens)

Kill a pane

Close a tmux pane. Use with care.

Input parameters:

- `confirm` (boolean): Must be true to proceed.
- `host` (string): SSH host alias (optional). Uses default host if set.
- `target` (string, required): Pane target, e.g. session:window.pane or pane id.

### `tmux_rename_session` (~57 tokens)

Rename a session

Rename a tmux session.

Input parameters:

- `host` (string): SSH host alias (optional). Uses default host if set.
- `name` (string, required): New session name.
- `target` (string, required): Existing session name or id.

### `tmux_rename_window` (~64 tokens)

Rename a window

Rename a tmux window.

Input parameters:

- `host` (string): SSH host alias (optional). Uses default host if set.
- `name` (string, required): New window name.
- `target` (string, required): Window target, e.g. session:window or window id.

### `tmux_command` (~103 tokens)

Run arbitrary tmux command

Execute any tmux subcommand with raw args. Use this when helpers do not cover your use case. You are responsible for correctness and safety.

Input parameters:

- `args` (array, required): Arguments to pass to tmux (do not include the tmux binary itself).
- `confirm` (boolean): Set true if the command is destructive (kill*, attach -k, unlink-window, etc).
- `host` (string): SSH host alias (optional). Uses default host if set.

## Diagnostics

Captured diagnostic sections: Provenance, Vulnerabilities, Dependencies. The full working is on the page: https://verifymcp.io/servers/k8ika0s-mcp-tmux/k8ika0s-mcp-tmux#diagnostics

## Score history

- 2026-08-04: 70
- 2026-08-03: 71
- 2026-08-02: 70
- 2026-08-01: 5
- 2026-07-31: 26
- 2026-07-30: 53
- 2026-07-28: 53
- 2026-07-27: 53

## Links

- npm package: https://www.npmjs.com/package/@k8ika0s/mcp-tmux
- Socket report: https://socket.dev/npm/package/@k8ika0s/mcp-tmux
- Repository: https://github.com/k8ika0s/mcp-tmux
- Changelog RSS feed: https://verifymcp.io/servers/k8ika0s-mcp-tmux/k8ika0s-mcp-tmux/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/k8ika0s-mcp-tmux/k8ika0s-mcp-tmux/changelog.json
- HTML version of this page: https://verifymcp.io/servers/k8ika0s-mcp-tmux/k8ika0s-mcp-tmux
