A Terminal User Interface (TUI) for managing multiple local development processes. View real-time logs, monitor status, and control all your dev servers from a single dashboard.
Built with OpenTUI.
When working on a full-stack project, you often need to run multiple processes simultaneously—a frontend dev server, a backend API, database containers, workers, etc. ToolUI gives you:
- Single dashboard for all your processes with tabbed log viewing
- Real-time logs with search and ANSI color support
- Status monitoring to see at a glance what's running, stopped, or crashed
- Health checks to monitor service availability
- AI integration via MCP to let your IDE assistant read logs and control processes
brew install tomagranate/toolui/tooluinpm install -g @tomagranate/tooluicurl -fsSL https://raw.githubusercontent.com/tomagranate/toolui/main/install.sh | bashDownload the latest binary for your platform from Releases.
| Platform | Download |
|---|---|
| macOS (Apple Silicon) | toolui-darwin-arm64.tar.gz |
| macOS (Intel) | toolui-darwin-x64.tar.gz |
| Linux (x64) | toolui-linux-x64.tar.gz |
| Linux (ARM64) | toolui-linux-arm64.tar.gz |
| Windows (x64) | toolui-windows-x64.zip |
- Create a config file in your project:
toolui init- Edit
toolui.config.tomlto add your processes:
[[tools]]
name = "frontend"
command = "npm"
args = ["run", "dev"]
cwd = "./frontend"
[[tools]]
name = "backend"
command = "python"
args = ["-m", "uvicorn", "main:app", "--reload"]
cwd = "./backend"- Start the dashboard:
toolui| Command | Description |
|---|---|
toolui |
Start the TUI dashboard |
toolui init |
Create a sample config file in the current directory |
toolui mcp |
Start the MCP server for AI agent integration |
| Option | Description |
|---|---|
-c, --config <path> |
Path to config file (default: toolui.config.toml) |
-h, --help |
Show help message |
# Start with default config
toolui
# Use a custom config file
toolui --config ./configs/dev.toml
toolui -c ./configs/dev.toml
# Create a new config file
toolui init
# Start MCP server for AI integration
toolui mcpToolUI is configured via a TOML file. By default, it looks for toolui.config.toml in the current directory.
[[tools]]
name = "server"
command = "npm"
args = ["run", "dev"][home]
enabled = true
title = "My Project"
[ui]
theme = "mist"
showTabNumbers = true
[mcp]
enabled = true
[[tools]]
name = "web"
command = "npm"
args = ["run", "dev"]
cwd = "./web"
description = "Next.js frontend"
[tools.ui]
label = "Open App"
url = "http://localhost:3000"
[tools.healthCheck]
url = "http://localhost:3000/api/health"
interval = 5000
[[tools]]
name = "api"
command = "cargo"
args = ["watch", "-x", "run"]
cwd = "./api"
description = "Rust API server"
cleanup = ["pkill -f 'target/debug/api'"]
[tools.env]
RUST_LOG = "debug"For a complete reference of all configuration options, see the sample config file.
ToolUI includes several built-in themes. Set in your config:
[ui]
theme = "mist"Available themes: default (Moss), mist, cappuccino, synthwave, terminal (auto-detect from your terminal).
ToolUI can expose an HTTP API for AI agents (Cursor, Claude, etc.) via the Model Context Protocol.
[mcp]
enabled = true
port = 18765Add to your MCP configuration (e.g., ~/.cursor/mcp.json):
{
"mcpServers": {
"toolui": {
"command": "toolui",
"args": ["mcp"]
}
}
}| Tool | Description |
|---|---|
list_processes |
List all processes with their status |
get_logs |
Get recent logs (supports search and line limits) |
stop_process |
Stop a running process |
restart_process |
Restart a process |
clear_logs |
Clear logs for a process |
reload_config |
Reload config file and restart all processes |
See the Contributing Guide for development setup and guidelines.
MIT