DEV Community

Cover image for Resend CLI 설치 및 사용법
Rihpig
Rihpig

Posted on • Originally published at apidog.com

Resend CLI 설치 및 사용법

Resend CLI 소개

Resend CLI는 개발자를 위해 만들어진 이메일 플랫폼 Resend의 공식 명령줄 도구입니다. 다음 명령어로 설치할 수 있습니다:

npm install -g resend-cli
Enter fullscreen mode Exit fullscreen mode

또는

brew install resend/cli/resend
Enter fullscreen mode Exit fullscreen mode

설치 후, 아래와 같이 인증을 진행하세요:

resend login
Enter fullscreen mode Exit fullscreen mode

이후 터미널이나 CI/CD 파이프라인에서 이메일을 발송하고, 도메인을 관리하며, 전체 이메일 인프라를 자동화할 수 있습니다.

지금 Apidog을 사용해보세요

Resend란 무엇인가요?

Resend는 개발자를 위한 이메일 API입니다. 도메인을 연결하고 API 키를 받아 애플리케이션에서 트랜잭션 이메일(비밀번호 재설정, 주문 확인, 온보딩 등)을 쉽게 발송할 수 있습니다.

2026년 3월 13일, 설립자 Zeno Rocha가 Resend CLI를 출시하여 동일한 인프라를 터미널에 제공합니다. CLI는 13개 리소스, 53개 명령을 지원하며, TypeScript로 작성되어 MIT 라이선스 하에 오픈 소스입니다.

CLI 활용 대상별 특징

  • 사람: 대화형 프롬프트, 테이블 출력, 자연어 스케줄링(예: "내일 오전 9시")
  • AI 에이전트: JSON 출력, 멱등성 키, 자동 에이전트 감지
  • CI/CD: 환경 변수 인증, 스크립트 플래그, 일관된 종료 코드

💡 이메일을 보내는 앱을 개발 중이라면, 실제 프로덕션 이전에 API 호출을 테스트해야 합니다. Apidog는 Resend 이메일 API 등 REST API를 별도의 코드 없이 시각적으로 테스트할 수 있는 무료 툴입니다. OpenAPI 사양을 가져오고, 환경을 구성해 테스트 스위트를 간편하게 실행할 수 있습니다.

Resend CLI 설치하기

환경에 따라 다음 네 가지 설치 방법 중 하나를 선택하세요.

cURL을 통한 설치 (독립 실행형 / Node.js 불필요)

curl -fsSL https://resend.com/install.sh | bash
Enter fullscreen mode Exit fullscreen mode
  • OS별 바이너리를 자동 다운로드 및 PATH에 추가합니다.
  • Node.js 불필요.

npm을 통한 설치

npm install -g resend-cli
Enter fullscreen mode Exit fullscreen mode
  • Node.js 20 이상 필요.
  • 설치 후 동작 확인:
resend --version
Enter fullscreen mode Exit fullscreen mode

Homebrew를 통한 설치 (macOS, Linux)

brew install resend/cli/resend
Enter fullscreen mode Exit fullscreen mode
  • macOS에서 가장 권장되는 방식.
  • Homebrew가 자동으로 업데이트 관리.

PowerShell을 통한 설치 (Windows)

irm https://resend.com/install.ps1 | iex
Enter fullscreen mode Exit fullscreen mode

로컬 개발 및 기여

Node.js 20+와 pnpm 필요. 소스 코드에서 직접 빌드하려면:

git clone https://github.com/resend/resend-cli.git
cd resend-cli
pnpm install
pnpm build # ./dist/cli.cjs 생성
pnpm build:bin # 네이티브 바이너리 ./dist/resend
Enter fullscreen mode Exit fullscreen mode

계정 인증하기

CLI에서 계정 연결을 위해 다음을 실행하세요.

resend login
Enter fullscreen mode Exit fullscreen mode
  • 브라우저가 열리며, Resend 대시보드에서 API 키 생성 안내.
  • 자격 증명은 ~/.config/resend/credentials.json에 0600 권한으로 저장.

비대화형 환경(CI/CD 등)

브라우저 인증 없이 키를 직접 전달:

resend login --key re_xxxxxxxxxxxxx
Enter fullscreen mode Exit fullscreen mode
  • 인증 후, 모든 명령에서 재인증 필요 없음.
  • API 키 확인 순서:
    1. --api-key 플래그
    2. RESEND_API_KEY 환경 변수
    3. 저장된 자격 증명 파일

CI에서 환경 변수 활용:

RESEND_API_KEY=re_xxx resend emails send --from builds@yourco.com --to dev@yourco.com --subject "Build passed" --text "All tests green."
Enter fullscreen mode Exit fullscreen mode

다중 계정 지원

여러 조직/팀 간 전환:

resend auth switch
Enter fullscreen mode Exit fullscreen mode

또는 특정 프로필 사용:

resend <command> --profile production
Enter fullscreen mode Exit fullscreen mode

첫 이메일 보내기

