명령
명령 읽는 법, 전역 플래그, 직접 작성한 모든 명령, 모든 리소스 네임스페이스.
명령 읽는 법
openemail <command> [subcommand] [arguments] [flags]- 플래그는 명령 뒤라면 인수 앞이든 뒤든 어디에나 둘 수 있습니다.
--profile,--json같은 전역 플래그는 명령 앞에 와도 되지만, 그 자리에 둔 다른 플래그는 명령 이름 뒤로 옮기라는 안내와 함께 멈춥니다. - 값은 공백이나 등호 뒤에 플래그를 따르므로
--limit 50과--limit=50은 같습니다. 짧은 플래그도-n 50처럼 값을 받습니다. - 대시로 시작하는 값에는
--subject=-draft-처럼 등호가 필요합니다. 공백 뒤에 두면 다음 플래그로 읽히고, 첫 번째 플래그에 값이 없다고 보고되기 때문입니다. 음수는 어느 방식으로든 됩니다. 빈 값은 조용한 기본값이 아니라 사용 오류입니다. - 스위치는
--flag로 켜고--no-flag로 끄며,--flag=true와--flag=false도 됩니다. - 목록은 쉼표로 구분하거나 반복합니다:
--to [email protected],[email protected], 또는--to를 두 번. --뒤의 모든 것은 인수이며 플래그가 아닙니다.-from:ada검색은 이렇게 통과시킵니다.- 알 수 없는 명령이나 플래그는 종료 코드
2로 멈추고 가장 가까운 것을 제안합니다.
전역 플래그
| 플래그 | 하는 일 |
|---|---|
| -h, --help | 명령이나 그룹의 도움말 |
| -v, --version | CLI 버전 출력 |
| --json | stdout에는 JSON만, 오류는 stderr에 JSON으로, 프롬프트는 없음 |
| -y, --yes | 파괴적인 작업을 묻지 않고 확인합니다. 인증 코드는 건너뛰지 않습니다 |
| --profile <name> | 저장된 이 프로필 사용(OPENEMAIL_PROFILE과 같음) |
| --api-key <key> | 프로필을 무시하고 이 API 키를 이 명령에만 사용 |
| --base-url <url> | API 키나 자격 증명을 보내지 않는 명령이 쓰는 API 오리진(OPENEMAIL_BASE_URL과 같음). 저장된 로그인은 항상 자기 오리진을 씁니다 |
| --no-input | 절대 묻지 않음. 값이 빠지면 종료 코드 2로 멈춤 |
| --no-color | 색 없음(NO_COLOR, FORCE_COLOR=0과 같음) |
| --debug | 요청 ID, 실패한 요청, 스택 트레이스 출력 |
직접 작성한 명령
사람을 위해 작성된 명령입니다. 빠진 것을 묻고, 출력을 보기 좋게 만들며, 도움이 되면 여러 API 호출을 묶습니다.
| 명령 | 하는 일 |
|---|---|
| login | 브라우저로 로그인하거나 API 키 저장 |
| whoami | 누구로 로그인했는지, 워크스페이스, 범위, 만료와 함께 |
| status | whoami 내용에 더해 보내는 주소와 각 도메인의 상태 |
| verify | 지금 인증 코드를 입력해 민감한 명령이 60분 동안 실행되게 함 |
| logout | 로그아웃하고 프로필 잊기 |
| profile list, use, current, remove | 저장된 로그인 나열, 전환, 제거 |
| send | 이메일 보내기, 예약하기, 또는 번역해서 보내기 |
| inbox [folder] | 폴더의 스레드 나열 |
| search <query> | 앱과 같은 문법으로 메일 검색 |
| read <thread-id> | 스레드를 메시지별로 읽기 |
| reply <thread-id> | 스레드의 마지막 메시지에 답장 |
| archive, unarchive, trash, star, unstar | 스레드 하나 이상 정리 |
| mark read, mark unread | 스레드를 읽음 또는 읽지 않음으로 표시 |
| snooze, unsnooze | 스레드를 나중까지 숨기거나 지금 되돌리기 |
| label add, label remove | 스레드에 라벨을 붙이거나 떼기 |
| temp new, list, read, watch, delete | 일회용 받은편지함, 로그인 불필요 |
| ai translate, languages, compose, summarize | AI로 메일 번역, 작성, 요약 |
| mcp config, tools, call, serve | AI 클라이언트 연결, 또는 MCP 도구 직접 호출 |
| docs ask, open, read | 이 문서에 질문하고, 열고, 읽기 |
| open [page] | 웹 앱의 페이지 열기 |
| api <method> <path> | 로그인으로 모든 REST 엔드포인트 호출 |
| update | npm에서 새 릴리스 확인 |
| completion <shell> | bash, zsh, fish용 자동 완성 스크립트 출력 |
| version | CLI, SDK, 런타임 버전 출력 |
| help [command] | 모든 명령의 도움말 보기 |
리소스 명령
SDK의 모든 메서드는 openemail <namespace> <verb>라는 명령이기도 합니다. 네임스페이스는 SDK 네임스페이스를 케밥 케이스로, 동사는 메서드 이름을 케밥 케이스로 쓴 것이라서 keys.listRequests는 openemail keys list-requests가 됩니다. 이 명령들이 REST API 전체를 다룹니다.
openemail domains listopenemail domains create --domain acme.comopenemail rules create --data @rule.jsonopenemail keys list-requests 9f2c1a4b7e05d3862c1f0a44 --failed-only --allopenemail files download file_6bb640f5b99e47deb758f1f5 --out report.pdf- 메서드가 받는 ID는
openemail domains get <id>처럼 인수입니다. 요청 본문의 각 필드는 이름을 케밥 케이스로 쓴 플래그입니다.replyTo는--reply-to,color.backgroundColor는--color-background-color가 됩니다. - 전역 플래그와 겹치는 플래그 이름을 가진 필드 세 개는 이름이 바뀌었습니다:
--template-version,--label-color,--resend-key. --data는 본문 전체를 JSON으로 받습니다. 인라인,@path로 파일에서,-로 stdin에서 줄 수 있고, 함께 준 플래그는 해당 키를 덮어씁니다. 객체를 받는 플래그도 같은 방식으로 JSON을 읽습니다.- 숫자와 스위치는 그대로 해석되며, 목록은 쉼표로 구분하거나 반복합니다.
- 필수 값이 빠지면 터미널에서는 묻고, 그 밖에서는 사용 오류(종료 코드
2)입니다. - 목록 동사는 한 페이지를 읽습니다.
--limit로 크기를 정하고--cursor로 출력된 커서부터 이어 갑니다.--all은 모든 페이지를 읽어 항목을 스트리밍하고,--max <n>은 그만큼 읽고 멈추며,--ndjson은 한 줄에 JSON 객체 하나를 출력합니다. - 삭제, 폐기, 교체, 취소, 비우기처럼 파괴적인 작업은
--yes를 주지 않는 한 확인을 요청합니다. - 다운로드는
--out의 파일에 쓰며, stdout이 터미널이 아닐 때만 stdout으로 보냅니다.
openemail <namespace> <verb> --help는 각 인수와 플래그의 타입, 호출에 필요한 범위, 메서드와 경로, 반환값, API 레퍼런스의 참고 사항을 보여 줍니다.
모든 네임스페이스
별칭 열은 네임스페이스가 응답하는 다른 이름을 나열합니다.
| 네임스페이스 | 별칭 | 동사 |
|---|---|---|
| me | get, ping, rotate | |
| keys | key | list, get, create, update, delete, rotate, revoke, list-requests, list-activity, list-workspace-requests, list-workspace-activity |
| addresses | address | list |
| languages | language | list |
| emails | email | send, send-batch, translate, list, get, list-events, get-tracking, cancel, reschedule |
| templates | template | list, get, create, update, duplicate, replace-content, delete, list-versions, get-version, publish, restore-version, delete-version, list-starters, get-starter, list-fonts, render, preview, get-analytics, list-sends, send |
| tracking | list, get-stats, get, list-opens, list-clicks | |
| threads | thread | list, get, update, trash, snooze, unsnooze, list-attachments |
| drafts | draft | list, get, create, update, delete |
| labels | list, list-colors, get, create, update, delete | |
| contacts | contact | list, get, create, update, delete, set-audiences, list-people, save, delete-many, set-photo, remove-photo, block, unblock, list-threads, activity |
| audiences | audience | list, growth, get, create, update, delete, empty, list-contacts, add-contact, remove-contact, add-contacts, remove-contacts, import-contacts |
| broadcasts | broadcast | preview, send, list, get, stats, list-recipients, get-recipient, cancel |
| domains | domain | list, get, create, verify, update, delete, list-addresses, create-address, get-address, update-address, delete-address |
| rules | rule | list, get, create, update, delete, reorder, test, list-runs |
| webhooks | webhook | list, get, create, update, delete, rotate-secret, test, list-deliveries, get-delivery, replay-delivery, list-workspace-deliveries, list-activity, list-workspace-activity |
| imports | import | list, get, create, upload-state, upload-chunk, start, cancel, list-failures, delete-upload, import-files |
| provider-imports | provider-import, providerImports | inspect, create, list, get, cancel |
| calendar | list-events, get-event, get-event-ics | |
| settings | setting | get, update |
| roles | role | list, get, create, update, delete, list-permissions |
| members | member | list, get, add, update, remove, grant-address, revoke-address, list-invitations, revoke-invitation, resend-invitation |
| suppressions | suppression | list, get, add, remove |
| files | file | list, get, stats, download, list-links, create-link, revoke-link, upload, delete, delete-many |
| temp-mail | tempMail | list-domains, create, get, extend, delete, list-messages, get-message, delete-message, list-attachments |
별칭
| 별칭 | 대상 |
|---|---|
| ls | list |
| show, view | get |
| new, add | create |
| edit | update |
| rm, del, remove | delete |
| openemail ls | openemail inbox |
| openemail show | openemail read |
동사가 add와 remove인 members와 suppressions에서는 new와 create가 add로, rm, del, delete가 remove로 이어집니다. 직접 작성한 일부 하위 명령에는 고유한 별칭이 있으며, 각 도움말에 나와 있습니다.
모든 REST 호출
openemail api <method> <path>는 다른 모든 명령과 같은 전송 계층으로 REST API에 요청을 하나 보냅니다. 그래서 프로필이나 키, 토큰 갱신, 인증 코드가 모두 적용됩니다. 경로만 주면 GET입니다. JSON 응답은 서식을 갖춰 출력되고, 실패한 요청은 API 오류를 출력하고 해당 코드로 종료합니다.
openemail api /keys/selfopenemail api GET /threads --query folder=inbox --query limit=5openemail api POST /labels --data '{"name":"Receipts"}'openemail api PATCH /threads/CAHk7pQ2x9LmZ4 --data @patch.jsonopenemail api GET /files/file_6bb640f5b99e47deb758f1f5/content --out report.pdf-d,--data는 본문을 인라인 JSON으로,@path로 파일에서, 또는-로 stdin에서 받습니다.-q,--query와-H,--header는key=value를 받고 여러 번 쓸 수 있으며,-o,--out은 응답을 받은 그대로 파일에 저장합니다.- 경로는 API 오리진 기준의 상대 경로입니다. 전체 URL, 오리진을 벗어나는 경로,
Authorization헤더는 아무것도 보내기 전에 종료 코드2로 거부됩니다. 자격 증명은 CLI가 직접 설정하기 때문입니다.
도움말
openemail --helpopenemail help sendopenemail domains --helpopenemail domains create --helpopenemail --help는 모든 명령을 용도별로 나열합니다. 그룹은 하위 명령을 예제와 함께 나열하고, 명령은 받는 모든 것을 보여 줍니다. openemail docs open cli는 이 페이지를 엽니다.