Poof

Provides AI agents with real macOS Terminal control, including keystrokes, typing, and screen capture for automated workflows.
  • typescript

0

GitHub Stars

typescript

Language

5 months ago

First Indexed

2 months ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "mattapperson-poof-mcp": {
      "command": "./bin/poof-mcp",
      "args": []
    }
  }
}

Poof MCP Server lets AI agents control macOS Terminal.app in real time. It exposes terminal sessions you can observe and interact with, including keystroke control, fast typing, and screen content capture, enabling powerful automation and testing workflows.

How to use

You run the Poof MCP Server locally and connect an MCP client to drive macOS Terminal sessions. Start a session, view the Terminal.app window in real time, and send keyboard input or text to automate commands. You can resize the terminal, restart sessions, and wait for specific text or screen stability before proceeding. Use the available tools to create, manage, and interrogate terminal sessions, then retrieve rendered screen content as plain text for verification.

How to install

Prerequisites ensure you can build and run the MCP server and interact with Terminal.app.

# 1) zmx - Terminal session manager
# macOS (Apple Silicon)
curl -LO https://zmx.sh/a/zmx-0.0.2-macos-aarch64.tar.gz
tar -xzf zmx-0.0.2-macos-aarch64.tar.gz
mv zmx ~/.local/bin/

# macOS (Intel)
curl -LO https://zmx.sh/a/zmx-0.0.2-macos-x86_64.tar.gz
tar -xzf zmx-0.0.2-macos-x86_64.tar.gz
mv zmx ~/.local/bin/
# 2) macOS Permissions
# poof-mcp uses AppleScript to control Terminal.app, which requires permissions:
# Accessibility and Automation

# When running for the first time, grant access to the MCP server process (e.g., Claude, VS Code, Terminal).
# 3) Install Poof MCP
# Clone repository and install dependencies
git clone https://github.com/mattapperson/poof-mcp.git
cd poof-mcp

# Install dependencies (including native modules)
bun install
# 4) Start the MCP server locally (example)
./bin/poof-mcp
# 5) Optional: run help or version to verify
./bin/poof-mcp --help
./bin/poof-mcp --version

Additional configuration and notes

To use the server as an MCP target, configure your client to communicate with the local stdio server at the path shown when starting the server. The official command to start the server is the stdio entry ./bin/poof-mcp. You will typically start the server and then connect an MCP client to drive Terminal sessions. If you encounter macOS permission prompts, grant accessibility and automation permissions to the app running the MCP server.

Tool usage summary: you can create a new zmx session, open a Terminal.app window, send keystrokes or text, resize or restart the terminal, wait for specific text, and fetch the screen contents as plain text. This enables automated workflows that require real-time terminal interaction.

Security and troubleshooting notes

Only run the MCP server on trusted devices. MacOS permissions dialogs may appear on first use; ensure you grant required permissions to the MCP server process. If Terminal windows do not appear or you do not see expected keystrokes, verify that zmx is running and that the MCP server has the necessary accessibility and automation permissions.

Available tools

send_keystrokes

Send key presses to the active Terminal session, including single keys, arrow keys, function keys, and modifier combinations.

type_text

Type a string of text into the active Terminal session, simulating user input.

get_screen_text

Capture and return the current Terminal window content as plain text for verification or processing.

get_status

Query the current status of the terminal session, such as active window and session health.

list_sessions

List all active zmx sessions that the MCP server can manage.

kill_session

Terminate a running zmx session and close its Terminal window.

create_session

Create a new zmx session and open a Terminal.app window for interaction.

resize_terminal

Adjust the terminal window dimensions to fit content or client layout.

restart_terminal

Restart the terminal session, optionally with a new command to run.

wait_for_text

Pause execution until specified text appears on the screen, with a default timeout.

wait_for_stable

Pause until the screen content stops changing for a set stable duration.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational