Cara Install dan Menggunakan Resend CLI

Herve Kom

Herve Kom

17 March 2026

Cara Install dan Menggunakan Resend CLI

Apidog untuk Perusahaan

Penerapan On-Premises

SSO & RBAC

Sesuai SOC 2

Jelajahi Apidog Enterprise

Resend CLI adalah alat baris perintah resmi untuk Resend, sebuah platform email yang dibangun untuk pengembang. Anda menginstalnya dengan npm install -g resend-cli atau brew install resend/cli/resend, melakukan autentikasi dengan resend login, dan kemudian mengirim email, mengelola domain, dan mengotomatiskan infrastruktur email Anda dari terminal atau pipeline CI/CD mana pun.

Apa itu Resend?

Resend adalah API email untuk pengembang. Anda menghubungkan domain Anda, mendapatkan kunci API, dan mulai mengirim email transaksional dari aplikasi Anda: pengaturan ulang kata sandi, konfirmasi pesanan, urutan orientasi, apa pun yang dipicu secara terprogram.

Pada 13 Maret 2026, pendiri Resend, Zeno Rocha, merilis Resend CLI, membawa infrastruktur yang sama ke terminal. CLI memiliki 53 perintah di 13 sumber daya. Ini ditulis dalam TypeScript, sepenuhnya sumber terbuka di bawah lisensi MIT, dan berfungsi untuk tiga audiens yang berbeda:

💡
Jika Anda membangun aplikasi yang mengirim email, Anda akan menginginkan cara untuk menguji panggilan API email tersebut sebelum mencapai produksi. Apidog memberi Anda antarmuka visual gratis untuk menguji REST API, termasuk API email Resend, tanpa menulis kode tambahan apa pun. Anda dapat mengimpor spesifikasi Resend OpenAPI, mengonfigurasi lingkungan Anda, dan menjalankan rangkaian pengujian yang terorganisir, semuanya di satu tempat.
tombol

Menginstal Resend CLI

Ada empat cara untuk menginstal CLI. Pilih salah satu yang sesuai dengan pengaturan Anda.

Via cURL (binary standalone, tidak memerlukan Node.js)

curl -fsSL https://resend.com/install.sh | bash

Ini mengunduh binary pra-bangun untuk OS Anda dan menempatkannya di PATH Anda. Tidak diperlukan Node.js.

Via npm

npm install -g resend-cli

Membutuhkan Node.js 20 atau yang lebih baru. Setelah instalasi, konfirmasikan apakah berfungsi:

resend --version

Via Homebrew (macOS dan Linux)

brew install resend/cli/resend

Ini adalah opsi terbersih di macOS. Homebrew menangani pembaruan secara otomatis.

Via PowerShell (Windows)

irm https://resend.com/install.ps1 | iex

Anda juga dapat mengunduh binary .exe langsung dari halaman Rilis GitHub.

Untuk pengembangan lokal

Jika Anda ingin berkontribusi pada CLI atau membangun dari sumber, Anda memerlukan Node.js 20+ dan pnpm:

git clone https://github.com/resend/resend-cli.git
cd resend-cli
pnpm install
pnpm build       # menghasilkan ./dist/cli.cjs
pnpm build:bin   # binary native di ./dist/resend

Mengautentikasi akun Anda

Jalankan resend login untuk menghubungkan CLI ke akun Resend Anda:

resend login

Ini akan membuka browser Anda, memandu Anda membuat kunci API di dasbor Resend, dan menyimpan kredensial Anda secara lokal di ~/.config/resend/credentials.json dengan izin terbatas 0600.

Untuk lingkungan non-interaktif (CI/CD, skrip), lewati alur browser dan berikan kunci secara langsung:

resend login --key re_xxxxxxxxxxxxx

Setelah disimpan, Anda tidak perlu mengautentikasi ulang untuk setiap perintah. CLI menyelesaikan kunci API Anda dalam urutan ini:

  1. Flag --api-key (menggantikan semuanya)
  2. Variabel lingkungan RESEND_API_KEY
  3. File kredensial yang disimpan

Untuk pipeline CI, mengatur RESEND_API_KEY sebagai variabel lingkungan rahasia adalah pendekatan standar:

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

Dukungan multi-akun

