
HTTP、GraphQL、gRPC、WebSocket、SSE に対応したターミナル向け API クライアント。diff やバージョン管理が可能なプレーンな .http ファイルを利用でき、スクリプト化されたテスト、ワークフロー、モック、レコーダー、CLI ランナーを備えています。
ターミナルのためのAPI-as-codeワークベンチ。
resterm.app · docs
Restermは、プレーンな.http/.restファイルを中心に構築されたコードファーストのAPIクライアントです。リクエストは数行のテキストであり、読むことも、差分を取ることも、gitに保存することもでき、ワークフローやローカルモックも同様です。作業中はターミナルUIから送信し、resterm runを使えば同じファイルをCIで実行できます。APIがSSH踏み台サーバーの背後やKubernetesクラスタ内にある場合、Restermがトンネルやポートフォワードを開きます。
gh auth tokenなど既に使用しているCLIからのトークン@captureと@assertによるキャプチャとチェック、さらに@pollと@retry@ifと@for-each付き)@rts testブロック@compare@profile.httpファイルからのローカルモックサーバー、および実際のトラフィックをリクエストやモックに変換する記録プロキシresterm run。テキスト、JSON、JUnit出力に対応し、チェックの失敗とTLSやトンネルのエラーを区別する終了コード$EDITORでファイルを開く、またはレスポンスボディをデフォルトアプリで開くアカウント不要、テレメトリなし。
[!NOTE] RestermにはMCPサーバーや組み込みのAI機能はありません。LLMにRestermを使わせるには、
resterm skill --agent claudeまたはresterm skill --agent codexでスキルをインストールしてください。他のエージェントについてはスキルドキュメントを参照してください。エージェントにdocs/やresterm.app/docsを参照させることもできます。
トレースとタイムライン
ワークフロー
プロファイラ
Explain
RestermScript
macOSとLinux:
brew install resterm
# or
curl -fsSL https://raw.githubusercontent.com/unkn0wn-root/resterm/main/install.sh | bash
Windows:
iwr -useb https://raw.githubusercontent.com/unkn0wn-root/resterm/main/install.ps1 | iex
Go 1.25 以降の場合:
go install github.com/unkn0wn-root/resterm/cmd/resterm@latest
macOS、Linux、Windows 向けのビルド済みバイナリはリリースページにあります。macOS バイナリには macOS 13 Ventura 以降、Linux バイナリには glibc 2.32 以降が必要です。
Homebrew でインストールした場合は、brew upgrade resterm を実行して更新します。リリースバイナリやスクリプトでインストールした場合は、resterm --update を実行します。Go でインストールした場合は、上記の go install コマンドを再実行してください。詳細はインストールガイドをご覧ください。
mkdir my-api && cd my-api
resterm init
resterm
resterm init は、いくつかのサンプルリクエストとそれに応答するローカルモックを含む requests.http ファイルを作成するので、実際の API がなくても試せます。g Shift+M を押してモックサーバーを起動し、カーソルをリクエストに移動して Ctrl+Enter を押すと送信されます。いつでも ? を押すとヘルプが表示されます。
init も必須ではありません。resterm を実行し、URL を入力するか curl コマンドを貼り付けて、Ctrl+Enter を押すだけです。
同じファイルは UI なしでも実行できます。一方のターミナルでモックを起動し、もう一方でリクエストを実行します:
resterm mock requests.http # terminal 1
resterm run --request CreateUser requests.http # terminal 2
Resterm は標準の .http 形式を読み取り、その上に設定や自動化のための # @ ディレクティブを追加します:
# @setting base-url https://api.example.com/v1/
### Create users
// Send this request once for each name in the list.
# @for-each ["david", "tom"] as name
# @when env.meta.name == "dev"
# @assert response.statusCode == 201
# @rts test "user has an id"
> if response.json().id == null {
> t.error("no id for", name)
> }
POST users
Content-Type: application/json
{"name":"{{= name }}"}
最初のリクエストより前にある @setting はファイル全体に適用されます。### で新しいリクエストが始まります。リクエストの上にあるディレクティブを使うと、そのリクエストを繰り返したり、スキップしたり、@assert または RestermScript コードの @rts test ブロックでレスポンスを検証したりできます。
さらに多くの例は _examples/ にあり、すべてのディレクティブはリクエストファイルリファレンスに記載されています。
完全なドキュメントは resterm.app/docs にあります。まずはワークフロー、モックサーバー、記録、CLI、RestermScriptから始めるとよいでしょう。
TUI 内では、:help <topic> で組み込みマニュアルが開き、:docs <topic> でウェブサイト上の同じページが開きます。
自分の Go コードからリクエストファイルを実行するには、headless パッケージを参照してください。
機能を提案するには、Ideas カテゴリでディスカッションを開始してください。バグを報告するには、issue を作成してください。コードを貢献するには、pull request を作成してください。
バグの報告や機能の提案は、コードの貢献と同じくらい役立ちます。
Resterm は無料かつオープンソースであり、今後もそうあり続けます。私の活動を気に入っていただけたら、GitHub でスポンサーになれます。