コマンドラインツール
echolotコマンドのインストール方法と、すべてのコマンドに共通する事項(シークレット、環境変数、終了コード)を説明します。
echolot は、アプリで作成したものをターミナルやCIジョブから実行します。リクエストの送信、ワークスペースのチェック付き実行とレポートの作成、
コレクションの読み込みと書き出し、仕様のリント、モックの提供、フローの実行、MCP経由でのAIエージェントへのワークスペースの提供ができます。
アプリと同じワークスペースのファイルを読み込むので、変換は必要ありません。
コマンドラインツールを入手する
直接ダウンロード版では、ツールがアプリの中に含まれています。PATH に追加するには、次のようにします。
- Echolot › コマンドラインツールをインストール…を選ぶか、設定 › 一般を開き、コマンドラインツールの下にある コマンドラインツールをインストール…をクリックします。
- Echolotは、アプリ内のツールへの
echolotリンクを/opt/homebrew/binまたは/usr/local/binに作成します。 どちらのフォルダにも書き込めない場合は、macOSが管理者パスワードを求めます。 - 新しいターミナルウインドウを開き、
echolot --helpと入力します。
設定 › 一般 › コマンドラインツールには、内蔵ツールの場所と、PATH 上のリンクが表示されます。アプリを移動したあとは
再インストールを使い、リンクを取り除くには削除を使います。Echolotが置いたものではない echolot というファイルが邪魔になっている場合は、
置き換える前にEcholotが確認し、そのファイルはゴミ箱に入れられます。
リンクはアプリの中を指しているため、ツールはアプリとともに更新されます。
Mac App Store版
Mac App Store版には、ツールもコマンドラインツールをインストール…の項目もありません。代わりに、リリースページのzipからツールをインストールしてください。 同じワークスペースで動作します。
エディションを比較コマンドラインツールは、アプリのベータ版でも期限切れになりません。Macでの動作には、macOS 15以降が必要です。
コマンド
| コマンド | 動作 |
|---|---|
echolot send | 1つのリクエスト(URLまたは保存済みのリクエストファイル)を送信し、ボディを標準出力に書き出します。 |
echolot run | ワークスペース、その一部のフォルダやリクエスト、またはPostmanコレクションを、チェックとレポート付きで実行します。 |
echolot validate | ワークスペースのすべてのファイルが読み込めること、すべてのリクエストが解決できることをチェックします。 |
echolot import、echolot export | コレクションをワークスペースに読み込み、ワークスペースをPostman、Insomnia、Bruno、Echolotの形式で書き出します。 |
echolot mcp | MCPサーバのチェックとサインイン、エージェントへのワークスペースの提供、クライアント設定の出力を行います。 |
echolot spec | OpenAPIドキュメントをリントし、仕様に追従するフォルダへの仕様変更をチェックして適用します。 |
echolot graphql diff | 2つのGraphQLスキーマを比較し、すべての変更を評価します。 |
echolot grpc | gRPCサービスを記述し、そのメソッドを呼び出します。 |
echolot mqtt | MQTTブローカーにサブスクライブし、パブリッシュします。 |
echolot mock | モックを提供します:ワークスペースのモックのルート、またはOpenAPIドキュメント。 |
echolot fake | テンプレートからダミーデータを作成します。フィクスチャやシードデータ用です。 |
echolot flow | ワークスペースのフローを一覧表示、実行、作成、提供します。 |
echolot agent | 内蔵のエージェントを、承認の代わりにポリシーを使ってタスクで実行します。 |
echolot help <command> と echolot <command> --help は、コマンドのすべてのオプションを出力します。サブコマンドがあるコマンドも同じ形式です:
echolot mcp serve --help。
すべてのコマンドにあるオプション
| オプション | 意味 |
|---|---|
--version | バージョンとビルドを出力します(0.5.0 (8) など)。 |
-h、--help | コマンドのオプションを出力します。 |
ワークスペースと環境
ワークスペースを扱うコマンドは、workspace.toml があるフォルダを指定します。引数として受け取るもの(echolot run Alpenglow.echolot)と、
-w または --workspace で受け取るもの(echolot flow list -w Alpenglow.echolot)があります。どちらかは各コマンドのページに書かれています。
省略できる場合は、カレントフォルダが使われます。
--env は、環境をファイル名から .toml を除いたもの(staging)で指定します。run、validate、flow では、環境の名前(Staging)でも指定できます。
--env を指定しない場合、リクエストはワークスペース自身の変数で解決されます。環境を参照してください。
シークレット
シークレットの値はワークスペースのファイルには保存されません。ファイルにはシークレット変数の名前だけが書かれます。コマンドラインツールは、 次の順序で各値を探します。
- 環境変数
ECHOLOT_SECRET_<NAME>。名前は変数名を大文字にし、英字と数字以外の文字をすべて_にしたものです:tokenはECHOLOT_SECRET_TOKEN、me_passwordはECHOLOT_SECRET_ME_PASSWORDになります。 echolot runでは、--secretsで指定したファイル:1行にNAME=valueを1つ、コメントは#、値を囲む引用符は取り除かれます。NAMEは変数名 (token=…)か、環境変数名全体(ECHOLOT_SECRET_TOKEN=…)です。ファイル内の値は、環境変数より優先されます。- Macでは、アプリが保持しているキーチェーンの項目。アプリで設定したシークレットや、サインインしたMCPサーバは、ターミナルでも使えます。
export ECHOLOT_SECRET_PASSWORD="$(op read 'op://Shop/Alpenglow staging/password')"
echolot run Alpenglow.echolot --env stagingCI が設定されている(空、0、false 以外)場合や、ECHOLOT_KEYCHAIN=0 の場合は、キーチェーンは使われません。これにより、CIジョブがキーチェーンの
プロンプトで待たされることがなくなります。シークレットを参照してください。
環境変数
| 変数 | 使用するコマンド | 意味 |
|---|---|---|
ECHOLOT_SECRET_<NAME> | リクエストを解決するすべてのコマンド | シークレット変数 <NAME> の値。 |
ECHOLOT_KEYCHAIN=0 | すべてのコマンド | キーチェーンを読み書きしません。 |
CI | すべてのコマンド | 設定されていると、ECHOLOT_KEYCHAIN=0 と同様にキーチェーンがオフになります。 |
HTTPS_PROXY、HTTP_PROXY、ALL_PROXY、NO_PROXY | send、run、mqtt など | プロキシ。curlと同じように読み取られます。--proxy と --no-proxy が優先され、ワークスペース自身のプロキシ設定はそれより優先されます。 |
ECHOLOT_CERT_PASSPHRASE | send、run、mqtt | --cert または --key で指定した鍵またはPKCS#12ファイルのパスフレーズ。 |
ECHOLOT_MQTT_PASSWORD | mqtt | ブローカーのパスワード。 |
ECHOLOT_MCP_TOKEN | mcp serve --http | クライアントが送信するBearerトークン。指定しない場合はランダムなものが使われます。 |
ECHOLOT_WEBHOOK_TOKEN | flow serve | Webhookの呼び出し元が送信するトークン。指定しない場合はランダムなものが使われます。 |
ECHOLOT_BROWSER | mcp sign-in | デフォルトのブラウザの代わりにサインインページを開くコマンド。 |
ANTHROPIC_API_KEY、OPENAI_API_KEY、GEMINI_API_KEY | agent | モデルプロバイダのAPIキー。 |
NO_COLOR | run | 装飾なしのコンソール出力。 |
出力と終了コード
結果は標準出力に書き出されます:レスポンスのボディ、レポート、サブスクリプションが出力する行。進行状況、警告、テスト結果、所要時間は標準エラーに書き出されるため、 出力をそのままパイプでつなげます。
echolot send https://demo.echolot.dev/v1/products/TNT-MH-2P | jq .name| 終了コード | 意味 |
|---|---|
0 | すべて成功し、すべてのチェックに合格しました。 |
1 | 何かが失敗しました:レスポンスがない、チェックやテストの失敗、問題の検出(validate、spec lint)、破壊的変更(graphql diff)、OK以外のgRPCステータス、MQTT接続の拒否、完了しなかったエージェント。 |
22 | echolot send のみ:レスポンスのステータスが400以上でした。curl --fail と同じです。 |
64 | コマンドライン自体が正しくありません:不明なオプション、存在しないファイル、存在しない環境。理由が出力されます。 |
次のステップ
- ワークスペースを実行する、およびCIで実行する。
- エージェントにワークスペースを提供する。
- CIでAPIをテストする(チュートリアル)。