Jika Anda bekerja di beberapa organisasi atau tim Resend, CLI juga menanganinya. Beralih antar profil yang disimpan tanpa keluar:

resend auth switch

Atau berikan profil tertentu untuk satu perintah:

resend <perintah> --profile production

Mengirim email pertama Anda

Perintah utama untuk mengirim adalah resend emails send. Minimal, Anda memerlukan alamat pengirim (dari domain terverifikasi), penerima, subjek, dan isi.

Kirim email teks biasa

resend emails send \
  --from "you@yourdomain.com" \
  --to recipient@example.com \
  --subject "Halo dari CLI" \
  --text "Ini adalah email tes yang dikirim dari Resend CLI."

Kirim email HTML

resend emails send \
  --from "team@yourco.com" \
  --to user@example.com \
  --subject "Pesanan Anda dikonfirmasi" \
  --html "<h1>Pesanan dikonfirmasi</h1><p>Terima kasih atas pembelian Anda.</p>"

Atau arahkan ke file HTML lokal:

resend emails send \
  --from "team@yourco.com" \
  --to user@example.com \
  --subject "Selamat datang" \
  --html-file ./templates/welcome.html

Jadwalkan pengiriman

CLI mengurai tanggal bahasa alami bersama dengan stempel waktu ISO 8601:

resend emails send \
  --from "you@yourco.com" \
  --to user@example.com \
  --subject "Pengecekan terjadwal" \
  --text "Hanya sekadar mengecek." \
  --schedule "besok jam 9 pagi"

Bekerja dengan frasa seperti "dalam 1 jam", "Senin depan jam 3 sore", atau stempel waktu ISO lengkap.

Tangkap ID email

Ketika di-pipe, CLI secara otomatis beralih ke output JSON. Pipe melalui jq untuk menangkap ID email untuk operasi lanjutan:

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

echo "Email terkirim: $EMAIL_ID"

Batalkan atau perbarui email terjadwal

resend emails cancel $EMAIL_ID
resend emails update $EMAIL_ID --schedule "Senin depan jam 10 pagi"

Daftar email terbaru

resend emails list

Kirim dalam batch hingga 100 sekaligus

Buat file JSON dengan array objek email:

[
  { "from": "you@yourco.com", "to": "alice@example.com", "subject": "Hai Alice", "text": "Halo!" },
  { "from": "you@yourco.com", "to": "bob@example.com", "subject": "Hai Bob", "text": "Halo!" }
]

Kemudian kirim batch:

resend emails send-batch --file emails.json

Setiap permintaan batch dihitung sebagai satu panggilan API terhadap batas kecepatan Anda, meskipun mengirim hingga 100 email.

Mengelola domain dan kunci API

Sebelum Anda dapat mengirim email, Anda memerlukan domain terverifikasi. CLI memandu Anda melalui siklus hidup domain penuh.

Tambah domain

resend domains create --name yourdomain.com --region us-east-1

Wilayah yang didukung: us-east-1, eu-west-1, sa-east-1, ap-northeast-1. Pilih wilayah yang terdekat dengan pengguna Anda untuk meminimalkan latensi.

Verifikasi catatan DNS

Setelah membuat domain, Resend memberi Anda catatan DNS untuk ditambahkan (SPF, DKIM, DMARC). Setelah Anda menambahkannya ke penyedia DNS Anda, jalankan:

resend domains verify --id <domain-id>

Periksa status hingga kembali "verified":

resend domains get --id <domain-id>

Konfigurasi pelacakan dan TLS

resend domains configure --id <domain-id>  # Konfigurasi interaktif

Anda dapat mengaktifkan pelacakan buka, pelacakan klik, dan DKIM kustom melalui perintah ini.

Daftar semua domain

resend domains list

Kelola kunci API

Untuk keamanan, buat kunci API yang dicakupkan untuk setiap layanan atau lingkungan alih-alih berbagi satu kunci di mana-mana:

resend api-keys create  # Interaktif, memungkinkan Anda mengatur cakupan per domain
resend api-keys list
resend api-keys delete --id <key-id>

Kunci yang dicakupkan membatasi apa yang dapat dilakukan setiap integrasi. Kunci yang dicakupkan ke satu domain tidak dapat mengakses domain Anda yang lain atau pengaturan akun.

Fitur lanjutan: siaran, webhook, dan template

