概要
API疎通の確認やOAuth/OIDCのフロー検証を行うとき、これまで何となくPostmanを使っていた。だがPostmanもInsomniaもアカウント必須・クラウド同期前提に舵を切ったことで、ちょっとした検証のためだけにアカウントを作るのが億劫になっていた。
代替を探した結果、Bruno に落ち着いた。本記事では、
- なぜPostman/Insomniaから離れる選択肢があるのか
- アカウント不要で使えるAPIテストツールの候補
- Bruno を Windows にインストールする方法(winget / choco / scoop / 公式exe)
をまとめる。結論を先に言うと、ローカル完結・Git管理したい個人開発者には Bruno が一番しっくり来る。
なぜ Postman / Insomnia から離れたくなるのか
両ツールはここ数年で運用方針が変わった。
- Postman:2023年にクラウド同期を実質必須化。ローカルのみの「Scratch Pad」モードが事実上廃止された。
- Insomnia:Kongに買収された後、無料版でもアカウント作成が必須化された時期がある。
「ちょっと叩きたいだけ」「社内環境のAPIの認証情報を外部サーバに置きたくない」というユースケースで、アカウント前提のツールは選びにくい。Brunoはここに刺さる位置取りで、.bru というプレーンテキストでコレクションを保存しGitで管理できるのが特徴だ。
アカウント不要で使えるAPIテストツールの候補
curl以外で、Windowsで動いてアカウント不要なものを並べると次の通り。
| ツール | 形態 | 特徴 |
|---|---|---|
| Bruno | GUI(ローカルアプリ) | オープンソース・完全オフライン・コレクションを .bru で保存しGit管理可能 |
| Thunder Client | VS Code拡張 | エディタ内で完結。無料枠はアカウント不要(チーム同期だけ要アカウント) |
| Hoppscotch | Web/PWA | ブラウザを開けば即使える。保存だけ要アカウント |
| HTTPie | CLI |
http POST api.example.com user=foo のような直感的構文。JSONをハイライト整形 |
Invoke-RestMethod |
CLI(PowerShell標準) | インストール不要。irm https://api.example.com/users で即叩ける |
使い分けの目安:
- 状態保存して使い回したい(OAuth/OIDC等) → Bruno
- エディタから出たくない → Thunder Client
- ワンライナーで叩きたい → HTTPie または Invoke-RestMethod
Bruno の特徴
| 項目 | 内容 |
|---|---|
| ライセンス | オープンソース(MIT) |
| アカウント | 不要 |
| ネットワーク | 完全オフラインで動作 |
| データ保存 | ローカルファイル(.bru プレーンテキスト) |
| バージョン管理 | Gitで普通に差分が取れる |
| 対応OS | Windows / macOS / Linux(ARM64バイナリもあり) |
| クラウド同期 | 無し(公式に「今後も追加しない」と明言) |
.bru がプレーンテキストなのが地味に効く。リクエスト定義をリポジトリに同梱しておけば、チームメンバーがクローンするだけで同じテストが叩ける。
Windows でのインストール
選択肢は4つ。お好みのものでよい。
① winget(推奨)
Windows 10 / 11 に標準搭載されているパッケージマネージャ。PowerShell またはコマンドプロンプトで:
winget install Bruno.Bruno
② Chocolatey
Chocolatey 利用者向け:
choco install bruno
③ Scoop
Scoop 利用者向け(extras バケットに入っている):
scoop bucket add extras
scoop install bruno
④ 公式サイトからインストーラ取得
https://www.usebruno.com/downloads から bruno_<ver>_x64_win.exe をダウンロードしてダブルクリック実行する。Windows ARM64機にはネイティブARM64バイナリも用意されている。
補足: 企業展開でMSIを使う場合、
msiexec /i Bruno.msi AUTOUPDATE_ENABLED=falseで全社的に自動更新を無効化できる。社内配布で更新を管理したい場合に使える。
起動して最初にやること
インストール後、Brunoを起動すると空のワークスペースが出る。最低限の流れは次の通り:
- Create Collection で新しいコレクションを作成(保存先のフォルダを指定する)
- New Request でリクエスト追加(GET/POST/PUT/DELETE等を選ぶ)
- URL欄にエンドポイントを入力
- 必要なら
HeadersBodyAuthタブで値をセット - Send で実行
指定したコレクションフォルダの中身を覗くと、.bru ファイルが並んでいる。中身はこんな感じのプレーンテキストだ:
meta {
name: Get Users
type: http
seq: 1
}
get {
url: https://api.example.com/users
}
headers {
Authorization: Bearer {{token}}
}
このフォルダごとGitリポジトリに入れれば、変更履歴も差分レビューもPRも全部できる。
使ってみての所感
- 起動が速い:Electron系の中では明らかに軽い。立ち上げてすぐ叩ける
-
環境変数の切替が楽:dev / staging / prod を
.bruのenvファイルで分けられる - OAuth/OIDCの動作確認に十分:認可コードフロー、トークン取得まで普通に通る
- Gitと相性がよい:APIスペックの変更がリポジトリ履歴として残るのは精神衛生上いい
不満があるとすれば、Postmanの「Mock Server」や「APIドキュメント自動生成」のような高機能は無いこと。ただしこのあたりが必要ならそもそも別の選択肢(OpenAPI仕様書 + Stoplight等)と組み合わせる方が筋がよい。
まとめ
アカウント不要のAPIテストツール選び
① まずは Bruno を試してみよう
└─ オープンソース・オフライン・Git管理
└─ winget install Bruno.Bruno で導入完了
② エディタ内で済ませたいなら Thunder Client
③ ワンライナーで叩くなら HTTPie か Invoke-RestMethod
④ Postman/Insomniaは「アカウント前提」を許容できる場合のみ
「ちょっとAPIを叩きたいだけなのにアカウント作成?」と感じたら、Brunoを試してみてほしい。winget install Bruno.Bruno の一発で始められる気軽さは、思った以上に効く。