DEV Community

Cover image for 2026年 ベスト ターミナル・TUI REST APIクライアント
Akira
Akira

Posted on • Originally published at apidog.com

2026年 ベスト ターミナル・TUI REST APIクライアント

キーボード中心で作業する開発者にとって、REST APIクライアントもターミナル内で完結できると便利です。tmux、SSH、Vim/Neovim、シェルスクリプトを日常的に使うなら、GUIを開かずにリクエストを作成・保存・再実行できるTUI/CLIクライアントを選ぶと、API検証のフローをかなり短縮できます。

今すぐApidogを試す

この記事では、2026年時点で実用的なターミナル/TUI REST APIクライアントを、導入方法・使いどころ・保存形式の観点で整理します。対象は、シェル上で動作し、リクエストをローカルファイルとして扱え、SSH経由でも使いやすいツールです。GUI APIクライアントの一般的な比較ではありません。

まずは、CLI・TUI・GUIの違いを明確にしてから、各ツールを見ていきます。

TUI vs CLI vs GUI: 何が違うのか

APIクライアントを選ぶ前に、3つのカテゴリを分けて考えると判断しやすくなります。

CLIクライアントは、1つのコマンドを実行してレスポンスを標準出力に表示します。リクエストは引数やフラグで指定します。代表例はcurlhttpieです。スクリプト化や単発の確認に向いています。

http GET https://api.example.com/users Authorization:"Bearer $TOKEN"
Enter fullscreen mode Exit fullscreen mode

TUIクライアントは、ターミナル内にインタラクティブな画面を描画します。キーボードでパネルを移動し、リクエストボディを編集し、保存済みリクエストを選択できます。atacpostingslumberがこのカテゴリです。ブラウザやデスクトップアプリを開かずに、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

できること

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
Enter fullscreen mode Exit fullscreen mode
brew install atac
Enter fullscreen mode Exit fullscreen mode
scoop install atac
Enter fullscreen mode Exit fullscreen mode

Arch、Fedora向けのパッケージ、Dockerイメージ、GitHub Releasesの事前ビルド済みバイナリも利用できます。

いつ選ぶべきか

次の条件に当てはまるなら、atacが候補になります。

  • ターミナル内でPostmanに近い操作感がほしい
  • リクエストをGit管理したい
  • PostmanコレクションやOpenAPI仕様から移行したい
  • GUIなしでインタラクティブにAPIを探索したい

既存のPostman資産を持っているチームでも、インポート機能を使えば移行のハードルを下げられます。

posting: Textual製のモダンなTUI

postingは、Pythonで書かれたTUI HTTPクライアントです。Textualフレームワーク上に構築されており、「ターミナルに住むモダンなAPIクライアント」という方向性を持っています。

posting

できること

postingは、YAMLファイルとdotenvを使ったバージョン管理しやすいワークフローに向いています。

主な特徴は次のとおりです。

  • リクエストをプレーンなYAMLファイルとして保存
  • Gitで差分を確認しやすい
  • 1つ以上のdotenvファイルを利用可能
  • OSの環境変数を読み取り可能
  • リクエスト前後にPythonコードを実行可能
  • Pythonフックでヘッダー設定や変数計算が可能
  • SSH経由でも操作しやすいTUI
  • キーボード中心のインターフェース

たとえば、チームがすでにPythonを使っている場合、リクエスト前処理・後処理をPythonで書ける点は実装しやすいです。

インストール

メンテナーはuvによるインストールを推奨しています。

uv tool install --python 3.13 posting
Enter fullscreen mode Exit fullscreen mode

pipxを使う場合は次のようにインストールできます。

pipx install posting
Enter fullscreen mode Exit fullscreen mode

どちらもpostingを他のPythonパッケージから分離して管理できます。

いつ選ぶべきか

postingは、次のような開発者・チームに向いています。

  • Pythonベースの開発環境を使っている
  • リクエスト定義をYAMLで読みやすく管理したい
  • リクエストフックをPythonで書きたい
  • 軽快でモダンなTUIを使いたい
  • マウスではなくキーボード中心で操作したい

slumber: 設定ファイルから始めるTUI/CLI

slumberは、Rust製の設定ファーストなターミナルHTTPクライアントです。UIでリクエストを組み立てるのではなく、まずYAMLコレクションファイルにリクエストを記述します。

インタラクティブなTUIとしても、スクリプト向けのCLIとしても使えます。

slumber

できること

slumberは、slumber.ymlを中心にリクエストを定義します。

主な特徴は次のとおりです。

  • YAMLベースのリクエストコレクション
  • プロファイル定義
  • レシピ、つまりリクエストテンプレートの定義
  • 他のリクエスト、ファイル、シェルコマンドから値を取得
  • 動的な値の利用
  • TUI内でレスポンスをjqgrepheadなどにパイプ
  • レスポンスボディをリアルタイムにフィルタリング
  • Insomniaなどの形式からインポート可能
  • すべてローカル保存
  • Gitでバージョン管理可能

たとえば、APIレスポンスからトークンを取り出して次のリクエストに使うような流れを、設定ファイルとシェルツールで構成できます。

# レスポンス確認時にjqで絞り込む例
jq '.data.id'
Enter fullscreen mode Exit fullscreen mode

インストール

Cargoを使う場合は次のコマンドです。

cargo install slumber --locked
Enter fullscreen mode Exit fullscreen mode

Homebrew tapやGitHub Releasesの事前ビルド済みバイナリも利用できます。現在のHomebrewフォーミュラについては、プロジェクトのドキュメントを確認してください。

いつ選ぶべきか

