devir
Dev Runner CLI - Terminal UI for managing multiple dev services with colored logs, filtering, and MCP integration for Claude Code
claude mcp add --transport stdio productdevbook-devir devir --mcp
How to use
Devir is a terminal UI and MCP-enabled runner for managing multiple development services. It can run traditional long-running services (web servers, APIs), perform periodic checks, run one-shot tasks, and expose its control surface to Claude Code via MCP. When used in MCP mode, Claude Code can start, monitor, and control the same set of services through the shared daemon, giving you centralized visibility and control over logs, restarts, and status across tools.
To use MCP with Devir, enable MCP mode from the CLI by starting Devir with the --mcp flag (for example, devir --mcp). In MCP mode Devir exposes a stable interface that Claude Code can connect to, allowing you to issue commands to start/stop services and read live logs. The daemon is shared per project directory, so you should run Devir from the root of your project (the directory containing devir.yaml). You can verify integration by adding an MCP entry (as shown in the documentation) that points to the devir command with the --mcp flag and the correct working directory.
How to install
Prerequisites:
- Go installed and available in PATH
- Basic familiarity with YAML-based service definitions (devir.yaml)
Install from source or via a binary release:
Option A: Quick install (recommended)
curl -fsSL https://raw.githubusercontent.com/productdevbook/devir/master/install.sh | bash
Option B: Homebrew (macOS/Linux)
brew install productdevbook/tap/devir
Option C: From source
go install github.com/productdevbook/devir@latest
Manual build (optional):
git clone https://github.com/productdevbook/devir.git
cd devir
make build
Verification:
devir --version
Once installed, create a devir.yaml in your project root to define services, then run:
# Start the interactive TUI (default)
devir
# Start MCP mode to enable Claude Code integration
devir --mcp
Configuration is driven by devir.yaml, so ensure your project structure is detected or explicitly defined in that file.
Additional notes
Tips and common issues:
- The MCP daemon is per-project and shares logs across TUI and MCP clients. If you restart Claude Code, Devir will reflect the changes in real-time.
- Ensure your devir.yaml defines the services with appropriate dir, cmd, port, and color for best UX in the TUI.
- If you encounter port conflicts, Devir can detect ports in use and offer to kill them via the UI.
- When using MCP, set the cwd in the MCP configuration to the directory containing devir.yaml so the daemon socket is unique to your project.
- You can dynamically update a service status by writing to a .devir-status file inside the service directory (icon, color, status, message).
- If you upgrade Devir, re-check your MCP configuration for any breaking changes or renamed fields in the future.
Related MCP Servers
go-utcp
Official Go implementation of the UTCP
mcp-shell
Give hands to AI. MCP server to run shell commands securely, auditably, and on demand.
hop
Fast, elegant SSH connection manager with a TUI dashboard and MCP server
mcp-jest
Automated testing for Model Context Protocol servers. Ship MCP Servers with confidence.
mcpx
Turn MCP servers into composable CLIs.
interop
Interop CLI: Go command-line tool for efficient project management and command execution across your development workspace.