Your Terminal UI Development Buddy with intelligent monitoring
A TUI (Terminal User Interface) for managing npm/yarn/pnpm/bun scripts with integrated MCP server for external tool access. Brummer provides intelligent log management, real-time monitoring, and seamless integration with development tools.
π Full documentation available at: https://standardbeagle.github.io/brummer/
Quick links:
- Multi-Package Manager Support: Automatically detects and uses npm, yarn, pnpm, or bun
- Monorepo Support: Full support for pnpm workspaces, npm workspaces, yarn workspaces, Lerna, Nx, and Rush
- Multi-Language Detection: Auto-detects commands for Node.js, Go, Rust, Java (Gradle/Maven), .NET, Python, Ruby, PHP, Flutter, and more
- Interactive TUI: Navigate through scripts, monitor processes, and view logs in real-time
- Smart Log Management:
- Automatic error detection and prioritization
- Log filtering and search capabilities
- Build event and test result detection
- MCP Server Integration: Allows external tools (VSCode, Claude Code, etc.) to:
- Access log output and errors
- Execute commands asynchronously
- Monitor process status
- Process Management: Start, stop, and monitor multiple processes simultaneously
- VS Code Tasks: Detects and runs VS Code tasks from .vscode/tasks.json
- Environment Variable Management (Planned):
- Unified .env file management with multi-format support
- TUI view for browsing and editing environment variables
- Automatic injection for scripts and AI agents
- Secret detection and masking for security
π§ Linux/macOS
curl -sSL https://raw.githubusercontent.com/standardbeagle/brummer/main/quick-install.sh | bash
Or with wget:
wget -qO- https://raw.githubusercontent.com/standardbeagle/brummer/main/quick-install.sh | bash
πͺ Windows (PowerShell)
irm https://raw.githubusercontent.com/standardbeagle/brummer/main/quick-install.ps1 | iex
π¦ NPM/NPX
# Run directly with npx (no installation)
npx @standardbeagle/brum
# Install globally
npm install -g @standardbeagle/brum
# Or with yarn
yarn global add @standardbeagle/brum
# Or with pnpm
pnpm add -g @standardbeagle/brum
πΉ Go Install
go install github.com/standardbeagle/brummer/cmd/brum@latest
Build from source
# Clone the repository
git clone https://github.com/standardbeagle/brummer
cd brummer
# Using Make (recommended)
make install-user # Install for current user (~/.local/bin)
# OR
make install # Install system-wide (requires sudo)
# Using the interactive installer
./install.sh
# Manual build
go build -o brum ./cmd/brum
mv brum ~/.local/bin/ # Add to PATH
In a directory with a package.json
file:
brum
brum [flags]
Flags:
-d, --dir string Working directory containing package.json (default ".")
-p, --port int MCP server port (default 7777)
--no-mcp Disable MCP server
--settings Show current configuration settings with sources
-h, --help help for brum
- Tab: Switch between views (Scripts, Processes, Logs, Errors, URLs, Settings)
- β/β or j/k: Navigate items
- Enter: Select/execute
- n: Open run command dialog (from Scripts tab)
- Esc or q: Go back
- /: Search logs
- p: Toggle high-priority logs
- Navigate: Use β/β arrows to select a process (shows status with colored indicators)
- s: Stop selected process (only works on running processes π’)
- r: Restart selected process (stops then starts the same script)
- Ctrl+R: Restart all running processes
- Enter: View logs for selected process
Process Status Indicators:
- π’ Running - Process is active (can stop/restart)
- π΄ Stopped - Process was manually stopped
- β Failed - Process exited with error
- β Success - Process completed successfully
- βΈοΈ Pending - Process is starting up
Automatic Cleanup:
- All running processes are automatically stopped when Brummer exits
- Use Ctrl+C or 'q' to quit with graceful cleanup
- Process count shown in header: "Running Processes (2)"
- c: Copy most recent error to clipboard
- f: View/manage filters
- ?: Show help
- Ctrl+C: Quit
Brummer supports hierarchical configuration through .brum.toml
files. Configuration is loaded in the following order (later values override earlier ones):
~/.brum.toml
(global user settings)- Project root and parent directories (walking up to root)
- Current working directory
.brum.toml
# Show current settings with source files
brum --settings
# Create a configuration file from current settings
brum --settings > .brum.example.toml
Create a .brum.toml
file in your project or home directory:
# Package manager preference
preferred_package_manager = "pnpm" # npm, yarn, pnpm, bun
# MCP Server settings
mcp_port = 7777
no_mcp = false
# Proxy settings
proxy_port = 19888
proxy_mode = "reverse" # "reverse" or "full"
proxy_url = "http://localhost:3000" # Optional: auto-proxy this URL
standard_proxy = false
no_proxy = false
The Settings tab provides:
- Package Manager Selection: Choose between npm, yarn, pnpm, or bun
- MCP Server Installation: One-click installation for development tools:
- Claude Desktop β
- Claude Code β
- Cursor β
- VSCode (with MCP extension) β
- Cline β
- Windsurf β
- Roo Code (experimental)
- Augment (experimental)
- Cody (experimental)
Brummer Hub Mode enables MCP clients to discover and control multiple brummer instances through a single connection:
-
Configure your MCP client once:
{ "servers": { "brummer-hub": { "command": "brum", "args": ["--mcp"] } } }
-
Run brummer in each project:
cd ~/projects/frontend && brum cd ~/projects/backend && brum
-
Use hub tools in your MCP client:
instances/list
- See all running instancesinstances/connect
- Connect to a specific instance- All instance tools become available with prefixes
π Full Hub Mode Documentation
The MCP server runs on port 7777 by default and implements the official MCP Streamable HTTP transport protocol:
Single Endpoint: http://localhost:7777/mcp
Connection Types:
- Standard JSON-RPC (POST with
Accept: application/json
) - Server-Sent Events (GET with
Accept: text/event-stream
) - SSE Response (POST with
Accept: text/event-stream
)
// SSE streaming connection
const eventSource = new EventSource('http://localhost:7777/mcp');
eventSource.onmessage = (event) => {
const msg = JSON.parse(event.data);
console.log('Received:', msg);
};
// Send JSON-RPC requests
fetch('http://localhost:7777/mcp', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json'
},
body: JSON.stringify({
jsonrpc: '2.0',
id: 1,
method: 'tools/list'
})
});
Script Management: scripts_list
, scripts_run
, scripts_stop
, scripts_status
Log Management: logs_stream
, logs_search
Browser Tools: browser_open
, browser_screenshot
, browser_navigate
, repl_execute
Proxy Tools: proxy_requests
Telemetry: telemetry_sessions
, telemetry_events
brum -d ~/projects/my-app
brum -p 8888
brum --no-mcp
brum --no-tui
brummer/
βββ cmd/brum/ # Main application entry point
βββ internal/
β βββ tui/ # Terminal UI components
β βββ process/ # Process management
β βββ mcp/ # MCP server implementation
β βββ logs/ # Log storage and detection
β βββ parser/ # Package.json parsing
βββ pkg/
β βββ events/ # Event system
β βββ filters/ # Log filtering
βββ go.mod
go build -o brum ./cmd/brum
go test ./...
MIT