Brummer

Brummer

🚀 蜂鸣器(Brummer)

具备智能监控功能的终端用户界面(TUI)开发助手

蜂鸣器(Brummer)是一款用于管理 npm、yarn、pnpm 和 bun 脚本的终端用户界面(TUI)工具,它集成了 MCP 服务器,方便外部工具访问。该工具提供智能日志管理、实时监控功能,并能与开发工具无缝集成。

🚀 快速开始

你可以通过以下链接获取完整的文档和快速入门指南:

完整文档请访问:https://standardbeagle.github.io/brummer/

✨ 主要特性

  • 多包管理器支持:自动检测并使用 npm、yarn、pnpm 或 bun。
  • 单仓多包支持:全面支持 pnpm 工作区、npm 工作区、yarn 工作区、Lerna、Nx 和 Rush。
  • 多语言检测:自动检测 Node.js、Go、Rust、Java(Gradle/Maven)、.NET、Python、Ruby、PHP、Flutter 等语言的命令。
  • 交互式 TUI:可浏览脚本、监控进程并实时查看日志。
  • 智能日志管理
    • 自动检测并优先处理错误。
    • 具备日志过滤和搜索功能。
    • 检测构建事件和测试结果。
  • MCP 服务器集成:允许外部工具(如 VSCode、Claude Code 等):
    • 访问日志输出和错误信息。
    • 异步执行命令。
    • 监控进程状态。
  • 进程管理:可同时启动、停止和监控多个进程。
  • VS Code 任务:检测并运行 .vscode/tasks.json 中的 VS Code 任务。

📦 安装指南

快速安装(单行命令)

🐧 Linux/macOS
curl -sSL https://raw.githubusercontent.com/standardbeagle/brummer/main/quick-install.sh | bash

或者使用 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
# 直接使用 npx 运行(无需安装)
npx @standardbeagle/brum

# 全局安装
npm install -g @standardbeagle/brum

# 或者使用 yarn
yarn global add @standardbeagle/brum

# 或者使用 pnpm
pnpm add -g @standardbeagle/brum
🐹 Go Install
go install github.com/standardbeagle/brummer/cmd/brum@latest

从源代码安装

从源代码构建
# 克隆仓库
git clone https://github.com/standardbeagle/brummer
cd brummer

# 使用 Make(推荐)
make install-user    # 为当前用户安装 (~/.local/bin)
# 或者
make install        # 系统级安装(需要 sudo)

# 使用交互式安装程序
./install.sh

# 手动构建
go build -o brum ./cmd/brum
mv brum ~/.local/bin/  # 添加到 PATH

💻 使用示例

基础用法

在包含 package.json 文件的目录中,运行以下命令:

brum

选项

brum [flags]

Flags:
-d, --dir string   包含 package.json 的工作目录(默认值为 ".")
-p, --port int     MCP 服务器端口(默认值为 7777)
--no-mcp       禁用 MCP 服务器
--settings     显示当前配置设置及其来源
-h, --help         显示帮助信息

TUI 导航

  • Tab:在视图(脚本、进程、日志、错误、URL、设置)之间切换。
  • ↑/↓j/k:浏览项目。
  • Enter:选择/执行。
  • n:打开运行命令对话框(从脚本标签页)。
  • Escq:返回。
  • /:搜索日志。
  • p:切换高优先级日志。

进程管理

  • 导航:使用 ↑/↓ 箭头选择进程(通过彩色指示器显示状态)。
  • s:停止选定的进程(仅适用于正在运行的进程 🟢)。
  • r:重启选定的进程(先停止再启动同一脚本)。
  • Ctrl+R:重启所有正在运行的进程。
  • Enter:查看选定进程的日志。

进程状态指示器

  • 🟢 运行中 - 进程处于活动状态(可以停止/重启)。
  • 🔴 已停止 - 进程被手动停止。
  • 失败 - 进程因错误退出。
  • 成功 - 进程成功完成。
  • ⏸️ 挂起 - 进程正在启动。

自动清理

  • 当 Brummer 退出时,所有正在运行的进程将自动停止。
  • 使用 Ctrl+C 或 'q' 优雅退出并清理。
  • 标题中显示进程数量:“正在运行的进程 (2)”。