이메일 전송 기본 명령은 resend emails send 입니다.

일반 텍스트 이메일 보내기

resend emails send \
  --from "you@yourdomain.com" \
  --to recipient@example.com \
  --subject "Hello from the CLI" \
  --text "This is a test email sent from the Resend CLI."
Enter fullscreen mode Exit fullscreen mode

HTML 이메일 보내기

resend emails send \
  --from "team@yourco.com" \
  --to user@example.com \
  --subject "Your order is confirmed" \
  --html "<h1>Order confirmed</h1><p>Thanks for your purchase.</p>"
Enter fullscreen mode Exit fullscreen mode

또는 로컬 HTML 파일 지정:

resend emails send \
  --from "team@yourco.com" \
  --to user@example.com \
  --subject "Welcome aboard" \
  --html-file ./templates/welcome.html
Enter fullscreen mode Exit fullscreen mode

전송 예약하기

자연어 시간 또는 ISO 8601 지원:

resend emails send \
  --from "you@yourco.com" \
  --to user@example.com \
  --subject "Scheduled check-in" \
  --text "Just checking in." \
  --schedule "tomorrow at 9am"
Enter fullscreen mode Exit fullscreen mode
  • "1시간 후", "다음 주 월요일 오후 3시" 등도 가능.

이메일 ID 캡처

파이프 시 JSON 출력. jq로 후처리:

EMAIL_ID=$(resend emails send \
  --from a@acme.com \
  --to b@acme.com \
  --subject "Test" \
  --text "Hi" | jq -r '.data.id')

echo "Sent email: $EMAIL_ID"
Enter fullscreen mode Exit fullscreen mode

예약 이메일 취소/업데이트

resend emails cancel $EMAIL_ID
resend emails update $EMAIL_ID --schedule "next Monday at 10am"
Enter fullscreen mode Exit fullscreen mode

최근 이메일 목록 확인

resend emails list
Enter fullscreen mode Exit fullscreen mode

최대 100개 이메일 일괄 전송

  1. 이메일 객체 배열을 emails.json으로 작성:
[
  { "from": "you@yourco.com", "to": "alice@example.com", "subject": "Hi Alice", "text": "Hello!" },
  { "from": "you@yourco.com", "to": "bob@example.com", "subject": "Hi Bob", "text": "Hello!" }
]
Enter fullscreen mode Exit fullscreen mode
  1. 일괄 전송:
resend emails send-batch --file emails.json
Enter fullscreen mode Exit fullscreen mode
  • 한 번의 API 호출로 100개까지 전송(요율 제한에 유리).

도메인 및 API 키 관리

도메인 추가

resend domains create --name yourdomain.com --region us-east-1
Enter fullscreen mode Exit fullscreen mode
  • 지원 리전: us-east-1, eu-west-1, sa-east-1, ap-northeast-1.

DNS 레코드 확인/검증

도메인 등록 후, DNS(SPF, DKIM, DMARC) 추가 → 검증:

resend domains verify --id <domain-id>
Enter fullscreen mode Exit fullscreen mode

상태 확인:

resend domains get --id <domain-id>
Enter fullscreen mode Exit fullscreen mode

추적 및 TLS 설정

resend domains configure --id <domain-id>
Enter fullscreen mode Exit fullscreen mode
  • 오픈/클릭 추적, 사용자 지정 DKIM 설정 가능.

등록된 도메인 목록

resend domains list
Enter fullscreen mode Exit fullscreen mode

API 키 관리

각 서비스/환경별 범위 지정 키 생성 권장:

resend api-keys create  # 대화형 생성 및 범위 지정
resend api-keys list
resend api-keys delete --id <key-id>
Enter fullscreen mode Exit fullscreen mode
  • 한 도메인에 범위 지정된 키는 다른 도메인/계정 설정 접근 불가.

고급 기능: 브로드캐스트, 웹훅, 템플릿

브로드캐스트

대량 이메일 발송 워크플로:

resend broadcasts create   # 초안 생성(대화형)
resend broadcasts send --id <broadcast-id>
resend broadcasts schedule --id <broadcast-id> --date "next Monday at 10am"
Enter fullscreen mode Exit fullscreen mode

웹훅

실시간 이메일 이벤트 수신:

resend webhooks create
resend webhooks list
Enter fullscreen mode Exit fullscreen mode

로컬에서 웹훅 테스트:

resend webhooks listen --forward-to http://localhost:3000/webhooks/resend
Enter fullscreen mode Exit fullscreen mode
  • email.sent 등 17종 이벤트 지원.

템플릿

반복적으로 쓰는 이메일을 동적 변수와 함께 작성:

resend templates create  # 대화형 템플릿 빌더
Enter fullscreen mode Exit fullscreen mode
  • 변수: {{variable_name}} 문법.

연락처 및 대상 관리

마케팅 이메일용 연락처 관리:

resend contacts create --audience-id <id> --email user@example.com --first-name "Alice"
resend contacts list --audience-id <id>
resend contacts update --id <contact-id> --unsubscribed false
Enter fullscreen mode Exit fullscreen mode