Selain mengirim email individual, Resend CLI menangani tiga kasus penggunaan utama lainnya: siaran massal, manajemen webhook, dan template yang dapat digunakan kembali.

Siaran

Siaran memungkinkan Anda mengirim email yang sama ke daftar kontak yang besar. Anda membuat draf terlebih dahulu, kemudian mengirim atau menjadwalkan:

resend broadcasts create   # Pembuatan draf interaktif
resend broadcasts send --id <broadcast-id>
resend broadcasts schedule --id <broadcast-id> --date "Senin depan jam 10 pagi"

Webhooks

Webhooks memberi Anda peristiwa pengiriman real-time: pantulan, buka, klik, laporan spam. CLI menangani seluruh siklus hidup:

resend webhooks create   # Daftarkan endpoint baru
resend webhooks list

Untuk pengembangan lokal, gunakan perintah webhooks listen untuk mem-proxy peristiwa webhook ke localhost Anda:

resend webhooks listen --forward-to http://localhost:3000/webhooks/resend

Ini menghemat Anda dari pengaturan ngrok atau alat tunneling serupa. CLI mendukung 17 jenis peristiwa termasuk email.sent, email.delivered, email.bounced, email.opened, dan email.clicked.

Template

Template memungkinkan Anda membuat HTML email yang dapat digunakan kembali dengan variabel dinamis:

resend templates create  # Pembuat template interaktif

Variabel menggunakan sintaks {{variable_name}} dengan nilai fallback. Setelah dibuat, referensikan template berdasarkan ID saat mengirim email.

Kontak dan audiens

Resend memiliki manajemen kontak bawaan untuk email pemasaran:

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

Jalankan diagnostik

Perintah doctor memeriksa lingkungan Anda dan menandai masalah:

resend doctor

Ini memverifikasi versi CLI Anda, validitas kunci API, domain terverifikasi, dan bahkan mendeteksi agen pengkodean AI (Cursor, Claude Desktop, VS Code, OpenClaw).

Menggunakan Resend CLI di pipeline CI/CD

CLI dibangun untuk bekerja dengan baik di lingkungan otomatis. Beberapa pola yang perlu diketahui:

Output yang dapat dibaca mesin

Kapan pun Anda mengarahkan output atau melewati --json, CLI beralih ke JSON terstruktur. Tanpa spinner, tanpa prompt interaktif:

resend emails send --from a@co.com --to b@co.com --subject "Deploy" --text "Selesai" --json

Flag --quiet juga menekan semua output kecuali JSON:

resend emails list --quiet | jq '.[0].id'

Konfirmasi otomatis operasi destruktif

Gunakan --yes untuk melewati prompt konfirmasi dalam skrip:

resend api-keys delete --id <key-id> --yes

Contoh GitHub Actions

- name: Kirim notifikasi deployment
  env:
    RESEND_API_KEY: ${{ secrets.RESEND_API_KEY }}
  run: |
    resend emails send \
      --from deploys@yourco.com \
      --to team@yourco.com \
      --subject "Deploy ke produksi: ${{ github.sha }}" \
      --text "Commit ${{ github.sha }} telah di-deploy ke produksi."

Batas kecepatan

Batas kecepatan API Resend adalah 2 permintaan per detik, dibagikan di semua kunci API untuk tim Anda. Saat mengirim batch, gunakan send-batch (hingga 100 email per panggilan) alih-alih mengulang pengiriman individual.

Menguji API email Anda dengan Apidog

Resend CLI sangat bagus untuk penggunaan interaktif dan skrip sederhana. Namun, saat Anda membangun backend yang memanggil REST API Resend secara langsung, Anda memerlukan cara untuk menjelajahi dan menguji endpoint tersebut sebelum menulis kode aplikasi.

Apidog mencakup hal itu. Ini adalah klien API gratis yang memungkinkan Anda mengirim permintaan HTTP, memeriksa respons, mengatur kasus uji Anda, dan menyiapkan lingkungan untuk kunci API dan konfigurasi yang berbeda.

Berikut adalah bagaimana Apidog cocok dengan alur kerja integrasi Resend yang khas:

Impor spesifikasi API Resend. Resend menyediakan dokumentasi referensi API di resend.com/docs. Anda dapat mengimpor spesifikasi API ke Apidog untuk mendapatkan tampilan terorganisir dari setiap endpoint, termasuk skema permintaan/respons.

