Перейти к документации
CLI

Команды

Как читается команда, глобальные флаги, каждая написанная вручную команда и каждое пространство имён ресурсов.

Как читается команда

Грамматика
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Только JSON в stdout, ошибки в виде JSON в stderr и никаких вопросов
-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Выводить идентификаторы запросов, неудачный запрос и трассировки стека

Команды, написанные вручную

Они написаны для людей: спрашивают недостающее, форматируют вывод и объединяют несколько вызовов API, где это помогает.

КомандаЧто делает
loginВойти через браузер или сохранить API-ключ
whoamiПод кем вы вошли, с рабочим пространством, scope и сроком действия
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Переводить, писать и кратко излагать письма с ИИ
mcp config, tools, call, serveПодключать ИИ-клиенты или вызывать 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 в kebab-case, а глагол это имя метода в kebab-case, поэтому 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
  • Идентификатор, который принимает метод, это аргумент, как в openemail domains get <id>. Каждое поле тела запроса это флаг с его именем в kebab-case: 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 показывает каждый аргумент и флаг с типом, scope, которые нужны вызову, его метод и путь, что он возвращает, и примечания из справочника API.

Каждое пространство имён

Столбец «Также» перечисляет другие имена, на которые откликается пространство имён.

Пространство имёнТакжеГлаголы
meget, ping, rotate
keyskeylist, get, create, update, delete, rotate, revoke, list-requests, list-activity, list-workspace-requests, list-workspace-activity
addressesaddresslist
languageslanguagelist
emailsemailsend, send-batch, translate, list, get, list-events, get-tracking, cancel, reschedule
templatestemplatelist, 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
trackinglist, get-stats, get, list-opens, list-clicks
threadsthreadlist, get, update, trash, snooze, unsnooze, list-attachments
draftsdraftlist, get, create, update, delete
labelslist, list-colors, get, create, update, delete
contactscontactlist, get, create, update, delete, set-audiences, list-people, save, delete-many, set-photo, remove-photo, block, unblock, list-threads, activity
audiencesaudiencelist, growth, get, create, update, delete, empty, list-contacts, add-contact, remove-contact, add-contacts, remove-contacts, import-contacts
broadcastsbroadcastpreview, send, list, get, stats, list-recipients, get-recipient, cancel
domainsdomainlist, get, create, verify, update, delete, list-addresses, create-address, get-address, update-address, delete-address
rulesrulelist, get, create, update, delete, reorder, test, list-runs
webhookswebhooklist, get, create, update, delete, rotate-secret, test, list-deliveries, get-delivery, replay-delivery, list-workspace-deliveries, list-activity, list-workspace-activity
importsimportlist, get, create, upload-state, upload-chunk, start, cancel, list-failures, delete-upload, import-files
provider-importsprovider-import, providerImportsinspect, create, list, get, cancel
calendarlist-events, get-event, get-event-ics
settingssettingget, update
rolesrolelist, get, create, update, delete, list-permissions
membersmemberlist, get, add, update, remove, grant-address, revoke-address, list-invitations, revoke-invitation, resend-invitation
suppressionssuppressionlist, get, add, remove
filesfilelist, get, stats, download, list-links, create-link, revoke-link, upload, delete, delete-many
temp-mailtempMaillist-domains, create, get, extend, delete, list-messages, get-message, delete-message, list-attachments

Псевдонимы

ПсевдонимДля
lslist
show, viewget
new, addcreate
editupdate
rm, del, removedelete
openemail lsopenemail inbox
openemail showopenemail read

В members и suppressions, где глаголы называются add и remove, 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 --help

openemail --help перечисляет каждую команду по назначению. Группа перечисляет свои подкоманды с примерами, а команда показывает всё, что принимает. openemail docs open cli открывает эти страницы.

Ваши входящие,
на ваших условиях.

Почтовая инфраструктура для бизнеса, ИИ, агентов и личной почты. Создана для масштаба, приватности и контроля. Всё, что должно было быть в почте с первого дня.

OpenEmail

Почтовая инфраструктура для бизнеса, ИИ, агентов и личной почты. Создана для масштаба, приватности и контроля. Всё, что должно было быть в почте с первого дня.

© 2026 OpenEmail. Все права защищены.