Все команды
Все 241, по одной строке на каждую, с эндпоинтом, который вызывает каждая команда ресурса.
Все команды
Всего 241 команда, каждая на своей строке в том порядке, в каком их перечисляет openemail --help. 46 написаны вручную для людей: они спрашивают недостающее, форматируют вывод и объединяют несколько вызовов API, где это помогает, поэтому в их строке не назван один эндпоинт. Остальные 195 это команды ресурсов, openemail <namespace> <verb> в 25 пространствах имён, и каждая вызывает эндпоинт, названный в её строке.
Команды ресурсов не пишутся по одной. CLI читает манифест методов SDK, который описывает каждый метод с его параметрами, эндпоинтом и scope, и превращает каждый метод в глагол, названный по пространству имён и методу в kebab-case, поэтому domains.createAddress становится openemail domains create-address. list и обходящие его listAll и iterate становятся одним глаголом list с --all и --max, поэтому команд меньше, чем методов SDK.
Проверка паритета в пакете доказывает это перед каждым выпуском. Для каждого метода SDK она собирает командную строку тремя способами: только с обязательными значениями, с ними в файле --data и со всеми заданными флагами, запускает команду против записывающего fetch и завершается неудачей, если у метода нет команды или если команда отправляет что-то кроме метода, пути, запроса, тела и учётных данных, названных в манифесте. Затем она прогоняет те же командные строки через настоящие парсер и диспетчер и завершается неудачей на любом запросе, который отличается от прямого вызова.
Каждая строка показывает первую строку использования своей команды. Остальное показывает openemail <command> --help: каждый аргумент и флаг с тем, что он принимает, и примеры, а для команды ресурса ещё её scope, эндпоинт, то, что она возвращает, и примечания из справочника API. Добавьте --json, чтобы получить ту же страницу одним JSON-документом, а openemail --help --json выводит каждую команду, аргумент и флаг сразу. Каждая команда принимает также глобальные флаги --json, --yes, --dry-run, --profile, --api-key, --base-url, --no-input, --no-color и --debug, поэтому ни одна строка их не повторяет.
| Команда | Вызывает | Scope |
|---|---|---|
| openemail login | - | нет |
| openemail whoami | - | нет |
| openemail status | - | нет |
| openemail send --to <address> --subject <text> --text <body> [flags] | - | emails:send |
| openemail inbox [folder] [flags] | - | threads:read |
| openemail read <thread-id> [flags] | - | threads:read |
| openemail search <query...> [flags] | - | threads:read |
| openemail reply <thread-id> --text <body> [flags] | - | threads:read + emails:send |
| openemail archive <thread-id...> | - | threads:write |
| openemail unarchive <thread-id...> | - | threads:write |
| openemail trash <thread-id...> | - | threads:write |
| openemail star <thread-id...> | - | threads:write |
| openemail unstar <thread-id...> | - | threads:write |
| openemail mark read <thread-id...> | - | threads:write |
| openemail mark unread <thread-id...> | - | threads:write |
| openemail snooze <thread-id...> --until <when> | - | threads:write |
| openemail unsnooze <thread-id...> | - | threads:write |
| openemail label add <thread-id...> --label <label-id> | - | threads:write |
| openemail label remove <thread-id...> --label <label-id> | - | threads:write |
| openemail temp new [--name <local-part>] [--domain <domain>] [--ttl <minutes>] | - | нет |
| openemail temp list | - | нет |
| openemail temp read [inbox] [message-id] [flags] | - | нет |
| openemail temp watch [inbox] [--first] | - | нет |
| openemail temp delete [inbox] [--yes] | - | нет |
| openemail ai translate --to <language> [--text <text>|--html <html>|--body-file <path>] [--subject <subject>] | - | emails:send |
| openemail ai languages [--search <text>] | - | нет |
| openemail ai compose "<prompt>" [--to <address>] [--subject <subject>] [--thread <thread-id>] [--tone <tone>] | - | drafts:write |
| openemail ai summarize <thread-id> | - | threads:read |
| openemail mcp config [--client <client>] | - | нет |
| openemail mcp tools [tool] | - | нет |
| openemail mcp call <tool> [--args <json|@file|->] [--arg key=value ...] | - | нет |
| openemail mcp serve | - | нет |
| openemail docs ask "<question>" | - | нет |
| openemail docs open [slug] [--print] | - | нет |
| openemail docs read [slug] | - | нет |
| openemail agents | - | нет |
| openemail me get [flags] | GET /keys/self | нет |
| openemail me ping [flags] | GET /ping | нет |
| openemail me rotate [flags] | POST /keys/self/rotate | keys:write |
| openemail keys list [flags] | GET /keys | keys:read |
| openemail keys get <id> [flags] | GET /keys/{id} | keys:read |
| openemail keys create --name <value> [flags] | POST /keys | keys:manage |
| openemail keys update <id> [flags] | PATCH /keys/{id} | keys:manage |
| openemail keys delete <id> [flags] | DELETE /keys/{id} | keys:manage |
| openemail keys rotate <id> [flags] | POST /keys/{id}/rotate | keys:manage |
| openemail keys revoke <id> [flags] | POST /keys/{id}/revoke | keys:manage |
| openemail keys list-requests <id> [flags] | GET /keys/{id}/requests | keys:read |
| openemail keys list-activity <id> [flags] | GET /keys/{id}/activity | keys:read |
| openemail keys list-workspace-requests [flags] | GET /keys/requests | keys:read |
| openemail keys list-workspace-activity [flags] | GET /keys/activity | keys:read |
| openemail addresses list [flags] | GET /addresses | emails:send |
| openemail languages list [flags] | GET /languages | нет |
| openemail emails send --from <value> --to <a,b> [flags] | POST /emails | emails:send |
| openemail emails send-batch <emails> [flags] | POST /emails/batch | emails:send |
| openemail emails translate --to <value> [flags] | POST /emails/translate | emails:send |
| openemail emails list [flags] | GET /emails | emails:read |
| openemail emails get <id> [flags] | GET /emails/{id} | emails:read |
| openemail emails list-events <id> [flags] | GET /emails/{id}/events | emails:read |
| openemail emails get-tracking <id> [flags] | GET /emails/{id}/tracking | emails:read |
| openemail emails cancel <id> [flags] | POST /emails/{id}/cancel | emails:send |
| openemail emails reschedule <id> <scheduled-at> [flags] | PATCH /emails/{id} | emails:send |
| openemail templates list [flags] | GET /templates | templates:read |
| openemail templates get <id-or-slug> [flags] | GET /templates/{id} | templates:read |
| openemail templates create --name <value> [flags] | POST /templates | templates:write |
| openemail templates update <id-or-slug> [flags] | PATCH /templates/{id} | templates:write |
| openemail templates duplicate <id-or-slug> [flags] | POST /templates/{id}/duplicate | templates:write |
| openemail templates replace-content <id-or-slug> [flags] | POST /templates/{id}/content | templates:write |
| openemail templates delete <id-or-slug> [flags] | DELETE /templates/{id} | templates:write |
| openemail templates list-versions <id-or-slug> [flags] | GET /templates/{id}/versions | templates:read |
| openemail templates get-version <id-or-slug> <version> [flags] | GET /templates/{id}/versions/{version} | templates:read |
| openemail templates publish <id-or-slug> [flags] | POST /templates/{id}/versions | templates:write |
| openemail templates restore-version <id-or-slug> <version> [flags] | POST /templates/{id}/versions/{version}/restore | templates:write |
| openemail templates delete-version <id-or-slug> <version> [flags] | DELETE /templates/{id}/versions/{version} | templates:write |
| openemail templates list-starters [flags] | GET /templates/starters | templates:read |
| openemail templates get-starter <slug> [flags] | GET /templates/starters/{slug} | templates:read |
| openemail templates list-fonts [flags] | GET /templates/fonts | templates:read |
| openemail templates render [flags] | POST /templates/render | templates:read |
| openemail templates preview <id-or-slug> [flags] | POST /templates/{id}/preview | templates:read |
| openemail templates get-analytics <id-or-slug> [flags] | GET /templates/{id}/analytics | templates:read |
| openemail templates list-sends <id-or-slug> [flags] | GET /templates/{id}/sends | templates:read |
| openemail templates send <id-or-slug> --from <value> --to <a,b> [flags] | POST /templates/{id}/send | templates:write + emails:send |
| openemail tracking list [flags] | GET /tracking | emails:read |
| openemail tracking get-stats [flags] | GET /tracking/stats | emails:read |
| openemail tracking get <id> [flags] | GET /tracking/{id} | emails:read |
| openemail tracking list-opens <id> [flags] | GET /tracking/{id}/opens | emails:read |
| openemail tracking list-clicks <id> [flags] | GET /tracking/{id}/clicks | emails:read |
| openemail threads list [flags] | GET /threads | threads:read |
| openemail threads get <id> [flags] | GET /threads/{id} | threads:read |
| openemail threads update <id> [flags] | PATCH /threads/{id} | threads:write |
| openemail threads trash <id> [flags] | POST /threads/{id}/trash | threads:write |
| openemail threads snooze <id> <wake-at> [flags] | POST /threads/{id}/snooze | threads:write |
| openemail threads unsnooze <id> [flags] | POST /threads/{id}/unsnooze | threads:write |
| openemail threads list-attachments <id> <message-id> [flags] | GET /threads/{id}/messages/{messageId}/attachments | threads:read |
| openemail drafts list [flags] | GET /drafts | drafts:read |
| openemail drafts get <id> [flags] | GET /drafts/{id} | drafts:read |
| openemail drafts create [flags] | POST /drafts | drafts:write |
| openemail drafts update <id> [flags] | PATCH /drafts/{id} | drafts:write |
| openemail drafts delete <id> [flags] | DELETE /drafts/{id} | drafts:write |
| openemail labels list [flags] | GET /labels | labels:read |
| openemail labels list-colors [flags] | GET /labels/colors | labels:read |
| openemail labels get <id> [flags] | GET /labels/{id} | labels:read |
| openemail labels create --name <value> [flags] | POST /labels | labels:write |
| openemail labels update <id> [flags] | PATCH /labels/{id} | labels:write |
| openemail labels delete <id> [flags] | DELETE /labels/{id} | labels:write |
| openemail contacts list [flags] | GET /contacts | contacts:read |
| openemail contacts get <email> [flags] | GET /contacts/{email} | contacts:read |
| openemail contacts create --email <value> [flags] | POST /contacts | contacts:write |
| openemail contacts update <email> [flags] | PATCH /contacts/{email} | contacts:write |
| openemail contacts delete <email> [flags] | DELETE /contacts/{email} | contacts:write |
| openemail contacts set-audiences <email> --audience-ids <a,b> [flags] | PUT /contacts/{email}/audiences | audiences:write |
| openemail contacts list-people [flags] | GET /contacts/people | contacts:read |
| openemail contacts save <email> [flags] | PUT /contacts/{email} | contacts:write |
| openemail contacts delete-many <emails...> [flags] | POST /contacts/batch-delete | contacts:write |
| openemail contacts set-photo <email> <data> [flags] | PUT /contacts/{email}/photo | contacts:write |
| openemail contacts remove-photo <email> [flags] | DELETE /contacts/{email}/photo | contacts:write |
| openemail contacts block <email> [flags] | POST /contacts/{email}/block | settings:write |
| openemail contacts unblock <email> [flags] | DELETE /contacts/{email}/block | settings:write |
| openemail contacts list-threads <email> [flags] | GET /contacts/{email}/threads | threads:read |
| openemail contacts activity <email> [flags] | GET /contacts/{email}/activity | threads:read |
| openemail audiences list [flags] | GET /audiences | audiences:read |
| openemail audiences growth [flags] | GET /audiences/growth | audiences:read |
| openemail audiences get <id> [flags] | GET /audiences/{id} | audiences:read |
| openemail audiences create --name <value> [flags] | POST /audiences | audiences:write |
| openemail audiences update <id> [flags] | PATCH /audiences/{id} | audiences:write |
| openemail audiences delete <id> [flags] | DELETE /audiences/{id} | audiences:write |
| openemail audiences empty <id> [flags] | POST /audiences/{id}/empty | audiences:write |
| openemail audiences list-contacts <id> [flags] | GET /audiences/{id}/contacts | audiences:read |
| openemail audiences add-contact <id> --email <value> [flags] | POST /audiences/{id}/contacts | audiences:write |
| openemail audiences remove-contact <id> <email> [flags] | DELETE /audiences/{id}/contacts/{email} | audiences:write |
| openemail audiences add-contacts <id> --emails <a,b> [flags] | POST /audiences/{id}/contacts/batch | audiences:write |
| openemail audiences remove-contacts <id> --emails <a,b> [flags] | POST /audiences/{id}/contacts/batch-remove | audiences:write |
| openemail audiences import-contacts <id> --contacts <json|@file|-> [flags] | POST /audiences/{id}/import | audiences:write + contacts:write |
| openemail broadcasts preview --audience-ids <a,b> [flags] | POST /broadcasts/preview | audiences:read |
| openemail broadcasts send --audience-ids <a,b> --from <value> [flags] | POST /broadcasts | emails:send + audiences:read |
| openemail broadcasts list [flags] | GET /broadcasts | emails:read |
| openemail broadcasts get <id> [flags] | GET /broadcasts/{id} | emails:read |
| openemail broadcasts stats <id> [flags] | GET /broadcasts/{id}/stats | emails:read |
| openemail broadcasts list-recipients <id> [flags] | GET /broadcasts/{id}/recipients | emails:read |
| openemail broadcasts get-recipient <id> <email-id> [flags] | GET /broadcasts/{id}/recipients/{emailId} | emails:read |
| openemail broadcasts cancel <id> [flags] | POST /broadcasts/{id}/cancel | emails:send |
| openemail domains list [flags] | GET /domains | domains:read |
| openemail domains get <id> [flags] | GET /domains/{id} | domains:read |
| openemail domains create --domain <value> [flags] | POST /domains | domains:write |
| openemail domains verify <id> [flags] | POST /domains/{id}/verify | domains:write |
| openemail domains update <id> [flags] | PATCH /domains/{id} | domains:write |
| openemail domains delete <id> [flags] | DELETE /domains/{id} | domains:write |
| openemail domains list-addresses <id> [flags] | GET /domains/{id}/addresses | domains:read |
| openemail domains create-address <id> --local-part <value> [flags] | POST /domains/{id}/addresses | domains:write |
| openemail domains get-address <id> <address-id> [flags] | GET /domains/{id}/addresses/{addressId} | domains:read |
| openemail domains update-address <id> <address-id> [flags] | PATCH /domains/{id}/addresses/{addressId} | domains:write |
| openemail domains delete-address <id> <address-id> [flags] | DELETE /domains/{id}/addresses/{addressId} | domains:write |
| openemail rules list [flags] | GET /rules | rules:read |
| openemail rules get <id> [flags] | GET /rules/{id} | rules:read |
| openemail rules create --name <value> --conditions <json|@file|-> --actions <json|@file|-> [flags] | POST /rules | rules:write |
| openemail rules update <id> [flags] | PATCH /rules/{id} | rules:write |
| openemail rules delete <id> [flags] | DELETE /rules/{id} | rules:write |
| openemail rules reorder <rule-ids...> [flags] | POST /rules/reorder | rules:write |
| openemail rules test <id> [flags] | POST /rules/{id}/test | rules:read |
| openemail rules list-runs [flags] | GET /rules/runs | rules:read |
| openemail webhooks list [flags] | GET /webhooks | webhooks:read |
| openemail webhooks get <id> [flags] | GET /webhooks/{id} | webhooks:read |
| openemail webhooks create --url <value> [flags] | POST /webhooks | webhooks:write |
| openemail webhooks update <id> [flags] | PATCH /webhooks/{id} | webhooks:write |
| openemail webhooks delete <id> [flags] | DELETE /webhooks/{id} | webhooks:write |
| openemail webhooks rotate-secret <id> [flags] | POST /webhooks/{id}/rotate-secret | webhooks:write |
| openemail webhooks test <id> [flags] | POST /webhooks/{id}/test | webhooks:write |
| openemail webhooks list-deliveries <id> [flags] | GET /webhooks/{id}/deliveries | webhooks:read |
| openemail webhooks get-delivery <id> <delivery-id> [flags] | GET /webhooks/{id}/deliveries/{deliveryId} | webhooks:read |
| openemail webhooks replay-delivery <id> <delivery-id> [flags] | POST /webhooks/{id}/deliveries/{deliveryId}/replay | webhooks:write |
| openemail webhooks list-workspace-deliveries [flags] | GET /webhooks/deliveries | webhooks:read |
| openemail webhooks list-activity <id> [flags] | GET /webhooks/{id}/activity | webhooks:read |
| openemail webhooks list-workspace-activity [flags] | GET /webhooks/activity | webhooks:read |
| openemail imports list [flags] | GET /imports | threads:read |
| openemail imports get <id> [flags] | GET /imports/{id} | threads:read |
| openemail imports create --address-id <value> --files <json|@file|-> [flags] | POST /imports | threads:write |
| openemail imports upload-state <id> [flags] | GET /imports/{id}/upload | threads:write |
| openemail imports upload-chunk <id> <file> <chunk> <data> [flags] | PUT /imports/{id}/files/{file}/chunks/{chunk} | threads:write |
| openemail imports start <id> [flags] | POST /imports/{id}/start | threads:write |
| openemail imports cancel <id> [flags] | POST /imports/{id}/cancel | threads:write |
| openemail imports list-failures <id> [flags] | GET /imports/{id}/failures | threads:read |
| openemail imports delete-upload <id> [flags] | DELETE /imports/{id}/upload | threads:write |
| openemail imports import-files --address-id <value> --files <path> [flags] | POST /imports | threads:write |
| openemail provider-imports inspect <api-key> [flags] | POST /provider-imports/inspect | settings:write |
| openemail provider-imports create --resend-key <value> --resources <a,b> [flags] | POST /provider-imports | settings:write |
| openemail provider-imports list [flags] | GET /provider-imports | settings:read |
| openemail provider-imports get <id> [flags] | GET /provider-imports/{id} | settings:read |
| openemail provider-imports cancel <id> [flags] | POST /provider-imports/{id}/cancel | settings:write |
| openemail calendar list-events --from <when> --to <when> [flags] | GET /calendar/events | calendar:read |
| openemail calendar get-event <id> [flags] | GET /calendar/events/{id} | calendar:read |
| openemail calendar get-event-ics <id> [flags] | GET /calendar/events/{id}/ics | calendar:read |
| openemail settings get [flags] | GET /settings | settings:read |
| openemail settings update [flags] | PATCH /settings | settings:write |
| openemail roles list [flags] | GET /roles | roles:read |
| openemail roles get <id> [flags] | GET /roles/{id} | roles:read |
| openemail roles create --name <value> --permissions <a,b> [flags] | POST /roles | roles:write |
| openemail roles update <id> [flags] | PATCH /roles/{id} | roles:write |
| openemail roles delete <id> [flags] | DELETE /roles/{id} | roles:write |
| openemail roles list-permissions [flags] | GET /roles/permissions | roles:read |
| openemail members list [flags] | GET /members | members:read |
| openemail members get <user-id> [flags] | GET /members/{userId} | members:read |
| openemail members add --email <value> --role-id <value> [flags] | POST /members | members:write |
| openemail members update <user-id> --role-id <value> [flags] | PATCH /members/{userId} | members:write |
| openemail members remove <user-id> [flags] | DELETE /members/{userId} | members:write |
| openemail members grant-address <user-id> --address-id <value> [flags] | POST /members/{userId}/addresses | members:write |
| openemail members revoke-address <user-id> <address-id> [flags] | DELETE /members/{userId}/addresses/{addressId} | members:write |
| openemail members list-invitations [flags] | GET /members/invitations | members:read |
| openemail members revoke-invitation <invitation-id> [flags] | DELETE /members/invitations/{invitationId} | members:write |
| openemail members resend-invitation <invitation-id> [flags] | POST /members/invitations/{invitationId}/resend | members:write |
| openemail suppressions list [flags] | GET /suppressions | settings:read |
| openemail suppressions get <id> [flags] | GET /suppressions/{id} | settings:read |
| openemail suppressions add --email <value> [flags] | POST /suppressions | settings:write |
| openemail suppressions remove <id> [flags] | DELETE /suppressions/{id} | settings:write |
| openemail files list [flags] | GET /files | files:read |
| openemail files get <id> [flags] | GET /files/{id} | files:read |
| openemail files stats [flags] | GET /files/stats | files:read |
| openemail files download <id> [flags] | GET /files/{id}/content | files:read |
| openemail files list-links <id> [flags] | GET /files/{id}/links | files:read |
| openemail files create-link <id> [flags] | POST /files/{id}/links | files:write |
| openemail files revoke-link <id> <link-id> [flags] | DELETE /files/{id}/links/{linkId} | files:write |
| openemail files upload <data> [flags] | POST /files | files:write |
| openemail files delete <id> [flags] | DELETE /files/{id} | files:write |
| openemail files delete-many <ids...> [flags] | POST /files/batch-delete | files:write |
| openemail temp-mail list-domains [flags] | GET /temp-mail/domains | нет |
| openemail temp-mail create [flags] | POST /temp-mail/inboxes | нет |
| openemail temp-mail get <inbox-id> [flags] | GET /temp-mail/inboxes/{id} | inbox token |
| openemail temp-mail extend <inbox-id> [flags] | POST /temp-mail/inboxes/{id}/extend | inbox token |
| openemail temp-mail delete <inbox-id> [flags] | DELETE /temp-mail/inboxes/{id} | inbox token |
| openemail temp-mail list-messages <inbox-id> [flags] | GET /temp-mail/inboxes/{id}/messages | inbox token |
| openemail temp-mail get-message <inbox-id> <message-id> [flags] | GET /temp-mail/inboxes/{id}/messages/{messageId} | inbox token |
| openemail temp-mail delete-message <inbox-id> <message-id> [flags] | DELETE /temp-mail/inboxes/{id}/messages/{messageId} | inbox token |
| openemail temp-mail list-attachments <inbox-id> <message-id> [flags] | GET /temp-mail/inboxes/{id}/messages/{messageId}/attachments | inbox token |
| openemail verify | - | нет |
| openemail logout | - | нет |
| openemail profile list | - | нет |
| openemail profile use <name> | - | нет |
| openemail profile remove <name> | - | нет |
| openemail profile current | - | нет |
| openemail open [page] [--print] | - | нет |
| openemail update | - | нет |
| openemail completion <bash|zsh|fish> | - | нет |
| openemail api <method> <path> [--data <json|@file|->] [--query <key=value>] [--header <key=value>] | - | нет |
Scope называет то, что нужно каждому запуску команды. С сохранённым входом CLI проверяет его до того, как команда что-либо сделает, и недостающий scope останавливает её с кодом выхода 4. api и mcp call scope не называют, потому что то, что им нужно, зависит от вызываемого эндпоинта или инструмента, и это проверяет сервер. Строки temp-mail, где написано "inbox token", отправляют токен oe_inbox_, который вернула temp-mail create и который CLI сохраняет, а --inbox-token передаёт токен, созданный не ею.
6 команд требуют входа через браузер, того вида, который сохраняет openemail login, когда вы выбираете браузер: ai compose, ai summarize, mcp tools, mcp call, mcp serve и verify. Команды ИИ и MCP работают на MCP-сервере, который не принимает API-ключей, а verify вводит коды подтверждения, которые спрашивают только у входа через браузер.
19 написанных вручную команд не требуют входа вовсе: login, temp new, temp list, temp read, temp watch, temp delete, mcp config, docs ask, docs open, docs read, agents, logout, profile list, profile use, profile remove, profile current, open, update и completion. Как и строки temp-mail. ai languages работает и со входом, и без него.
42 команды разрушительны, например удаляют, отзывают, ротируют, отменяют или очищают, поэтому сначала просят подтверждения и останавливаются с кодом выхода 2, когда ответить некому. --yes подтверждает за вас, а --dry-run выполняет чтения и выводит запрос, который что-то изменил бы, вместо того чтобы его отправить.
openemail --help опускает несколько команд, как и эта таблица. help это длинная форма --help, version выводит версии CLI, SDK и среды выполнения, а verify покрывает глаголы security.