Echolot
コマンドラインとCI

コマンドラインツール

echolotコマンドのインストール方法と、すべてのコマンドに共通する事項(シークレット、環境変数、終了コード)を説明します。

echolot は、アプリで作成したものをターミナルやCIジョブから実行します。リクエストの送信、ワークスペースのチェック付き実行とレポートの作成、 コレクションの読み込みと書き出し、仕様のリント、モックの提供、フローの実行、MCP経由でのAIエージェントへのワークスペースの提供ができます。 アプリと同じワークスペースのファイルを読み込むので、変換は必要ありません。

コマンドラインツールを入手する

直接ダウンロード版では、ツールがアプリの中に含まれています。PATH に追加するには、次のようにします。

  1. Echolot › コマンドラインツールをインストール…を選ぶか、設定 › 一般を開き、コマンドラインツールの下にある コマンドラインツールをインストール…をクリックします。
  2. Echolotは、アプリ内のツールへの echolot リンクを /opt/homebrew/bin または /usr/local/bin に作成します。 どちらのフォルダにも書き込めない場合は、macOSが管理者パスワードを求めます。
  3. 新しいターミナルウインドウを開き、echolot --help と入力します。

設定 › 一般 › コマンドラインツールには、内蔵ツールの場所と、PATH 上のリンクが表示されます。アプリを移動したあとは 再インストールを使い、リンクを取り除くには削除を使います。Echolotが置いたものではない echolot というファイルが邪魔になっている場合は、 置き換える前にEcholotが確認し、そのファイルはゴミ箱に入れられます。

リンクはアプリの中を指しているため、ツールはアプリとともに更新されます。

Mac App Store版

Mac App Store版には、ツールもコマンドラインツールをインストール…の項目もありません。代わりに、リリースページのzipからツールをインストールしてください。 同じワークスペースで動作します。

エディションを比較

コマンドラインツールは、アプリのベータ版でも期限切れになりません。Macでの動作には、macOS 15以降が必要です。

コマンド

コマンド動作
echolot send1つのリクエスト(URLまたは保存済みのリクエストファイル)を送信し、ボディを標準出力に書き出します。
echolot runワークスペース、その一部のフォルダやリクエスト、またはPostmanコレクションを、チェックとレポート付きで実行します。
echolot validateワークスペースのすべてのファイルが読み込めること、すべてのリクエストが解決できることをチェックします。
echolot import、echolot exportコレクションをワークスペースに読み込み、ワークスペースをPostman、Insomnia、Bruno、Echolotの形式で書き出します。
echolot mcpMCPサーバのチェックとサインイン、エージェントへのワークスペースの提供、クライアント設定の出力を行います。
echolot specOpenAPIドキュメントをリントし、仕様に追従するフォルダへの仕様変更をチェックして適用します。
echolot graphql diff2つのGraphQLスキーマを比較し、すべての変更を評価します。
echolot grpcgRPCサービスを記述し、そのメソッドを呼び出します。
echolot mqttMQTTブローカーにサブスクライブし、パブリッシュします。
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 を指定しない場合、リクエストはワークスペース自身の変数で解決されます。環境を参照してください。

シークレット

シークレットの値はワークスペースのファイルには保存されません。ファイルにはシークレット変数の名前だけが書かれます。コマンドラインツールは、 次の順序で各値を探します。

  1. 環境変数 ECHOLOT_SECRET_<NAME>。名前は変数名を大文字にし、英字と数字以外の文字をすべて _ にしたものです:token は ECHOLOT_SECRET_TOKEN、me_password は ECHOLOT_SECRET_ME_PASSWORD になります。
  2. echolot run では、--secrets で指定したファイル:1行に NAME=value を1つ、コメントは #、値を囲む引用符は取り除かれます。NAME は変数名 (token=…)か、環境変数名全体(ECHOLOT_SECRET_TOKEN=…)です。ファイル内の値は、環境変数より優先されます。
  3. Macでは、アプリが保持しているキーチェーンの項目。アプリで設定したシークレットや、サインインしたMCPサーバは、ターミナルでも使えます。
export ECHOLOT_SECRET_PASSWORD="$(op read 'op://Shop/Alpenglow staging/password')"
echolot run Alpenglow.echolot --env staging

CI が設定されている(空、0、false 以外)場合や、ECHOLOT_KEYCHAIN=0 の場合は、キーチェーンは使われません。これにより、CIジョブがキーチェーンの プロンプトで待たされることがなくなります。シークレットを参照してください。

環境変数

変数使用するコマンド意味
ECHOLOT_SECRET_<NAME>リクエストを解決するすべてのコマンドシークレット変数 <NAME> の値。
ECHOLOT_KEYCHAIN=0すべてのコマンドキーチェーンを読み書きしません。
CIすべてのコマンド設定されていると、ECHOLOT_KEYCHAIN=0 と同様にキーチェーンがオフになります。
HTTPS_PROXY、HTTP_PROXY、ALL_PROXY、NO_PROXYsend、run、mqtt などプロキシ。curlと同じように読み取られます。--proxy と --no-proxy が優先され、ワークスペース自身のプロキシ設定はそれより優先されます。
ECHOLOT_CERT_PASSPHRASEsend、run、mqtt--cert または --key で指定した鍵またはPKCS#12ファイルのパスフレーズ。
ECHOLOT_MQTT_PASSWORDmqttブローカーのパスワード。
ECHOLOT_MCP_TOKENmcp serve --httpクライアントが送信するBearerトークン。指定しない場合はランダムなものが使われます。
ECHOLOT_WEBHOOK_TOKENflow serveWebhookの呼び出し元が送信するトークン。指定しない場合はランダムなものが使われます。
ECHOLOT_BROWSERmcp sign-inデフォルトのブラウザの代わりにサインインページを開くコマンド。
ANTHROPIC_API_KEY、OPENAI_API_KEY、GEMINI_API_KEYagentモデルプロバイダのAPIキー。
NO_COLORrun装飾なしのコンソール出力。

出力と終了コード

結果は標準出力に書き出されます:レスポンスのボディ、レポート、サブスクリプションが出力する行。進行状況、警告、テスト結果、所要時間は標準エラーに書き出されるため、 出力をそのままパイプでつなげます。

echolot send https://demo.echolot.dev/v1/products/TNT-MH-2P | jq .name
終了コード意味
0すべて成功し、すべてのチェックに合格しました。
1何かが失敗しました:レスポンスがない、チェックやテストの失敗、問題の検出(validate、spec lint)、破壊的変更(graphql diff)、OK以外のgRPCステータス、MQTT接続の拒否、完了しなかったエージェント。
22echolot send のみ:レスポンスのステータスが400以上でした。curl --fail と同じです。
64コマンドライン自体が正しくありません:不明なオプション、存在しないファイル、存在しない環境。理由が出力されます。

次のステップ

このページの内容