摘要 :在 Postman、Insomnia 等商业 API 工具主导的市场中,Bruno 作为一款开源、轻量、注重隐私与协作的 API 客户端,正迅速赢得开发者青睐。它将 API 集合以纯文本文件形式存储在本地文件系统,天然支持 Git 协作,彻底告别"黑盒式"收藏管理。本文将带你从零安装、配置到高效使用 Bruno,体验真正为开发者打造的 API 调试新范式。
为什么选择 Bruno?
传统 API 工具(如 Postman)虽功能强大,但也存在明显痛点:
- 数据封闭:集合以私有格式存储在云端或本地数据库,难以版本控制
- 启动慢、资源占用高:Electron 应用普遍"吃内存"
- 协作依赖账号体系:团队共享需登录、付费、权限配置
Bruno 的核心理念:
API 收藏即代码(Collections as Code)
通过以下设计,Bruno 实现了轻量、透明、可协作的 API 调试体验:
| 特性 | 说明 |
|---|---|
| ✅ 纯文本存储 | 使用 .bru 文件保存请求,支持 Git 提交、Diff、Merge |
| ✅ 离线优先 | 无需登录,所有数据本地保存,隐私无忧 |
| ✅ 跨平台 | Windows / macOS / Linux 全支持 |
| ✅ 快速启动 | 轻量级架构,秒开不卡顿 |
| ✅ 开源免费 | MIT 协议,GitHub 仓库完全开放 |
一、安装 Bruno
1. 官方下载
访问 www.usebruno.com,点击 Download 按钮:

选择对应操作系统的安装包(支持 .dmg、.exe、.AppImage 等)。从这里就可以看出bruno只有不到100M,和postman的500M比起来就清爽多了! 
2. 命令行安装(可选)
bash
# macOS (Homebrew)
brew install --cask bruno
# Linux (Snap)
sudo snap install bruno
安装完成后,启动 Bruno,界面简洁清爽:

二、创建第一个 API 请求
Step 1:新建请求
点击左上角 "New Request",输入:
- Name :
Get User Info - URL :
https://jsonplaceholder.typicode.com/users/1 - Method :
GET

Step 2:发送请求
点击 Send 按钮,右侧将显示响应:
json
{
"id": 1,
"name": "Leanne Graham",
"email": "Sincere@april.biz",
...
}
✅ 支持自动格式化 JSON、XML、HTML 等响应体。
三、组织请求:文件夹与集合
Bruno 使用 文件系统结构 管理 API:
- 每个项目 = 一个本地文件夹
- 每个请求 = 一个
.bru文件 - 文件夹嵌套 = 请求分组
例如:
bash
my-api-project/
├── users/
│ ├── get-user.bru
│ └── create-user.bru
├── posts/
│ └── list-posts.bru
└── bruno.json # 项目元信息
操作方式:
- 右键侧边栏 → New Folder 创建分组
- 拖拽
.bru文件调整位置 - 直接在文件系统中用 VS Code 编辑
.bru文件(支持语法高亮)
💡 优势:Git 提交时可清晰看到哪条 API 被修改,适合 Code Review。
四、环境变量管理
开发、测试、生产环境切换是刚需。Bruno 提供内置环境管理:
1. 创建环境
点击顶部 Environments → New Environment:

填写变量:
json
{
"base_url": "https://api.dev.example.com",
"auth_token": "dev_abc123"
}
2. 在请求中使用变量
在 URL 或 Headers 中引用:
bash
{{base_url}}/users
Authorization: Bearer {{auth_token}}

🔁 切换环境时,所有变量自动更新,无需修改请求。
五、导入与导出
从 Postman 迁移
Bruno 支持导入 Postman Collection:
- 点击 Import
- 选择 Postman Collection v2.1
- 上传
.json文件

✅ 自动转换请求、变量、认证方式,无缝迁移。
导出为文件
选中集合 → Export → 生成 ZIP 或文件夹,便于备份或分享。

六、高级功能
1. 脚本支持(Pre-request & Tests)
Bruno 支持 JavaScript 脚本:
- Pre-request Script:动态生成 token、签名
- Test Script:断言响应状态、字段值
js
// Pre-request: 生成时间戳
bru.setVar('timestamp', Date.now());
js
// Test: 验证状态码
test('Status 200', () => {
expect(res.status).toBe(200);
});
2. 多协议支持
除 HTTP/HTTPS 外,还支持:
- WebSocket(实时调试)
- GraphQL(内置查询编辑器)
- REST + Form-data / JSON / Raw 等 Body 类型
3. 插件生态
通过社区插件扩展功能,如:
- 自动重试
- 响应转 TypeScript 接口
- OAuth2 流程辅助
七、与 Apifox 对比:何时选 Bruno?
| 场景 | 推荐工具 |
|---|---|
| 🧑💻 个人开发者 / 小团队 | ✅ Bruno(轻量、开源、Git 友好) |
| 🏢 中大型企业 / 复杂协作 | 🔸 Apifox(支持 Mock、自动化测试、CI/CD 集成) |
| 🔒 数据隐私敏感 | ✅ Bruno(完全离线,无云依赖) |
| 🧪 需要 Mock 服务 | 🔸 Apifox(内置智能 Mock 规则) |
| 🔄 已有 Postman 集合 | ✅ Bruno(支持一键导入) |
💡 建议:
- 用 Bruno 做日常调试 + Git 协作
- 用 Apifox 做全流程 API 管理(设计 → 文档 → 测试 → 监控)
总结
Bruno 不是 Postman 的简单复刻,而是对 API 调试工作流的一次重构。它将"API 收藏"从黑盒数据变为可版本控制的代码资产,真正实现:
"你的 API 集合,就是你的代码库的一部分。"
无论你是独立开发者、开源贡献者,还是注重工程规范的团队,Bruno 都值得加入你的工具链。