진단 실행

환경 진단:

resend doctor
Enter fullscreen mode Exit fullscreen mode
  • CLI 버전, API 키, 도메인 인증, AI 코딩 에이전트 감지 등 체크.

CI/CD 파이프라인에서 Resend CLI 사용하기

자동화 환경에서 CLI 활용을 위한 주요 패턴:

기계 판독 가능한 출력

JSON 출력 사용:

resend emails send --from a@co.com --to b@co.com --subject "Deploy" --text "Done" --json
Enter fullscreen mode Exit fullscreen mode

--quiet 플래그로 비데이터 출력 억제:

resend emails list --quiet | jq '.[0].id'
Enter fullscreen mode Exit fullscreen mode

파괴적 작업 자동 확인

스크립트에서 확인 프롬프트 생략:

resend api-keys delete --id <key-id> --yes
Enter fullscreen mode Exit fullscreen mode

GitHub Actions 예시

- name: Send deployment notification
  env:
    RESEND_API_KEY: ${{ secrets.RESEND_API_KEY }}
  run: |
    resend emails send \
      --from deploys@yourco.com \
      --to team@yourco.com \
      --subject "Deploy to production: ${{ github.sha }}" \
      --text "Deployed commit ${{ github.sha }} to production."
Enter fullscreen mode Exit fullscreen mode

요율 제한

  • 초당 2회 요청 (팀 전체 API 키 기준)
  • 대량 전송은 send-batch로 처리 권장.

Apidog로 이메일 API 테스트하기

Resend CLI는 빠른 대화형 테스트에 적합하지만, REST API 직접 연동 시 Apidog 무료 API 클라이언트를 활용하면 다음과 같이 생산성을 높일 수 있습니다.

  • API 사양 가져오기: Resend 문서에서 OpenAPI 사양을 Apidog로 임포트
  • 환경 설정: 개발/운영 환경별로 RESEND_API_KEY 등 변수 관리, 요청 시 {{RESEND_API_KEY}} 참조
  • 전송 로직 테스트: POST /emails에 정확한 페이로드로 요청, 응답/오류 검증
  • 테스트 자동화: 테스트 러너로 여러 API 호출 시나리오 작성, 코드 없이 상태 확인

Apidog와 Resend CLI를 연동해 빠른 터미널 작업과 체계적인 API 테스트 환경을 동시에 구축할 수 있습니다.

Resend 가격 정책

CLI는 무료/오픈 소스입니다. Resend 플랫폼 요금제는 다음과 같습니다:

플랜 가격 월별 이메일 일일 제한 로그 보존
무료 $0/월 3,000 100/일 1일
Pro $20/월 50,000 제한 없음 3일
Scale $90/월 100,000 제한 없음 7일
Enterprise 맞춤형 맞춤형 맞춤형 맞춤형

무료 등급 주의사항:

  • 일 100개 제한: 테스트, 소규모용. 프로덕션용은 Pro 이상 필요.
  • 분석(열림/클릭 추적): 유료 플랜에서만 지원.
  • 로그 보존 1일: 24시간 이후 이메일 상태 조회 불가.
  • 모든 플랜 요율 제한: 초당 2회(팀 전체 공유).
  • 유료 플랜 초과 사용: 월 한도의 5배로 제한.

전용 IP는 Scale 플랜에서 월 $30 추가, 일일 500개 이상 발송 시 사용 가능.

자주 묻는 질문

Q: Resend CLI 설치에 Node.js가 필수인가요?

A: cURL/Homebrew 설치는 Node.js 불필요. npm 설치만 Node.js 20+ 필요.

Q: 아무 이메일 주소에서나 발송할 수 없는 이유?

A: 인증된 도메인만 허용. 도메인 소유, DNS(SPF, DKIM, DMARC) 등록 필수. Gmail 등 무료 메일 불가.

Q: 무료 플랜에서도 모든 주소로 보낼 수 있나요?

A: 네. 수신자 제한 없음. 월 3,000건/일 100건 제한.

Q: 자연어 스케줄링 방식은?

A: "내일 오전 9시", "2시간 후" 등 문구나 ISO 8601 포맷 인식. 별도 지정 없으면 시스템 로컬 타임존.

Q: 출력을 파이프하면?

A: 파이프 감지 시 자동으로 JSON 전용 출력. --json 명시 불필요.

Q: 여러 Resend 계정 CLI 사용법?

A: 여러번 resend login(다른 프로필 저장), resend auth switch로 전환하거나, 각 명령에 --profile <name> 지정.

Q: Resend CLI 오픈 소스 여부?

A: 네, MIT 라이선스, github.com/resend/resend-cli에서 확인 가능.

Q: --quiet--json 차이?

A: 둘 다 JSON 출력. --json은 JSON 강제, --quiet는 스피너/진행 표시 등 비데이터 출력 억제. 실제 출력은 동일.

추가 자료

Top comments (0)