Headless Terminal
STDIOHigh-performance Rust MCP server for headless terminal management with multi-session support
High-performance Rust MCP server for headless terminal management with multi-session support
A high-performance Rust implementation of a Model Context Protocol (MCP) server for headless terminal ht.
brew tap memextech/tap brew install ht-mcp
Download from releases:
# macOS Intel curl -L https://github.com/memextech/ht-mcp/releases/latest/download/ht-mcp-x86_64-apple-darwin -o ht-mcp # macOS Apple Silicon curl -L https://github.com/memextech/ht-mcp/releases/latest/download/ht-mcp-aarch64-apple-darwin -o ht-mcp # Linux curl -L https://github.com/memextech/ht-mcp/releases/latest/download/ht-mcp-x86_64-unknown-linux-gnu -o ht-mcp # Windows (PowerShell) curl.exe -L https://github.com/memextech/ht-mcp/releases/latest/download/ht-mcp-x86_64-pc-windows-msvc -o ht-mcp.exe # Make executable and install chmod +x ht-mcp && sudo mv ht-mcp /usr/local/bin/
# From crates.io (stable) cargo install ht-mcp # From git (latest) cargo install --git https://github.com/memextech/ht-mcp
git clone https://github.com/memextech/ht-mcp.git cd ht-mcp git submodule update --init --recursive cargo install --path .
See docs/INSTALLATION.md for detailed installation options.
| Tool | Description | Parameters | 
|---|---|---|
ht_create_session | Create new terminal session | command?, enableWebServer? | 
ht_send_keys | Send keystrokes to session | sessionId, keys[] | 
ht_take_snapshot | Capture terminal state | sessionId | 
ht_execute_command | Execute command and get output | sessionId, command | 
ht_list_sessions | List all active sessions | None | 
ht_close_session | Close terminal session | sessionId | 
Note: Parameters use camelCase (e.g.,
sessionId,enableWebServer) for MCP compatibility.
Add to your MCP client configuration:
{ "mcpServers": { "ht-mcp": { "command": "ht-mcp", "args": ["--debug"] } } }
For custom installation paths:
{ "mcpServers": { "ht-mcp": { "command": "/path/to/ht-mcp", "args": [] } } }
# Start the MCP server ht-mcp # With debug logging ht-mcp --debug
Once configured in your MCP client:
ht_create_session → Returns session IDht_execute_command with session ID and commandht_send_keys for multi-step interactionsht_take_snapshot to see current terminalht_close_session when finishedThis server returns human-readable text responses (not JSON), designed for natural language interaction:
# Create session response HT session created successfully! Session ID: abc123-def456-789... 🌐 Web server enabled! View live terminal at: http://127.0.0.1:3618
# Terminal snapshot response Terminal Snapshot (Session: abc123...) bash-3.2$ ls -la total 16 drwxr-xr-x 4 user staff 128 Jun 13 10:30 . -rw-r--r-- 1 user staff 45 Jun 13 10:30 file.txt bash-3.2$
# Clone with submodules git clone --recursive https://github.com/memextech/ht-mcp.git cd ht-mcp # Build cargo build # Run cargo run # Test cargo test
Installation Issues:
~/.cargo/bin is in PATHRuntime Issues:
ht-mcp --debug for verbose loggingwhich ht-mcpCompared to the original TypeScript implementation:
Apache 2.0 License
Copyright (c) 2025 Atlas Futures Inc.
See LICENSE for details.
Contributions welcome! Please read CONTRIBUTING.md for guidelines.
Built with Memex✨