Zsh MCP Server

Zsh for Claude Code. PTY mode lets Claude type passwords. NEVERHANG + A.L.A.N.

Local serverstdioPython

What is the Zsh MCP server?

If you already use Zsh, the zsh mcp server is the piece that lets your assistant work with it directly. Zsh for Claude Code. PTY mode lets Claude type passwords. NEVERHANG + A.L.A.N.

What the server does

Zsh execution tool for Claude Code with full Bash parity, yield-based oversight, PTY mode, NEVERHANG circuit breaker, and A.L.A.N. short-term learning.

Available tools

The toolset is worth reading before you wire it up, because it tells you what the integration is really for:

  • zsh — Execute command with yield-based oversight
  • zsh_poll — Get new output (delta) from running task with line numbers
  • zsh_send — Send input to task's stdin
  • zsh_kill — Kill a running task
  • zsh_tasks — List all active tasks
  • zsh_health — Overall health status
  • zsh_alan_stats — A.L.A.N. database statistics
  • zsh_alan_query — Query pattern insights for a command
  • zsh_neverhang_status — Circuit breaker state
  • zsh_neverhang_reset — Reset circuit to CLOSED

Installation

Installation goes through your MCP client rather than a global install: point it at required on PyPI and it is fetched when the client starts. The copy-paste blocks for Claude Desktop, Claude Code and Cursor are further down this page.

Credentials and setup notes

Configuration is passed through the environment: NEVERHANG_TIMEOUT_DEFAULT, NEVERHANG_TIMEOUT_MAX, ALAN_DB_PATH. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.

Where it fits

Among the planning and project tracking options, the useful question is rarely "what can it do" but "what does it cost you to run" — permissions, credentials, and how much of your context its toolset consumes. Zsh's toolset — zsh, zsh_poll, zsh_send and 7 more — is a fair guide to whether it matches your workflow. It is maintained by ArkTechNWA; worth a glance at recent repository activity before you build anything load-bearing on it.

SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.

Worth knowing first

  • It runs with your machine's permissions. That is convenient and also the reason to think about what you point it at before you approve a tool call.
  • With 10 tools registered it takes up a noticeable share of the context window; turn it off in projects that never touch Zsh.
  • Keep per-call confirmation enabled while you learn its behaviour; it is the cheapest safeguard you have.

Available tools

ToolWhat it does
zshExecute command with yield-based oversight
zsh_pollGet new output (delta) from running task with line numbers
zsh_sendSend input to task's stdin
zsh_killKill a running task
zsh_tasksList all active tasks
zsh_healthOverall health status
zsh_alan_statsA.L.A.N. database statistics
zsh_alan_queryQuery pattern insights for a command
zsh_neverhang_statusCircuit breaker state
zsh_neverhang_resetReset circuit to CLOSED

How to install the Zsh MCP server

{
  "mcpServers": {
    "zsh-tool": {
      "type": "stdio",
      "command": "/path/to/zsh-tool/scripts/run-mcp.sh",
      "env": {
        "NEVERHANG_TIMEOUT_DEFAULT": "120",
        "NEVERHANG_TIMEOUT_MAX": "600"
      }
    }
  }
}

Configuration as documented by the project. Restart the client after saving.

Configuration

VariableDescriptionRequired
NEVERHANG_TIMEOUT_DEFAULTConfiguration value read at startup.Optional
NEVERHANG_TIMEOUT_MAXConfiguration value read at startup.Optional
ALAN_DB_PATHFilesystem location the server is allowed to use.Optional

Example prompts to try

  • Use Zsh to zsh.
  • Use Zsh to zsh poll.
  • Use Zsh to zsh send.

Frequently asked questions

It connects Zsh to MCP-compatible AI assistants such as Claude and Cursor, exposing 10 tools (zsh, zsh_poll, zsh_send, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Zsh directly.