Siapkan lingkungan. Di Apidog, buat lingkungan untuk pengembangan dan produksi. Simpan RESEND_API_KEY Anda sebagai variabel lingkungan dan referensikan dalam permintaan Anda dengan {{RESEND_API_KEY}}. Beralih antar lingkungan dengan satu klik.

Uji logika pengiriman Anda. Sebelum menulis kode untuk mengirim email dari aplikasi Anda, jalankan endpoint POST /emails di Apidog dengan payload yang tepat. Verifikasi respons, periksa apakah ID email kembali dengan benar, dan konfirmasi perilaku untuk kasus-kasus ekstrem (bidang yang hilang, alamat tidak valid, dll.).

Otomatiskan pengujian. Pelari uji Apidog memungkinkan Anda merangkai panggilan API dan menegaskan nilai respons. Anda dapat menyiapkan pengujian yang mengirim email uji, mengambilnya berdasarkan ID, kemudian memverifikasi statusnya, semuanya tanpa menulis kode uji.

Ini menangkap bug integrasi sebelum muncul dalam produksi. Dikombinasikan dengan Resend CLI untuk pengembangan lokal, Anda memiliki alat terminal cepat dan lingkungan pengujian API yang menyeluruh.

Harga Resend

CLI itu sendiri gratis dan sumber terbuka. Harga berlaku untuk platform Resend:

PaketHargaEmail BulananBatas HarianRetensi Log
Gratis$0/bln3.000100/hari1 hari
Pro$20/bln50.000Tanpa batas3 hari
Scale$90/bln100.000Tanpa batas7 hari
EnterpriseKustomKustomKustomKustom

Beberapa hal yang perlu diketahui tentang paket gratis:

IP khusus adalah add-on $30/bulan pada paket Scale, tersedia saat Anda mengirim lebih dari 500 email/hari.

tombol

FAQ

Apakah saya memerlukan Node.js untuk menginstal Resend CLI?

Tidak untuk metode instalasi cURL atau Homebrew, yang mengunduh binary standalone yang sudah dibuat. Jalur instalasi npm membutuhkan Node.js 20+.

Mengapa saya tidak bisa mengirim dari alamat email apa pun?

Resend memerlukan domain terverifikasi. Anda harus memiliki domain tersebut, menambahkan catatan DNS yang disediakan Resend (SPF, DKIM, DMARC), dan melewati langkah verifikasi. Penyedia email gratis seperti Gmail tidak didukung sebagai alamat pengirim.

Bisakah saya mengirim ke alamat email apa pun dengan paket gratis?

Ya. Paket gratis tidak membatasi penerima. Ini membatasi Anda hingga 3.000 email/bulan dengan batas 100/hari.

Bagaimana cara kerja penjadwalan bahasa alami?

CLI mengurai frasa seperti "besok jam 9 pagi", "dalam 2 jam", "Jumat depan jam 3 sore", atau stempel waktu ISO 8601 standar. Waktu diinterpretasikan dalam zona waktu lokal sistem Anda kecuali Anda menentukan sebaliknya.

Apa yang terjadi saat saya mengarahkan output?

CLI mendeteksi saat sedang di-pipe dan secara otomatis beralih ke output hanya JSON tanpa spinner atau prompt. Anda tidak perlu secara eksplisit melewatkan --json.

Bisakah saya menggunakan CLI dengan beberapa akun Resend?

Ya. Gunakan resend login beberapa kali untuk menyimpan profil yang berbeda, lalu resend auth switch untuk beralih di antara keduanya, atau teruskan --profile <nama> pada perintah apa pun untuk menggunakan profil tertentu.

Apakah Resend CLI open source?

Ya, ini berlisensi MIT dan di-host di github.com/resend/resend-cli.

Apa perbedaan antara --quiet dan --json?

Keduanya menghasilkan output JSON. --json memaksa output JSON. --quiet menekan spinner dan indikator kemajuan, yang juga menyiratkan mode JSON. Dalam praktiknya, keduanya berperilaku sama untuk format output; --quiet juga menghapus semua output non-data.

Sumber daya tambahan

Mengembangkan API dengan Apidog

Apidog adalah alat pengembangan API yang membantu Anda mengembangkan API dengan lebih mudah dan efisien.