slumberは、次のようなケースに向いています。

  • リクエストを「設定」として定義したい
  • API呼び出しをコードレビューしやすい形にしたい
  • シェルコマンドと組み合わせたい
  • 前のレスポンスに依存するリクエストを構築したい
  • TUIとCLIの両方を使い分けたい

ain: curlに処理を委譲するファイルベースCLI

ainは、APIリクエストをテンプレートファイルとして整理し、実際のHTTP呼び出しをcurlwget、またはhttpieに委譲するターミナルHTTPクライアントです。

フルスクリーンTUIではありません。編集可能なリクエストテンプレートを中心にした、ファイル駆動型のCLIです。

ain

できること

ainのテンプレートファイルは、明確なセクションに分かれています。

  • [Host]
  • [Query]
  • [Headers]
  • [Method]
  • [Body]
  • [Config]
  • [Backend]
  • [BackendOptions]

これにより、1つのリクエストをファイルとして整理できます。

主な特徴は次のとおりです。

  • ファイルとフォルダでAPIを整理
  • 環境変数または.envファイルから値を取得
  • URLエンコーディングを処理
  • バックエンドとしてcurlwgethttpieを利用
  • 実行される基盤コマンドを出力可能
  • 他のツールにパイプしやすい

curlを直接書くよりも構造化しやすく、重いAPIクライアントを導入するほどではないケースに向いています。

インストール

ainはGitHub Releasesで事前ビルド済みバイナリを提供しています。ソースからビルドすることもできます。

インストール方法は変更される可能性があるため、導入前にリポジトリで現在のパッケージングを確認してください。

いつ選ぶべきか

ainは、次のような場合に向いています。

  • リクエストをファイルとしてGit管理したい
  • ただし専用TUIまでは不要
  • 内部ではcurlhttpieを使いたい
  • スクリプト中心のワークフローに統合したい
  • 実際に実行されるコマンドを確認・共有したい

httpie: 読みやすいCLI HTTPクライアントの定番

httpieは、長く使われているユーザーフレンドリーなCLI HTTPクライアントです。TUIではありませんが、読みやすいコマンドラインHTTPリクエストの基準を作ったツールとして、ターミナルAPIクライアントを考えるうえで外せません。

最新のCLIバージョンは3.2.xです。

httpie

できること

httpieの強みは、curlより読みやすい構文でHTTPリクエストを書けることです。

たとえば、JSONリクエストは次のように書けます。

http POST https://api.example.com/users \
  name=alice \
  age:=30 \
  active:=true
Enter fullscreen mode Exit fullscreen mode

name=valueは文字列として扱われ、field:=rawjsonはJSON値として扱われます。そのため、手でJSON文字列を組み立てる場面を減らせます。

主な特徴は次のとおりです。

  • 読みやすいフィールド構文
  • JSONボディを簡単に作成
  • レスポンスの色付けと整形
  • ダウンロード対応
  • プラグイン対応
  • --sessionによる永続セッション
  • セッションファイルは編集可能なJSON
  • スクリプトに組み込みやすい

セッションを使う例は次のとおりです。

http --session=dev \
  POST https://api.example.com/login \
  email=dev@example.com \
  password=secret
Enter fullscreen mode Exit fullscreen mode

以降、同じセッションを使ってCookieなどを再利用できます。

http --session=dev GET https://api.example.com/me
Enter fullscreen mode Exit fullscreen mode

インストール

httpieは多くの環境でパッケージ化されています。

brew install httpie
Enter fullscreen mode Exit fullscreen mode
apt install httpie
Enter fullscreen mode Exit fullscreen mode
pip install httpie
Enter fullscreen mode Exit fullscreen mode

利用するOSに合わせて、公式インストールドキュメントを確認してください。

いつ選ぶべきか

httpieは、次の用途に向いています。

  • 高速なアドホックリクエスト
  • APIの疎通確認
  • スクリプトからのHTTP呼び出し
  • curlより読みやすい構文がほしい場合
  • TUIまでは不要な場合

TUIツールで探索し、最終的な確認やCI前の軽いチェックをhttpieで行う、という使い分けも現実的です。

curlie: httpie風構文でcurlの機能を使う

curlieは、httpieの構文と出力フォーマットを取り入れた、curlへの薄いフロントエンドです。

「curlのパワーとhttpieの使いやすさ」という説明どおり、すべてのcurlオプションを利用できます。

curlie

できること

curlieは、curlの互換性を保ちながら、入力と出力を扱いやすくします。

主な特徴は次のとおりです。

  • インタラクティブ実行時にJSONを整形表示
  • --prettyで整形を強制可能
  • 出力がバッファリングされない
  • ストリーミングレスポンスを到着時に確認可能
  • --curlで同等のcurlコマンドを出力
  • curlの全オプションを利用可能

たとえば、curlieで書いたリクエストからcurlコマンドを出力できます。

curlie --curl POST https://api.example.com/users name=alice
Enter fullscreen mode Exit fullscreen mode

チームメンバーやドキュメントにはcurlコマンドを共有し、自分のローカルではcurlieで書く、という使い方もできます。

インストール

Goを使う場合は次のコマンドです。

go install github.com/rs/curlie@latest
Enter fullscreen mode Exit fullscreen mode

Homebrewの場合は次のとおりです。

brew install curlie
Enter fullscreen mode Exit fullscreen mode

また、ディストリビューションのパッケージマネージャーで提供されている場合もあります。

この分野のさらに広い選択肢は、素晴らしい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

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パイプラインで保存済みテストシナリオを実行するためのコマンドです。clihtmljsonjunitレポーター、-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)