Postmanの管理が辛くなったのでBrunoに移行してみた — VSCode連携・Git管理・シークレット管理まで

Postmanの管理が辛くなったのでBrunoに移行してみた — VSCode連携・Git管理・シークレット管理まで

Brunoを使えばAPIコレクションをプロジェクトフォルダ内にGit管理できます。Postmanからの移行手順とVSCode連携、シークレット管理のパターンを紹介します。
2026.03.09

はじめに

APIテストツールといえばPostmanが定番ですが、長く使っていると地味にストレスが溜まります。

  • プロジェクトAのコレクションとプロジェクトBのコレクションがPostmanのUI上に混在する
  • チームメンバーとコレクションを共有するにはPostmanアカウントが必要
  • エクスポートしたJSONをGitで管理しても、差分が読みにくい

最近 Bruno というオープンソースのAPIクライアントを試してみたところ、これらの問題がきれいに解決できたので、セットアップ手順をまとめます。

スクリーンショット 2026-03-09 10.54.00

Brunoの何が良いのか

プロジェクト単位でAPIコレクションが完結する

Brunoではコレクションを プロジェクトフォルダ内.bru ファイルとして配置します。Postmanのように全プロジェクトのコレクションが1つのアプリに混在することがなく、 プロジェクト = コレクション という1:1対応が自然に実現します。

Gitで管理・共有できる

.bru ファイルはプレーンテキストなので、Gitの差分も見やすく、PRでレビューもできます。新メンバーが git clone すれば、すぐにAPIテスト環境が手に入ります。Postmanアカウントの招待やエクスポート/インポートの手間はありません。

スクリーンショット 2026-03-09 10.55.41

アカウント不要・オフラインで動く

Brunoにはクラウド同期がありません。ログインもサブスクリプションも不要です。ネットワークが不安定な環境でもローカルで完結して動きます。

前提・環境

項目 バージョン
macOS 15.x
Bruno Desktop 最新版
VSCode 1.9x
Bruno VSCode拡張 最新版

セットアップ手順

Step 1: Bruno Desktopアプリをインストールする

Bruno公式サイト からデスクトップアプリをダウンロードしてインストールします。

macOSの場合はHomebrewでもインストールできます:

brew install bruno

スクリーンショット 2026-03-09 10.57.15

Step 2: VSCode拡張をインストールする

VSCodeの拡張機能マーケットプレイスから Bruno を検索してインストールします。

この拡張により、VSCode上で .bru ファイルのシンタックスハイライトが有効になり、コレクションフォルダを右クリックして「Open with Bruno」でデスクトップアプリを起動できるようになります。

スクリーンショット 2026-03-09 10.58.49

Step 3: コレクションを作成する

プロジェクトルートに .bruno/ ディレクトリを作成し、コレクション設定ファイルを配置します。

mkdir .bruno

bruno.json(コレクション設定)

{
  "version": "1",
  "name": "My API Collection",
  "type": "collection",
  "ignore": ["node_modules", ".git"]
}

collection.bru(コレクション変数)

vars:pre-request {
  base_url: https://api.example.com
  api_token: your-token-here
}

collection.bru にはAPIトークンなどの機密情報を含むことがあるため、.gitignore に追加しておきます:

.bruno/collection.bru

チームメンバー向けに、空のテンプレートを別名で用意しておくと親切です:

# collection.example.bru
vars:pre-request {
  base_url: https://api.example.com
  api_token:
}

Step 4: リクエストファイルを作成する

.bruno/ ディレクトリ内に、1リクエスト = 1ファイルで .bru ファイルを作成します。

GETリクエストの例

meta {
  name: list-users
  type: http
  seq: 1
}

get {
  url: {{base_url}}/users
  body: none
  auth: bearer
}

auth:bearer {
  token: {{api_token}}
}

POSTリクエストの例

meta {
  name: create-user
  type: http
  seq: 2
}

post {
  url: {{base_url}}/users
  body: json
  auth: bearer
}

auth:bearer {
  token: {{api_token}}
}

body:json {
  {
    "name": "Test User",
    "email": "test@example.com"
  }
}

ポイント:

  • {{variable_name}}collection.bru の変数を参照できる
  • auth:bearer ブロックでトークン認証を設定
  • body:json ブロックにJSONボディを記述
  • seq でBruno上での表示順を制御

Step 5: リクエストを実行する

VSCodeで .bruno フォルダを右クリックし、「Open with Bruno」 を選択するとBrunoデスクトップアプリでコレクションが開きます。各リクエストをクリックして「Send」で実行できます。

スクリーンショット 2026-03-09 11.00.29

シークレット・変数管理のポイント

collection.bru をGitから除外する

前述の通り、実際のトークン値が入る collection.bru.gitignore に追加します。代わりに collection.example.bru をコミットしておき、READMEなどでセットアップ手順を案内します:

cp .bruno/collection.example.bru .bruno/collection.bru
# collection.bru を開いて、自分のトークンを記入

おまけ: Claude Code で .bru ファイルを自動生成する

今回のセットアップを通じて、Claude Codeのカスタムスキル /bruno も作成しました。ソースコード内のAPI呼び出しを読み取り、対応する .bru ファイルを自動生成するスキルです。

使い方:

/bruno scripts/contentful.py

これだけで、指定したPythonファイル内のHTTPリクエストを解析し、適切な .bru ファイルをすべて生成してくれます。手動でリクエストのURL・ヘッダー・ボディをひとつずつ書き写す手間がなくなりました。

スキルの定義は .claude/commands/bruno.md にあるので、自分のプロジェクトに合わせてカスタマイズすることもできます。

正直な感想

BrunoはPostmanの完全な代替ではありません。Postmanにある高度なテスト自動化やモック、モニタリング機能はBrunoにはありません。UIの洗練度もPostmanに一日の長があります。

ただ、自分のユースケース — プロジェクト固有のAPIをちょっと叩いて確認したい、それをチームで共有したい — にはBrunoが明らかに合っていました。ファイルベースでGit管理できるのは本当に楽です。PRで「このエンドポイントの.bruファイルも追加しておいて」とレビューできるのは、地味に嬉しいポイントです。

もうPostmanの左サイドバーで「これどのプロジェクトのやつだっけ」と迷う日々には戻りたくないです。

まとめ

  • BrunoはPostmanの「コレクションがアプリに紐づく」問題を解決する
  • .bru ファイルはプレーンテキストなのでGit管理しやすい
  • collection.bru + .gitignore + collection.example.bru のパターンでシークレットを安全に管理できる
  • VSCode拡張で右クリックからBrunoを起動できる
  • Claude Codeのカスタムスキルで .bru ファイルの生成を自動化できる

この記事をシェアする

FacebookHatena blogX

関連記事