キーボード中心で作業する開発者にとって、REST APIクライアントもターミナル内で完結できると便利です。tmux、SSH、Vim/Neovim、シェルスクリプトを日常的に使うなら、GUIを開かずにリクエストを作成・保存・再実行できるTUI/CLIクライアントを選ぶと、API検証のフローをかなり短縮できます。
この記事では、2026年時点で実用的なターミナル/TUI REST APIクライアントを、導入方法・使いどころ・保存形式の観点で整理します。対象は、シェル上で動作し、リクエストをローカルファイルとして扱え、SSH経由でも使いやすいツールです。GUI APIクライアントの一般的な比較ではありません。
まずは、CLI・TUI・GUIの違いを明確にしてから、各ツールを見ていきます。
TUI vs CLI vs GUI: 何が違うのか
APIクライアントを選ぶ前に、3つのカテゴリを分けて考えると判断しやすくなります。
CLIクライアントは、1つのコマンドを実行してレスポンスを標準出力に表示します。リクエストは引数やフラグで指定します。代表例はcurlやhttpieです。スクリプト化や単発の確認に向いています。
http GET https://api.example.com/users Authorization:"Bearer $TOKEN"
TUIクライアントは、ターミナル内にインタラクティブな画面を描画します。キーボードでパネルを移動し、リクエストボディを編集し、保存済みリクエストを選択できます。atac、posting、slumberがこのカテゴリです。ブラウザやデスクトップアプリを開かずに、Postmanに近い操作感を得られます。
GUIクライアントは、デスクトップまたはWebアプリとして動作します。Postman、Insomnia、Apidogデスクトップアプリなどです。視覚的な設計、チームコラボレーション、ドキュメント生成などに強い一方、ターミナルからは離れます。
この記事で扱うのは、CLIとTUIです。より広い選択肢を確認したい場合は、Postmanの代替となる素晴らしいAPIクライアントのまとめも参考になります。
atac: ターミナルで使うPostman風TUI
atacは、Rust製のTUI APIクライアントです。Ratatuiフレームワークをベースにしており、名前は「Arguably a Terminal API Client」の略です。Postman、Insomnia、Brunoのようなワークフローを、ターミナル上で実現することを目指しています。
できること
atacは、ローカルファイルを中心にしたAPIリクエスト管理に向いています。
主な特徴は次のとおりです。
- アカウント不要
- オフライン動作
- JSON/YAML形式のコレクション保存
- Gitで管理しやすいファイル構造
- Basic、Bearer、Digest、JWTなどの認証に対応
- JSON、multipart form、ファイルアップロードに対応
- リクエスト前後のJavaScriptスクリプト実行
- 環境変数
- シンタックスハイライト
- キーバインディングのカスタマイズ
- Postman v2.1.0コレクション、OpenAPI仕様、cURLコマンドのインポート
- cURL、Node.js Axios、Rust Reqwestなどへのエクスポート
インストール
環境に応じて、次のいずれかでインストールできます。
cargo install atac --locked
brew install atac
scoop install atac
Arch、Fedora向けのパッケージ、Dockerイメージ、GitHub Releasesの事前ビルド済みバイナリも利用できます。
いつ選ぶべきか
次の条件に当てはまるなら、atacが候補になります。
- ターミナル内でPostmanに近い操作感がほしい
- リクエストをGit管理したい
- PostmanコレクションやOpenAPI仕様から移行したい
- GUIなしでインタラクティブにAPIを探索したい
既存のPostman資産を持っているチームでも、インポート機能を使えば移行のハードルを下げられます。
posting: Textual製のモダンなTUI
postingは、Pythonで書かれたTUI HTTPクライアントです。Textualフレームワーク上に構築されており、「ターミナルに住むモダンなAPIクライアント」という方向性を持っています。
できること
postingは、YAMLファイルとdotenvを使ったバージョン管理しやすいワークフローに向いています。
主な特徴は次のとおりです。
- リクエストをプレーンなYAMLファイルとして保存
- Gitで差分を確認しやすい
- 1つ以上のdotenvファイルを利用可能
- OSの環境変数を読み取り可能
- リクエスト前後にPythonコードを実行可能
- Pythonフックでヘッダー設定や変数計算が可能
- SSH経由でも操作しやすいTUI
- キーボード中心のインターフェース
たとえば、チームがすでにPythonを使っている場合、リクエスト前処理・後処理をPythonで書ける点は実装しやすいです。
インストール
メンテナーはuvによるインストールを推奨しています。
uv tool install --python 3.13 posting
pipxを使う場合は次のようにインストールできます。
pipx install posting
どちらもpostingを他のPythonパッケージから分離して管理できます。
いつ選ぶべきか
postingは、次のような開発者・チームに向いています。
- Pythonベースの開発環境を使っている
- リクエスト定義をYAMLで読みやすく管理したい
- リクエストフックをPythonで書きたい
- 軽快でモダンなTUIを使いたい
- マウスではなくキーボード中心で操作したい
slumber: 設定ファイルから始めるTUI/CLI
slumberは、Rust製の設定ファーストなターミナルHTTPクライアントです。UIでリクエストを組み立てるのではなく、まずYAMLコレクションファイルにリクエストを記述します。
インタラクティブなTUIとしても、スクリプト向けのCLIとしても使えます。
できること
slumberは、slumber.ymlを中心にリクエストを定義します。
主な特徴は次のとおりです。
- YAMLベースのリクエストコレクション
- プロファイル定義
- レシピ、つまりリクエストテンプレートの定義
- 他のリクエスト、ファイル、シェルコマンドから値を取得
- 動的な値の利用
- TUI内でレスポンスを
jq、grep、headなどにパイプ - レスポンスボディをリアルタイムにフィルタリング
- Insomniaなどの形式からインポート可能
- すべてローカル保存
- Gitでバージョン管理可能
たとえば、APIレスポンスからトークンを取り出して次のリクエストに使うような流れを、設定ファイルとシェルツールで構成できます。
# レスポンス確認時にjqで絞り込む例
jq '.data.id'
インストール
Cargoを使う場合は次のコマンドです。
cargo install slumber --locked
Homebrew tapやGitHub Releasesの事前ビルド済みバイナリも利用できます。現在のHomebrewフォーミュラについては、プロジェクトのドキュメントを確認してください。
いつ選ぶべきか
slumberは、次のようなケースに向いています。
- リクエストを「設定」として定義したい
- API呼び出しをコードレビューしやすい形にしたい
- シェルコマンドと組み合わせたい
- 前のレスポンスに依存するリクエストを構築したい
- TUIとCLIの両方を使い分けたい
ain: curlに処理を委譲するファイルベースCLI
ainは、APIリクエストをテンプレートファイルとして整理し、実際のHTTP呼び出しをcurl、wget、またはhttpieに委譲するターミナルHTTPクライアントです。
フルスクリーンTUIではありません。編集可能なリクエストテンプレートを中心にした、ファイル駆動型のCLIです。
できること
ainのテンプレートファイルは、明確なセクションに分かれています。
[Host][Query][Headers][Method][Body][Config][Backend][BackendOptions]
これにより、1つのリクエストをファイルとして整理できます。
主な特徴は次のとおりです。
- ファイルとフォルダでAPIを整理
- 環境変数または
.envファイルから値を取得 - URLエンコーディングを処理
- バックエンドとして
curl、wget、httpieを利用 - 実行される基盤コマンドを出力可能
- 他のツールにパイプしやすい
curlを直接書くよりも構造化しやすく、重いAPIクライアントを導入するほどではないケースに向いています。
インストール
ainはGitHub Releasesで事前ビルド済みバイナリを提供しています。ソースからビルドすることもできます。
インストール方法は変更される可能性があるため、導入前にリポジトリで現在のパッケージングを確認してください。
いつ選ぶべきか
ainは、次のような場合に向いています。
- リクエストをファイルとしてGit管理したい
- ただし専用TUIまでは不要
- 内部では
curlやhttpieを使いたい - スクリプト中心のワークフローに統合したい
- 実際に実行されるコマンドを確認・共有したい
httpie: 読みやすいCLI HTTPクライアントの定番
httpieは、長く使われているユーザーフレンドリーなCLI HTTPクライアントです。TUIではありませんが、読みやすいコマンドラインHTTPリクエストの基準を作ったツールとして、ターミナルAPIクライアントを考えるうえで外せません。
最新のCLIバージョンは3.2.xです。
できること
httpieの強みは、curlより読みやすい構文でHTTPリクエストを書けることです。
たとえば、JSONリクエストは次のように書けます。
http POST https://api.example.com/users \
name=alice \
age:=30 \
active:=true
name=valueは文字列として扱われ、field:=rawjsonはJSON値として扱われます。そのため、手でJSON文字列を組み立てる場面を減らせます。
主な特徴は次のとおりです。
- 読みやすいフィールド構文
- JSONボディを簡単に作成
- レスポンスの色付けと整形
- ダウンロード対応
- プラグイン対応
-
--sessionによる永続セッション - セッションファイルは編集可能なJSON
- スクリプトに組み込みやすい
セッションを使う例は次のとおりです。
http --session=dev \
POST https://api.example.com/login \
email=dev@example.com \
password=secret
以降、同じセッションを使ってCookieなどを再利用できます。
http --session=dev GET https://api.example.com/me
インストール
httpieは多くの環境でパッケージ化されています。
brew install httpie
apt install httpie
pip install httpie
利用するOSに合わせて、公式インストールドキュメントを確認してください。
いつ選ぶべきか
httpieは、次の用途に向いています。
- 高速なアドホックリクエスト
- APIの疎通確認
- スクリプトからのHTTP呼び出し
-
curlより読みやすい構文がほしい場合 - TUIまでは不要な場合
TUIツールで探索し、最終的な確認やCI前の軽いチェックをhttpieで行う、という使い分けも現実的です。
curlie: httpie風構文でcurlの機能を使う
curlieは、httpieの構文と出力フォーマットを取り入れた、curlへの薄いフロントエンドです。
「curlのパワーとhttpieの使いやすさ」という説明どおり、すべてのcurlオプションを利用できます。
できること
curlieは、curlの互換性を保ちながら、入力と出力を扱いやすくします。
主な特徴は次のとおりです。
- インタラクティブ実行時にJSONを整形表示
-
--prettyで整形を強制可能 - 出力がバッファリングされない
- ストリーミングレスポンスを到着時に確認可能
-
--curlで同等のcurlコマンドを出力 - curlの全オプションを利用可能
たとえば、curlieで書いたリクエストからcurlコマンドを出力できます。
curlie --curl POST https://api.example.com/users name=alice
チームメンバーやドキュメントにはcurlコマンドを共有し、自分のローカルではcurlieで書く、という使い方もできます。
インストール
Goを使う場合は次のコマンドです。
go install github.com/rs/curlie@latest
Homebrewの場合は次のとおりです。
brew install curlie
また、ディストリビューションのパッケージマネージャーで提供されている場合もあります。
この分野のさらに広い選択肢は、素晴らしいAPIクライアントとPostmanの代替品のまとめも参考になります。
いつ選ぶべきか
curlieは、次のような場合に向いています。
-
curlの全機能を使いたい - ただし構文や出力は少し読みやすくしたい
-
curlとの互換性を重視したい - ストリーミングレスポンスをデバッグしたい
- 最小限の変更で生のcurlから移行したい
比較表
| ツール | タイプ | 言語 | ストレージ | 最適な用途 |
|---|---|---|---|---|
| atac | TUI | Rust | JSON / YAML | Postmanのようなターミナルワークフロー、Gitフレンドリーなコレクション |
| posting | TUI | Python | YAML + dotenv | キーボードファーストのチーム、Pythonリクエストフック |
| slumber | TUI + CLI | Rust | YAML (`slumber.yml`) | 設定ファーストのリクエスト、シェルコマンドの連鎖 |
| ain | CLI (ファイルベース) | Go | `.ain`テンプレートファイル | curl/wget/httpieをベースにしたバージョン管理されたリクエスト |
| httpie | CLI | Python | JSONセッション | 読みやすいアドホックリクエストとスクリプティング |
| curlie | CLI | Go | なし (curlをラップ) | httpieの使いやすさを備えた完全なcurlのパワー |
ここで紹介した6つのツールは、いずれもターミナルで動作し、SSH経由でも利用できます。TUIツールは、保存済みリクエストの管理やインタラクティブな編集に向いています。CLIツールは、速度、単発実行、スクリプト化に向いています。
実務では、次のように併用するのが現実的です。
- API探索: atac、posting、slumber
- 単発確認: httpie、curlie
- ファイル化された呼び出し: ain
- スクリプトやCI前の疎通確認: httpie、curlie
カテゴリを越えた選択肢を確認したい場合は、REST APIクライアントと最高のオフラインAPIクライアントのガイドも参考になります。
ターミナルクライアントの選び方
選定時は、まず「リクエストをどう扱いたいか」で分けると簡単です。
1. インタラクティブに操作したい場合
ターミナル内でPostmanのように操作したいなら、TUIを選びます。
候補は次の3つです。
- atac
- posting
- slumber
選び方は次のとおりです。
- Postmanに最も近い操作感がほしい: atac
- PythonフックやYAML管理を使いたい: posting
- 設定ファイル中心でリクエストを定義したい: slumber
2. コマンドで素早く呼びたい場合
アドホックな呼び出しやスクリプト用途が中心なら、CLIを選びます。
- 読みやすい構文で書きたい: httpie
- curl互換性を重視したい: curlie
- リクエストをファイルとして保存したい: ain
3. Git管理したい場合
リクエストをチームでレビューしたいなら、保存形式も重要です。
Git管理しやすいのは次のツールです。
- atac: JSON/YAML
- posting: YAML + dotenv
- slumber:
slumber.yml - ain:
.ainテンプレートファイル - httpie: JSONセッション
curlieはcurlをラップするため、それ自体はリクエスト管理機能を持ちません。
RESTクライアント以外の無料オフラインツールも探している場合は、無料APIクライアントガイドが参考になります。
Apidogの役割
ターミナルクライアントは、個人の開発者が素早くリクエストを送るには非常に便利です。一方で、チームでAPI仕様を共有し、モックサーバーを使い、公開ドキュメントを生成し、テストをCIに組み込みたい場合は、ターミナルツールだけでは不足する場面があります。
Apidogは、デスクトップアプリ(Windows、Mac、Linux)、Webアプリ、CLIを備えたAPIプラットフォームです。視覚的なOpenAPIエディタによる設計、視覚アサーションを使った自動テストシナリオ、スマートモックサーバー、自動生成されるインタラクティブドキュメント、リアルタイムのチームコラボレーションをカバーしています。REST、GraphQL、gRPC、WebSocket、SOAP、Socket.IOをサポートしています。
ただし、役割は明確に分けて考えるべきです。
1つ目に、ApidogはAPI品質管理のレイヤーです。API契約の設計、テスト、モック、ドキュメント化を扱います。CMS、コマースプラットフォーム、APIゲートウェイ、ロードジェネレーターではありません。単に今日のアドホックリクエストを送るだけなら、この記事で紹介したTUI/CLIツールで十分です。
2つ目に、Apidog CLIはインタラクティブなターミナルリクエストクライアントではありません。apidog runは、CIパイプラインで保存済みテストシナリオを実行するためのコマンドです。cli、html、json、junitレポーター、-dによるデータ駆動実行、-eによる環境選択を利用できます。
つまり、Apidog CLIは自動化のためのツールであり、httpie、curl、atacのようにリアルタイムでリクエストを入力してレスポンスを見るためのものではありません。
CIで保存済みスイートを実行したい場合は、Apidog CLI完全ガイドとコマンドラインからREST APIをテストする方法を確認してください。
実務上の使い分けは次のようになります。
- インタラクティブなAPI探索: atac、posting、slumber
- 単発の確認やスクリプト: httpie、curlie、ain
- チームでの設計・モック・ドキュメント・CIテスト: Apidog
よくある質問
最適なターミナルREST APIクライアントは何ですか?
1つに絞ることはできません。Postmanに近いTUIが必要ならatac、読みやすいCLIが必要ならhttpie、設定ファーストで管理したいならslumberが有力です。インタラクティブな操作が必要か、単発コマンドが必要か、リクエストをファイルとして保存したいかで選んでください。
これらのクライアントはSSH経由で動作しますか?
はい。この記事で紹介したツールはすべてターミナル内で動作するため、SSHセッション経由で利用できます。これは、デスクトップアプリではなくターミナルクライアントを選ぶ大きな理由の1つです。
ターミナルAPIクライアントはリクエストをローカルに保存しますか?
はい。atac、posting、slumber、ainは、リクエストをローカルファイルとして保存できます。形式はJSON、YAML、テンプレートファイルなどです。httpieはセッションをJSONとして保存します。curlieはcurlをラップするため、それ自体は保存機能を持ちません。
httpieはTUIですか?
いいえ。httpieはCLIツールです。リクエストを1つのコマンドとして入力し、整形されたレスポンスを受け取ります。ターミナル内でパネル型のインタラクティブUIが必要な場合は、atac、posting、slumberのようなTUIを使ってください。
ターミナルクライアントとApidogのどちらを使うべきですか?
高速でインタラクティブなアドホックリクエストには、ターミナル/TUIクライアントを使います。チームでのコラボレーション、モックサーバー、公開ドキュメント、CIテスト自動化が必要になったらApidogを検討します。Apidog CLIはCIで保存済みテストスイートを実行するためのもので、インタラクティブなターミナル送信を置き換えるものではありません。
PostmanコレクションをインポートできるTUIクライアントはありますか?
はい。atacはPostman v2.1.0コレクションと環境、OpenAPI仕様、cURLコマンドをインポートできます。既存のPostman資産をターミナル中心のワークフローへ移行したい場合に便利です。






Top comments (0)