
resterm v0.49.4
HTTP/GraphQL/gRPC対応のターミナルAPIクライアント。SSHトンネル、WebSockets、SSE、ワークフロー、プロファイリング、OpenAPI、Kubernetesのポートフォワーディング、ヘッドレスAPIをサポート。
Resterm
ターミナルのためのAPI-as-codeワークベンチ。
resterm.app · docs
Restermは、プレーンな.http/.restファイルを中心に構築されたコードファーストのAPIクライアントです。リクエストは数行のテキストで、読むことも差分を取ることもgitに保存することもでき、ワークフローやローカルモックも同様です。作業中はターミナルUIから送信し、resterm runを使えば同じファイルをCIで実行できます。APIがSSH踏み台サーバーの背後やKubernetesクラスタ内にある場合、Restermがトンネルやポートフォワードを開きます。
機能
- HTTP、GraphQL、gRPC(リフレクションとストリーミング対応)、WebSocket、SSE
- 環境ファイル、グループ化された環境、dotenvファイル、OS変数
- ベアラートークン、OAuth 2.0(クライアントクレデンシャル、パスワード、PKCE付き認可コード)、および
gh auth tokenなど既に使用しているCLIからのトークン - TLSクライアント証明書、カスタムルートCA、プロキシ、HTTP/2、環境ごとのクッキージャー
@captureと@assertによるキャプチャとチェック、さらに@pollと@retry- リクエストをステップに連鎖させるワークフロー、
@ifと@for-each付き - ロジック用のRestermScriptと
@rts testブロック - Vimモーション、シンタックスハイライト、ディレクティブ・ヘッダー・ファイルパスの補完、インライン診断を備えたエディタ
@compareで1つのリクエストを複数の環境に送信し、結果を差分比較- フェーズごとの予算を伴うタイムライントレーシング、およびOpenTelemetryへのエクスポート
- レイテンシ統計、ヒストグラム、P95、P99を備えた
@profile - リクエストのためにRestermが開くSSHトンネルとKubernetesポートフォワード
.httpファイルからのローカルモックサーバー、および実際のトラフィックをリクエストやモックに変換する記録プロキシ- CI用の
resterm run、テキスト・JSON・JUnit出力と、チェックの失敗をTLSやトンネルのエラーと区別する終了コード - 同じファイルを自分のGoコードから実行できるヘッドレスGo API
- curlとOpenAPIからのインポート、コレクションをバンドルやzipファイルとして共有
- カスタムキーバインドとテーマ
$EDITORでファイルを開く、またはレスポンスボディを既定のアプリで開く
アカウント不要、テレメトリなし。
[!NOTE] RestermにはMCPサーバーや組み込みのAI機能はありません。LLMにRestermを理解させたい場合は、
docs/内のMarkdownドキュメント、またはresterm.app/docsを参照させてください。
スクリーンショット
トレースとタイムライン
クリックしてUIの詳細を表示
ワークフロー
プロファイラ
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
POST users
Content-Type: application/json
{"name":"{{= name }}"}
最初のリクエストより前にある @setting はファイル全体に適用されます。### は新しいリクエストを開始します。リクエストの上にあるディレクティブは、そのリクエストを繰り返したり、スキップしたり、レスポンスをチェックしたりできます。
さらに多くの例は _examples/ にあり、すべてのディレクティブはリクエストファイルリファレンスに記載されています。
ドキュメント
完全なドキュメントは resterm.app/docs にあります。まずはワークフロー、モックサーバー、レコーディング、CLI、RestermScriptから始めるのがおすすめです。
TUI 内では、:help <topic> で組み込みマニュアルが開き、:docs <topic> でウェブサイト上の同じページが開きます。
独自の Go コードからリクエストファイルを実行するには、headless パッケージを参照してください。
スポンサー
Resterm は無料かつオープンソースであり、今後もそうあり続けます。私の仕事を気に入っていただけたら、GitHub でスポンサーになれます。