日志管理

  • c:将最近的错误复制到剪贴板。
  • f:查看/管理过滤器。

其他操作

  • ?:显示帮助信息。
  • Ctrl+C:退出。

📚 详细文档

配置

Brummer 支持通过 .brum.toml 文件进行分层配置。配置按以下顺序加载(后面的值会覆盖前面的值):

  1. ~/.brum.toml(全局用户设置)。
  2. 项目根目录及其父目录(向上遍历到根目录)。
  3. 当前工作目录的 .brum.toml 文件。

查看当前配置

# 显示当前设置及其源文件
brum --settings

# 根据当前设置创建配置文件
brum --settings > .brum.example.toml

配置选项

在项目或主目录中创建 .brum.toml 文件:

# 包管理器偏好
preferred_package_manager = "pnpm"  # npm, yarn, pnpm, bun

# MCP 服务器设置
mcp_port = 7777
no_mcp = false

# 代理设置
proxy_port = 19888
proxy_mode = "reverse"  # "reverse" 或 "full"
proxy_url = "http://localhost:3000"  # 可选:自动代理此 URL
standard_proxy = false
no_proxy = false

设置标签页

设置标签页提供以下功能:

  • 包管理器选择:在 npm、yarn、pnpm 或 bun 之间进行选择。
  • MCP 服务器安装:一键为开发工具安装:
    • Claude Desktop ✓
    • Claude Code ✓
    • Cursor ✓
    • VSCode(带有 MCP 扩展) ✓
    • Cline ✓
    • Windsurf ✓
    • Roo Code(实验性)
    • Augment(实验性)
    • Cody(实验性)

MCP 中心模式 🆕

Brummer 中心模式允许 MCP 客户端通过单个连接发现和控制多个 Brummer 实例:

快速设置

  1. 一次性配置 MCP 客户端

    {
    "servers": {
    "brummer-hub": {
    "command": "brum",
    "args": ["--mcp"]
    }
    }
    }
    
  2. 在每个项目中运行 Brummer

    cd ~/projects/frontend && brum
    cd ~/projects/backend && brum
    
  3. 在 MCP 客户端中使用中心工具

    • instances/list - 查看所有正在运行的实例。
    • instances/connect - 连接到特定实例。
    • 所有实例工具均可通过前缀使用。

📚 完整中心模式文档

MCP 服务器集成

MCP 服务器默认运行在 7777 端口,并实现了官方 MCP 可流式 HTTP 传输协议:

传输协议

单一端点http://localhost:7777/mcp

连接类型

  1. 标准 JSON-RPC(POST 请求,Accept: application/json)。
  2. 服务器发送事件(GET 请求,Accept: text/event-stream)。
  3. SSE 响应(POST 请求,Accept: text/event-stream)。

示例连接

// SSE 流式连接
const eventSource = new EventSource('http://localhost:7777/mcp');
eventSource.onmessage = (event) => {
const msg = JSON.parse(event.data);
console.log('收到消息:', msg);
};

// 发送 JSON-RPC 请求
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'
})
});

可用工具

脚本管理scripts_listscripts_runscripts_stopscripts_status 日志管理logs_streamlogs_search 浏览器工具browser_openbrowser_screenshotbrowser_navigaterepl_execute 代理工具proxy_requests 遥测telemetry_sessionstelemetry_events

其他示例

在特定目录中运行

brum -d ~/projects/my-app

使用自定义 MCP 端口运行

brum -p 8888

不使用 MCP 服务器运行(仅 TUI)

brum --no-mcp

以无头模式运行(仅 MCP 服务器)

brum --no-tui

🔧 技术细节

项目结构

brummer/
├── cmd/brum/            # 主应用程序入口点
├── internal/
│   ├── tui/             # 终端 UI 组件
│   ├── process/         # 进程管理
│   ├── mcp/             # MCP 服务器实现
│   ├── logs/            # 日志存储和检测
│   └── parser/          # Package.json 解析
├── pkg/
│   ├── events/          # 事件系统
│   └── filters/         # 日志过滤
└── go.mod

构建

go build -o brum ./cmd/brum

测试

go test ./...

📄 许可证

本项目采用 MIT 许可证。

  • 0 关注
  • 0 收藏,32 浏览
  • system 提出于 2025-10-06 07:51

相似服务问题

相关AI产品