
Headless Terminal
STDIOHigh-performance Rust MCP server for headless terminal with multi-session management.
High-performance Rust MCP server for headless terminal with multi-session management.
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 # 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:3000 # 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-mcp
Compared to the original TypeScript implementation:
MIT License
Copyright (c) 2025 Atlas Futures Inc.
See LICENSE for details.
Contributions welcome! Please read CONTRIBUTING.md for guidelines.
Built with ❤️ by Memex