Echolot
リファレンス

動的な値

Echolotのすべての動的な値を、引数と例とともに、二重の波括弧を入力すると表示される候補リストと同じグループ分けで紹介します。

動的な値は、{{ }}の中に書く関数です。{{$uuid}}、{{$base64('heidi:alpenglow')}}、{{$responseJSONPath('auth/sign-in', '$.access_token')}}などがあります。 Echolotはリクエストの送信時にその値を求めます。動的な値は、変数が使える場所ならどこでも使えます。URL、ヘッダー、ボディ、認証フィールド、メッセージ、設定です。 アプリでの選び方と編集の仕方は、動的な値を参照してください。

書き方

  • 動的な値は$で始まります:{{$timestamp}}。引数がない場合、括弧は省略できます。
  • 引数は括弧の中にカンマで区切って書きます。引用符で囲んだテキスト('…'または"…")、数値、引用符なしの変数名、ほかの動的な値を使えます。
  • テキストの引数には、それ自身のトークンを含められます:{{$base64('{{email}}:{{password}}')}}。引用符の中の}}でトークンは終わりません。
  • 解析できないものは書いたままになり、報告されるため、余分な{{でリクエストが壊れることはありません。
{{$sha256('{{body}}', 'base64')}}
{{$date('yyyy-MM-dd', -86400, 'Europe/Zurich')}}
{{$hmacSha256(apiSecret, $timestamp)}}

レスポンス

これらは、別の保存済みのリクエストの最新のレスポンスを、そのパス(folder/request。たとえばauth/sign-in)で指定して読み取ります。 どれも、そのリクエストを先に送信するかどうかを指定する、省略可能な最後の引数を取ります。

最後の引数意味
'if-missing'(デフォルト)まだレスポンスがない場合に、先に送信します。
'fresh'毎回、先に送信します。ランでは、1回の実行につき1度です。
'latest'送信せず、最新のレスポンスを使います。
値引数得られるもの
$responseJSONPathリクエスト、JSONPathJSONPathで選んだ、レスポンスボディの値。{{$responseJSONPath('auth/sign-in', '$.access_token')}}
$responseKeyPathリクエスト、キーのパスdata.items.0.idのようなキーのパスで選んだ値。{{$responseKeyPath('orders/list-orders', 'items.0.id')}}
$responseJqリクエスト、jqフィルタjqフィルタがボディから作った結果。複数の結果は1行に1つずつ。{{$responseJq('catalog/list-products', '.items[0].sku')}}
$responseXPathリクエスト、XPathXMLレスポンスの値。{{$responseXPath('echo/xml', '/catalog/product[1]/@sku')}}
$responseRegexリクエスト、パターンボディ内の正規表現の最初の一致。グループがあれば、その最初のグループ。{{$responseRegex('echo/html', '<title>(\\w+)</title>')}}
$responseHeaderリクエスト、ヘッダーレスポンスヘッダー。{{$responseHeader('orders/create-order', 'Location')}}
$responseCookieリクエスト、Cookieレスポンスが設定したCookieの値。{{$responseCookie('echo/set-cookie', 'flavour')}}
$responseStatusリクエストステータスコード。{{$responseStatus('auth/sign-in')}}
$responseBodyリクエストボディ全体をテキストで。{{$responseBody('auth/who-am-i')}}
$responseBodyLengthリクエストボディのバイト数。{{$responseBodyLength('catalog/export')}}
$responseリクエスト、クエリクエリの形式で、上記のいずれか。JSONPath($.token)、XPath(/a/b、またはxpath:…)、regex:…、jq:…、keypath:…、header:Name、cookie:Name。{{$response('auth/sign-in', 'header:Content-Type')}}

たとえば、Who am Iは、必要なら先に送信して、Sign inから直接トークンを取得できます。

Authorization: Bearer {{$responseJSONPath('auth/sign-in', '$.access_token')}}

別のリクエストのレスポンスを循環して読み取るリクエストは、循環の経路を示して拒否されます。 リクエスト間で値を受け渡すもう1つの方法は、レスポンスのキャプチャです。

リクエスト

これらは、送信されるとおりに解決されたリクエストを読み取ります。最初の引数は保存済みのリクエストのパスで、送信中のリクエストを指す場合は空('')にします。

値引数得られるもの
$requestURLリクエスト解決されたURL。{{$requestURL('')}}
$requestMethodリクエストメソッド。{{$requestMethod('')}}
$requestHeaderリクエスト、ヘッダー解決されたヘッダー(認証が追加するものを含む)。{{$requestHeader('', 'Content-Type')}}
$requestQueryリクエスト、パラメータURLのクエリパラメータ(デコード済み)。{{$requestQuery('', 'page')}}
$requestBodyリクエスト解決されたボディをテキストで。{{$requestBody('')}}
$requestJSONPathリクエスト、JSONPathJSONボディの値。{{$requestJSONPath('orders/create-order', '$.lines[0].sku')}}
$requestJqリクエスト、jqフィルタjqフィルタがJSONボディから作った結果。{{$requestJq('', '.lines[0].quantity')}}
$requestVariableリクエスト、変数そのリクエストから見た変数。{{$requestVariable('auth/sign-in', 'email')}}

リクエストが送信する内容で署名するのが、典型的な使い方です。

X-Signature: {{$hmacSha256(apiSecret, $requestBody(''))}}

エンコード

値引数得られるもの
$base64テキストBase64にしたテキスト。{{$base64('heidi:alpenglow')}}
$base64DecodeBase64Base64またはBase64URLをデコードしたテキスト。{{$base64Decode('aGVpZGk=')}}
$base64UrlテキストパディングなしのBase64URLにしたテキスト。{{$base64Url('{"alg":"none"}')}}
$urlEncodeテキストURLの構成要素としてパーセントエンコードしたテキスト。{{$urlEncode('ultralight tent')}}
$urlDecodeテキストパーセントエンコードされたテキストをデコードします。+は+のままです。{{$urlDecode('ultralight%20tent')}}
$hexテキストテキストのUTF-8バイトを16進数にしたもの。{{$hex('Grüezi')}}
$hexDecode16進数16進数をデコードしたテキスト。{{$hexDecode('6869')}}
$jsonEscapeテキストJSON文字列の中に入れられるようにエスケープしたテキスト(引用符は含みません)。{{$jsonEscape(note)}}
$newlineなしラインフィード(\n)。
$crなしキャリッジリターン(\r)。
$crlfなしキャリッジリターンとラインフィード(\r\n)。
$tabなしタブ。
$unescapeシーケンスエスケープシーケンスを文字に変換したテキスト:\n、\r、\t、\0、\\、\xHH、\uHHHH。{{$unescape('café')}}
$basicAuthユーザー、パスワードHTTP Basic用のAuthorizationの値:Basic とuser:passwordのBase64。{{$basicAuth(email, password)}}
$jwtペイロード、シークレット、アルゴリズム(省略可)JSONペイロードをシークレットで署名したJWT。HS384またはHS512を選ばない限りHS256。{{$jwt('{"sub": "heidi"}', jwtSecret)}}

ハッシュと署名

各ハッシュはテキストと、必要に応じて出力形式('hex'(デフォルト)、'base64'、'base64url')を取ります。各HMACはキー、メッセージ、そして必要に応じて出力形式を取ります。

値引数得られるもの
$md5テキスト、出力テキストのMD5。{{$md5('alpenglow')}}
$sha1テキスト、出力SHA-1。{{$sha1('alpenglow')}}
$sha224テキスト、出力SHA-224。
$sha256テキスト、出力SHA-256。{{$sha256($requestBody(''), 'base64')}}
$sha384テキスト、出力SHA-384。
$sha512テキスト、出力SHA-512。
$hmacMd5キー、メッセージ、出力キーを使ったメッセージのHMAC-MD5。
$hmacSha1キー、メッセージ、出力HMAC-SHA1。
$hmacSha224キー、メッセージ、出力HMAC-SHA224。
$hmacSha256キー、メッセージ、出力HMAC-SHA256。{{$hmacSha256(apiSecret, $timestamp)}}
$hmacSha384キー、メッセージ、出力HMAC-SHA384。
$hmacSha512キー、メッセージ、出力HMAC-SHA512。

時刻

これらはすべて、リクエストを送信する時点の時刻です。

値引数得られるもの
$timestampなし秒単位のUnix時間:1793525000。
$timestampMsなしミリ秒単位のUnix時間:1793525000123。
$isoTimestampなしUTCのISO 8601形式(ミリ秒付き):2026-11-01T09:30:00.123Z。
$httpDateなしDateやIf-Modified-Since用のHTTP日付:Sun, 01 Nov 2026 09:30:00 GMT。
$dateフォーマット、秒単位のオフセット(省略可)、タイムゾーン(省略可)Unixの日付パターンで表した時刻。オフセット分だけずらし、指定したタイムゾーン(指定がなければUTC)で表します。{{$date('yyyy-MM-dd')}}、{{$date('yyyy-MM-dd HH:mm', 3600, 'Europe/Zurich')}}

ランダム

送信のたびに新しい値になります。

値引数得られるもの
$uuidなしランダムなUUID(小文字)。$guidと$randomUUIDも同じです。{{$uuid}}
$randomInt最小値、最大値2つの値の間(両端を含む)の整数。引数が1つなら0からその値まで、なければ0から1000。{{$randomInt(1, 5)}}
$randomString長さ、文字(省略可)ランダムな文字列。長さの指定がなければ16(最大4096)。英数字、または指定した文字から作られます。{{$randomString(8, 'ABCDEF0123456789')}}
$randomHexバイト数ランダムなバイト列を16進数にしたもの。指定がなければ16バイト(最大2048)で、桁数はその2倍です。{{$randomHex(8)}}

AlpenglowのCreate orderはIdempotency-Key: {{$uuid}}を送信するので、送信される注文はそのつど新しいものになります。

ダミーデータ

リクエストボディ、テストデータ、モックのルート用の作り物の値です。名前、住所、会社、価格、日付、ロレムイプサムなどがあり、送信のたびに新しくなります。 名前はPostmanの動的変数と同じなので、それらを使っているコレクションでも、ここで実際の値が送信されます。{{の候補リストでは、ダミーデータの下にグループ別に並んでいます。

引数は省略可能です。数値は-10^15から10^15までです。モックのボディでは、ランダムと時刻の$uuid($randomUUIDとして)、$randomInt、$randomString、$randomHex、$timestamp、$timestampMs、$isoTimestampも使えます。 ターミナルからは、echolot fakeがそれらでテンプレートを埋めます。

共通

値引数得られるもの
$randomFloat最小値、最大値、小数桁数範囲内(0から1000)の小数。指定がなければ小数2桁。
$randomDigits長さランダムな数字の文字列。長さの指定がなければ6桁。
$randomBooleanなしtrueまたはfalse。
$randomElement選択肢引数のうちランダムに選んだ1つ:$randomElement(active, paused, closed)。
$randomAlphaNumericなし英字または数字1文字。
$randomColorなし色の名前:teal。
$randomHexColorなし16進数の色:#3f8acb。
$randomAbbreviationなし技術的な略語:SQL。

名前と職業

値引数得られるもの
$randomFirstNameなし名:Amelia。
$randomLastNameなし姓:Okafor。
$randomFullNameなし名と姓:Amelia Okafor。
$randomNamePrefixなしMr.、Ms.、Dr.…
$randomNameSuffixなしJr.、PhD…
$randomJobAreaなしMobility、Security…
$randomJobDescriptorなしLead、Senior…
$randomJobTitleなしSenior Security Engineer。
$randomJobTypeなしEngineer、Designer…

インターネット

値引数得られるもの
$randomEmailなしメールアドレス:amelia.okafor@gmail.com。
$randomExampleEmailなしexample.com、example.net、example.orgのメールアドレス。
$randomUserNameなしユーザー名:amelia_okafor42。
$randomPasswordなしランダムな英数字15文字。
$randomUrlなしhttps://northwind.io
$randomDomainNameなしnorthwind.io
$randomDomainSuffixなしcom、io、dev…
$randomDomainWordなしnorthwind
$randomIPなしIPv4アドレス:192.168.14.7。
$randomIPV6なしIPv6アドレス。
$randomMACAddressなしMACアドレス:3a:f1:0c:5e:92:b4。
$randomProtocolなしhttpまたはhttps。
$randomSemverなしセマンティックバージョン:2.14.3。
$randomLocaleなしロケール:de_CH。
$randomUserAgentなしブラウザのUser-Agent。

住所と場所

値引数得られるもの
$randomStreetNameなしMaple Avenue
$randomStreetAddressなし42 Maple Avenue
$randomCityなしLisbon
$randomZipCodeなし5桁の郵便番号。$randomZipも同じです。
$randomCountryなしPortugal
$randomCountryCodeなしISO 3166の国コード:PT。
$randomLatitudeなし緯度:38.7223。
$randomLongitudeなし経度:-9.1393。

電話

値引数得られるもの
$randomPhoneNumberなし電話番号:555-201-4417。
$randomPhoneNumberExtなし国番号付きの電話番号:+44 555-201-4417。

会社

値引数得られるもの
$randomCompanyNameなしNorthwind Labs
$randomCompanySuffixなしInc、LLC、GmbH…
$randomBsなしstreamline seamless platforms
$randomBsAdjectiveなしseamless
$randomBsBuzzなしstreamline
$randomBsNounなしplatforms
$randomCatchPhraseなしAdaptive real-time framework
$randomCatchPhraseAdjectiveなしAdaptive
$randomCatchPhraseDescriptorなしreal-time
$randomCatchPhraseNounなしframework

金融

値引数得られるもの
$randomPrice最小値、最大値小数2桁の価格。範囲の指定がなければ1から1000。
$randomCurrencyCodeなしEUR
$randomCurrencyNameなしEuro
$randomCurrencySymbolなし€
$randomBankAccountなし8桁の口座番号。
$randomBankAccountNameなしSavings Account
$randomBankAccountIbanなしチェックディジットが正しいIBAN。
$randomBankAccountBicなしBIC(SWIFTコード)。
$randomCreditCardMaskなしカードの下4桁。
$randomTransactionTypeなしdeposit、payment、refund…
$randomBitcoinなし作り物のビットコインアドレス。

ショップと商品

値引数得られるもの
$randomProductなしChair
$randomProductNameなしErgonomic Wooden Chair
$randomProductAdjectiveなしErgonomic
$randomProductMaterialなしWooden
$randomDepartmentなしGarden

日付

値引数得られるもの
$randomDatePastなし過去1年間のある時点(ISO 8601)。
$randomDateFutureなし今後1年間のある時点(ISO 8601)。
$randomDateRecentなし過去2日間のある時点(ISO 8601)。
$randomDateなし過去1年間のある日:2026-03-14。
$randomWeekdayなしTuesday
$randomMonthなしMarch

単語

値引数得られるもの
$randomWordなし単語1つ。
$randomWords個数数個の単語。個数の指定がなければ3個。
$randomNounなしrouter
$randomVerbなしcompile
$randomIngverbなしcompiling
$randomAdjectiveなしwireless
$randomPhraseなし上記の単語で作った短いフレーズ。

ロレムイプサム

値引数得られるもの
$randomLoremWordなしdolor
$randomLoremWords個数ロレムイプサムの単語。個数の指定がなければ3個。
$randomLoremSentenceなし1文。
$randomLoremSentences個数数文。個数の指定がなければ2〜6文。
$randomLoremParagraphなし1段落。
$randomLoremParagraphs個数段落。個数の指定がなければ3段落。
$randomLoremTextなし1文から数文。
$randomLoremSlugなしdolor-sit-amet
$randomLoremLinesなし数文を1行に1文ずつ。

ファイル

値引数得られるもの
$randomFileNameなしrouter_matrix.pdf
$randomFileTypeなしimage、text、video…
$randomFileExtなしpdf
$randomCommonFileNameなし一般的な拡張子のファイル名。
$randomCommonFileTypeなしimage、video、text…
$randomCommonFileExtなしpng
$randomFilePathなし/var/reports/router_matrix.pdf
$randomDirectoryPathなし/var/reports
$randomMimeTypeなしapplication/pdf

画像

値引数得られるもの
$randomAvatarImageなしアバター画像のアドレス。
$randomImageUrlなし640×480の画像のアドレス。
$randomAbstractImageなしabstractをテーマにした640×480の画像のアドレス。ほかのテーマ:$randomAnimalsImage、$randomBusinessImage、$randomCatsImage、$randomCityImage、$randomFoodImage、$randomNightlifeImage、$randomFashionImage、$randomPeopleImage、$randomNatureImage、$randomSportsImage、$randomTransportImage。
$randomImageDataUriなしdata: URIとしての小さなSVG画像。

データベース

値引数得られるもの
$randomDatabaseColumnなしcreatedAt
$randomDatabaseTypeなしvarchar
$randomDatabaseCollationなしutf8mb4_unicode_ci
$randomDatabaseEngineなしInnoDB

テキスト

値引数得られるもの
$lowercaseテキスト小文字にしたテキスト。{{$lowercase(email)}}
$uppercaseテキスト大文字にしたテキスト。{{$uppercase(productId)}}
$trimテキスト両端のスペースと改行を取り除いたテキスト。{{$trim($responseBody('auth/who-am-i'))}}

ファイルとシステム

値引数得られるもの
$fileパスファイルの内容。ワークスペースからの相対パスまたは絶対パス。{{$file('fixtures/order.json')}}
$env名前Echolotプロセスの環境変数。{{$env('HOME')}}

動的な値とエージェント

AIエージェントがリクエストを送信するとき(EcholotのMCPサーバまたはアシスタント経由)、$envは何も返さず、$fileはワークスペース内のファイルだけを読み取ります。シークレットの値がエージェントに渡ることはありません。 エージェントを参照してください。

このページの内容