{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"awesome-tmux","slug":"tmux","name":"Tmux","type":"mcp","url":"https://github.com/nickgnd/tmux-mcp","page_url":"https://unfragile.ai/tmux","categories":["mcp-servers"],"tags":[],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"awesome-tmux__cap_0","uri":"capability://tool.use.integration.mcp.based.tmux.session.enumeration.and.introspection","name":"mcp-based tmux session enumeration and introspection","description":"Exposes tmux session hierarchy through MCP resource protocol, allowing AI assistants to discover and inspect all active sessions with metadata including session names, window counts, creation timestamps, and attachment status. Implements resource subscription pattern via @modelcontextprotocol/sdk to enable real-time session state synchronization and dynamic resource updates when sessions are created or destroyed.","intents":["I need Claude to see all my tmux sessions and pick the right one to work with","I want to programmatically discover which tmux sessions are currently running","I need to monitor tmux session state changes in real-time from an AI assistant"],"best_for":["AI-assisted terminal workflow automation","Teams using Claude Desktop for DevOps tasks","Developers building AI agents that manage multiple terminal sessions"],"limitations":["Requires tmux to be installed and running on the host system","Session discovery is limited to the user's tmux namespace — cannot access other users' sessions","Resource subscription updates depend on MCP client polling frequency, not true event-driven updates"],"requires":["tmux 2.0+","Node.js 16+","Claude Desktop or compatible MCP client","@modelcontextprotocol/sdk package"],"input_types":[],"output_types":["structured JSON with session metadata","tmux://sessions resource URIs"],"categories":["tool-use-integration","terminal-multiplexing"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-tmux__cap_1","uri":"capability://automation.workflow.asynchronous.command.execution.with.deferred.result.retrieval","name":"asynchronous command execution with deferred result retrieval","description":"Executes shell commands in tmux panes without blocking the MCP server, returning a command ID immediately and allowing result retrieval via separate resource lookup. Implements fire-and-forget execution pattern with optional polling via tmux://command/{commandId}/result resources, supporting both synchronous workflows (wait for completion) and asynchronous patterns (fire and check later). Handles shell-specific exit code detection through configurable --shell-type parameter to correctly identify command success/failure across bash, zsh, and fish.","intents":["I want to run a long-running command in tmux and check the result later without blocking","I need to execute multiple commands in parallel across different panes and collect results asynchronously","I want Claude to run a build command and retrieve the output once it completes, without waiting synchronously"],"best_for":["Long-running build/test workflows in CI/CD contexts","Multi-pane parallel execution scenarios","AI agents that need non-blocking command execution to maintain responsiveness"],"limitations":["Result retrieval requires polling via resource lookup — no webhook or event-driven callbacks","Command timeout handling is implicit (relies on shell timeout mechanisms), not explicitly managed by MCP server","Exit code detection accuracy depends on shell configuration and --shell-type parameter correctness","Results are not persisted — if MCP server restarts, command ID references become invalid"],"requires":["tmux 2.0+","Node.js 16+","Target pane must exist in tmux session","Shell environment properly configured (bash, zsh, or fish)"],"input_types":["shell command string","pane identifier (session:window.pane format)"],"output_types":["command ID (string)","command result object with stdout, stderr, exit code"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-tmux__cap_2","uri":"capability://data.processing.analysis.interactive.pane.content.capture.with.color.preservation","name":"interactive pane content capture with color preservation","description":"Captures the current visible content of a tmux pane with optional ANSI color code preservation, enabling AI assistants to read terminal output including colored text, syntax highlighting, and styled formatting. Implements configurable capture modes via capture-pane tool that can preserve raw ANSI escape sequences or strip them for plain text, supporting both human-readable colored output and machine-parseable plain text depending on use case. Handles pane history buffer retrieval to capture scrollback content beyond the visible viewport.","intents":["I need Claude to read the colored output from my test runner and understand which tests failed","I want to capture the current state of my editor or REPL pane to show Claude what's on screen","I need to retrieve historical command output from a pane's scrollback buffer for analysis"],"best_for":["Reading colored terminal output (test results, logs, syntax-highlighted code)","Capturing REPL/editor state for AI analysis","Debugging workflows where terminal visual state matters"],"limitations":["Capture is point-in-time snapshot — does not stream live updates","ANSI color preservation adds overhead; plain text capture is faster","Scrollback buffer size is limited by tmux history-limit setting (default 2000 lines)","Cannot capture interactive TUI elements (mouse clicks, cursor position) — only text content"],"requires":["tmux 2.0+","Target pane must exist and be attached to a session","Node.js 16+"],"input_types":["pane identifier (session:window.pane format)","capture options (preserve-colors boolean, history-lines number)"],"output_types":["plain text string","ANSI-colored text string"],"categories":["data-processing-analysis","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-tmux__cap_3","uri":"capability://automation.workflow.pane.lifecycle.management.with.split.and.kill.operations","name":"pane lifecycle management with split and kill operations","description":"Creates, splits, and destroys tmux panes within windows through MCP tools, enabling AI assistants to dynamically manage terminal layout and organize command execution across multiple panes. Implements split-pane operation with configurable split direction (horizontal/vertical) and target pane selection, allowing creation of new panes for parallel execution. Supports pane destruction via kill-pane tool with optional confirmation to prevent accidental data loss.","intents":["I want Claude to split my current pane horizontally so it can run a build in one pane while I work in another","I need to create a new pane for running tests in parallel with my main development work","I want to clean up unused panes after a workflow completes"],"best_for":["Dynamic terminal layout management during AI-assisted workflows","Parallel execution scenarios requiring multiple panes","Cleanup operations after multi-step automation tasks"],"limitations":["Split operations are limited to existing windows — cannot create new windows directly via pane tools","Pane IDs are ephemeral and change when panes are killed/recreated — no persistent pane references","Kill operations are immediate and irreversible — no undo mechanism","Split direction (horizontal/vertical) is relative to current pane layout, which may be non-obvious"],"requires":["tmux 2.0+","Target pane must exist in an active window","Node.js 16+"],"input_types":["pane identifier (session:window.pane format)","split direction (horizontal or vertical)","optional command to run in new pane"],"output_types":["new pane identifier","confirmation of kill operation"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-tmux__cap_4","uri":"capability://automation.workflow.raw.mode.command.execution.for.interactive.applications","name":"raw mode command execution for interactive applications","description":"Executes commands in tmux panes with raw mode enabled, allowing interactive applications like REPLs, text editors, and TUI tools to receive input and maintain state across multiple interactions. Implements key injection without automatic Enter appending, enabling navigation of interactive menus and TUI applications through arrow keys and special characters. Maintains pane state between command invocations, allowing AI assistants to interact with long-running interactive sessions (Python REPL, Node REPL, vim, etc.).","intents":["I want Claude to interact with a Python REPL by sending commands and reading responses across multiple turns","I need to navigate an interactive menu in a TUI application using arrow keys and selections","I want to run an interactive editor or debugger where Claude can send keystrokes and observe state changes"],"best_for":["REPL-based workflows (Python, Node, Ruby, etc.)","Interactive TUI applications (vim, less, fzf, etc.)","Debugging sessions requiring interactive input/output","AI agents that need to maintain stateful interaction with terminal applications"],"limitations":["Raw mode requires careful handling of special characters and escape sequences — incorrect input can corrupt pane state","No built-in timeout for interactive commands — long-running interactions may block the MCP server","Interactive output parsing is application-specific — no generic way to detect when application is ready for next input","Key injection without Enter requires explicit newline characters in command string, adding complexity"],"requires":["tmux 2.0+","Target pane must be attached to a session","Interactive application must be running in the pane","Node.js 16+"],"input_types":["pane identifier (session:window.pane format)","command string (may include special characters and newlines)","raw mode flag (boolean)"],"output_types":["command execution confirmation","pane content after command execution"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-tmux__cap_5","uri":"capability://automation.workflow.window.lifecycle.management.with.creation.and.destruction","name":"window lifecycle management with creation and destruction","description":"Creates and destroys tmux windows within sessions through MCP tools, enabling AI assistants to organize command execution across multiple windows within a single session. Implements window creation with optional command execution in the new window, allowing immediate setup of new windows for specific tasks. Supports window destruction via kill-window tool with proper cleanup of all contained panes.","intents":["I want Claude to create a new window for running tests while keeping my main development window separate","I need to organize multiple parallel workflows in different windows within the same session","I want to clean up temporary windows after a workflow completes"],"best_for":["Multi-window workflow organization","Parallel task execution in isolated windows","Session-based project organization"],"limitations":["Window IDs are ephemeral and change when windows are killed/recreated","No window naming or tagging mechanism beyond tmux's built-in window names","Kill operations are immediate and irreversible","Window layout and pane arrangement cannot be directly controlled — only creation/destruction"],"requires":["tmux 2.0+","Target session must exist","Node.js 16+"],"input_types":["session identifier (session name or number)","optional command to run in new window","optional window name"],"output_types":["new window identifier","confirmation of kill operation"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-tmux__cap_6","uri":"capability://automation.workflow.session.lifecycle.management.with.creation.discovery.and.termination","name":"session lifecycle management with creation, discovery, and termination","description":"Creates, discovers, and destroys tmux sessions through MCP tools and resources, enabling AI assistants to manage the top-level session hierarchy. Implements session creation with optional initial command and window setup, session discovery via list-sessions and find-session tools with metadata extraction, and session termination via kill-session. Uses tmux list-sessions with format strings to extract structured metadata (session name, window count, creation time, attachment status) without text parsing.","intents":["I want Claude to create a new tmux session for a specific project with a particular shell environment","I need to find an existing session by name and attach to it for continued work","I want to clean up old sessions after a project is complete"],"best_for":["Project-based session organization","AI-assisted session lifecycle management","Automated cleanup of temporary sessions"],"limitations":["Session creation cannot directly attach to the session — requires separate attach operation","Session discovery is limited to the user's tmux namespace","Kill operations are immediate and irreversible — all windows and panes are destroyed","Session names must be unique within the tmux server instance"],"requires":["tmux 2.0+","Node.js 16+"],"input_types":["session name (string)","optional initial command","optional shell type"],"output_types":["session identifier","session metadata (window count, creation time, attachment status)"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-tmux__cap_7","uri":"capability://tool.use.integration.mcp.protocol.server.implementation.with.stdio.transport","name":"mcp protocol server implementation with stdio transport","description":"Implements a complete MCP server using @modelcontextprotocol/sdk that exposes tmux functionality through standardized MCP primitives (tools, resources, prompts). Operates as a Node.js process communicating with Claude Desktop via stdio transport, translating MCP protocol requests into tmux commands and returning structured responses. Declares server capabilities including resource subscription support, tool change notifications, and logging, enabling dynamic resource updates and real-time state synchronization.","intents":["I want Claude Desktop to have native integration with my tmux sessions without custom plugins","I need a standardized MCP interface to tmux that works with any MCP-compatible client","I want to enable real-time resource subscriptions so Claude sees session state changes"],"best_for":["Claude Desktop users wanting native tmux integration","Teams building MCP-compatible AI agents","Developers extending Claude's capabilities with terminal automation"],"limitations":["Requires Node.js runtime — not available for Python-only environments","Stdio transport has latency overhead vs direct library integration","Resource subscription updates depend on MCP client polling frequency","No built-in authentication or authorization — assumes trusted local environment"],"requires":["Node.js 16+","npm or yarn for package installation","Claude Desktop 0.1.0+ or compatible MCP client","@modelcontextprotocol/sdk package"],"input_types":["MCP protocol messages (JSON-RPC via stdio)"],"output_types":["MCP protocol responses (JSON-RPC via stdio)"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-tmux__cap_8","uri":"capability://automation.workflow.shell.specific.command.execution.with.exit.code.detection","name":"shell-specific command execution with exit code detection","description":"Executes commands with shell-specific configuration to reliably detect command completion and exit status across bash, zsh, and fish environments. Implements configurable --shell-type parameter that adjusts exit code detection mechanisms based on shell environment, using shell-specific markers (e.g., echo $? for bash) to identify command success/failure. Handles shell-specific quirks like different prompt formats and exit code variable names, ensuring accurate command result detection regardless of shell configuration.","intents":["I want Claude to run commands in my zsh environment and correctly detect exit codes","I need reliable command success/failure detection across different shell environments","I want to use fish shell with Claude automation without losing exit code information"],"best_for":["Multi-shell environments (bash, zsh, fish)","CI/CD workflows requiring reliable exit code detection","Teams with heterogeneous shell configurations"],"limitations":["Shell-type parameter must be correctly configured — incorrect setting breaks exit code detection","Custom shell configurations (aliases, functions, prompt modifications) may interfere with exit code detection","Non-standard shells (ksh, tcsh, etc.) are not supported","Exit code detection adds latency due to additional shell invocations"],"requires":["tmux 2.0+","bash 4.0+, zsh 5.0+, or fish 2.3.0+","Node.js 16+","--shell-type parameter set correctly in configuration"],"input_types":["shell command string","shell type identifier (bash, zsh, or fish)"],"output_types":["command exit code (integer)","command stdout/stderr"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-tmux__cap_9","uri":"capability://tool.use.integration.claude.desktop.configuration.integration.via.npm.package","name":"claude desktop configuration integration via npm package","description":"Distributes tmux-mcp as an npm package that Claude Desktop can install and configure through its mcpServers configuration file, enabling one-command setup without manual compilation or path configuration. Implements binary distribution model where TypeScript source is compiled to JavaScript and exposed as tmux-mcp command, allowing Claude Desktop to invoke the MCP server directly. Supports configuration parameters (--shell-type) passed through Claude Desktop's mcpServers config, enabling environment-specific customization without code changes.","intents":["I want to install tmux-mcp in Claude Desktop with a single npm install command","I need to configure tmux-mcp for my specific shell environment (bash, zsh, fish) in Claude Desktop","I want to update tmux-mcp to the latest version without manual recompilation"],"best_for":["Claude Desktop users wanting simple one-command installation","Teams managing multiple Claude Desktop instances","Users without Node.js/TypeScript expertise"],"limitations":["Requires npm/yarn installation — not available for users without Node.js","Configuration changes require editing Claude Desktop's config file manually","npm package updates require manual version bumps in package.json","Binary distribution adds ~5-10MB to node_modules"],"requires":["Node.js 16+","npm 7+ or yarn 1.22+","Claude Desktop 0.1.0+","Write access to Claude Desktop config directory"],"input_types":["npm package specification (e.g., tmux-mcp@latest)","configuration parameters (--shell-type)"],"output_types":["installed npm package","tmux-mcp command available in PATH"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":30,"verified":false,"data_access_risk":"high","permissions":["tmux 2.0+","Node.js 16+","Claude Desktop or compatible MCP client","@modelcontextprotocol/sdk package","Target pane must exist in tmux session","Shell environment properly configured (bash, zsh, or fish)","Target pane must exist and be attached to a session","Target pane must exist in an active window","Target pane must be attached to a session","Interactive application must be running in the pane"],"failure_modes":["Requires tmux to be installed and running on the host system","Session discovery is limited to the user's tmux namespace — cannot access other users' sessions","Resource subscription updates depend on MCP client polling frequency, not true event-driven updates","Result retrieval requires polling via resource lookup — no webhook or event-driven callbacks","Command timeout handling is implicit (relies on shell timeout mechanisms), not explicitly managed by MCP server","Exit code detection accuracy depends on shell configuration and --shell-type parameter correctness","Results are not persisted — if MCP server restarts, command ID references become invalid","Capture is point-in-time snapshot — does not stream live updates","ANSI color preservation adds overhead; plain text capture is faster","Scrollback buffer size is limited by tmux history-limit setting (default 2000 lines)","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.05,"quality":0.45,"ecosystem":0.39999999999999997,"match_graph":0.25,"freshness":0.52,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.15,"match_graph":0.23,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-06-17T09:51:04.050Z","last_scraped_at":"2026-05-03T14:00:15.503Z","last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=tmux","compare_url":"https://unfragile.ai/compare?artifact=tmux"}},"signature":"9GB/GhhZ+Ru2wHqJP5vcuBAAWDmRAxjqsdHa3o+xzuOLIzye1uP42/zxv47Np8USDrynOhOgjln2FK9op0hTBg==","signedAt":"2026-06-21T18:18:41.594Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/tmux","artifact":"https://unfragile.ai/tmux","verify":"https://unfragile.ai/api/v1/verify?slug=tmux","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}