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 버전

App Store 버전에는 도구가 포함되어 있지 않고 명령줄 도구 설치… 항목도 없습니다. 대신 릴리스 페이지의 zip에서 도구를 설치하십시오. 같은 작업 공간에서 작동합니다.

버전 비교하기

명령줄 도구는 앱의 베타 빌드에서도 만료되지 않습니다. macOS 15 이상이 설치된 Mac이 필요합니다.

명령

명령동작
echolot send요청 하나(URL 또는 저장된 요청 파일)를 보내고 본문을 표준 출력에 씁니다.
echolot run작업 공간, 그 일부 폴더나 요청, 또는 Postman 컬렉션을 검사와 보고서와 함께 실행합니다.
echolot validate작업 공간의 모든 파일을 읽을 수 있는지, 모든 요청이 해석되는지 확인합니다.
echolot import, echolot export컬렉션을 작업 공간으로 가져오고, 작업 공간을 Postman, Insomnia, Bruno, Echolot 형식으로 내보냅니다.
echolot mcpMCP 서버를 확인하고, 로그인하고, 작업 공간을 에이전트에 제공하고, 클라이언트 설정을 출력합니다.
echolot specOpenAPI 문서를 린트하고, 명세를 따르는 폴더에 대한 명세 변경을 확인하고 적용합니다.
echolot graphql diff두 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로 지정한 파일. 한 줄에 NAME=value 하나, 주석은 #, 값을 감싼 따옴표는 제거됩니다. 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 serve웹훅 호출자가 보내는 토큰. 없으면 임의의 토큰을 사용합니다.
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명령줄 자체가 잘못되었습니다. 알 수 없는 옵션, 없는 파일, 존재하지 않는 환경 등입니다. 이유가 출력됩니다.

다음 단계

이 페이지에서