Ir a la documentación
CLI

Todos los comandos

Los 241, uno por fila, con el endpoint al que llama cada comando de recurso.

Todos los comandos

Hay 241 comandos, cada uno en su propia fila, en el orden en que los lista openemail --help. 46 están escritos a mano para personas: piden lo que falta, dan formato a lo que muestran y combinan varias llamadas a la API cuando ayuda, así que su fila no nombra un único endpoint. Los otros 195 son los comandos de recursos, openemail <namespace> <verb> en 25 espacios de nombres, y cada uno llama al endpoint que nombra su fila.

Los comandos de recursos no se escriben uno a uno. La CLI lee el manifiesto de métodos del SDK, que describe cada método con sus parámetros, su endpoint y sus scopes, y convierte cada método en un verbo con el nombre del espacio de nombres y del método en kebab-case, así que domains.createAddress es openemail domains create-address. Un list y los listAll e iterate que lo recorren se convierten en un único verbo list con --all y --max, y por eso hay menos comandos que métodos del SDK.

La comprobación de paridad del paquete lo demuestra antes de cada versión. Para cada método del SDK construye la línea de comandos de tres formas, solo con los valores obligatorios, con ellos en un archivo --data y con todas las opciones definidas, ejecuta el comando contra un fetch que graba las solicitudes, y falla cuando un método no tiene comando o cuando un comando envía algo distinto del método, la ruta, la consulta, el cuerpo y la credencial que nombra el manifiesto. Después ejecuta las mismas líneas de comandos con el analizador y el despachador reales, y falla ante cualquier solicitud que difiera de la llamada directa.

Cada fila muestra la primera línea de uso de su comando. openemail <command> --help muestra el resto: cada argumento y opción con lo que acepta, y ejemplos, y para un comando de recurso sus scopes, su endpoint, lo que devuelve y las notas de la referencia de la API. Añade --json para obtener la misma página como un único documento JSON, y openemail --help --json muestra todos los comandos, argumentos y opciones de una vez. Cada comando acepta también las opciones globales, --json, --yes, --dry-run, --profile, --api-key, --base-url, --no-input, --no-color y --debug, así que ninguna fila las repite.

ComandoLlama aScope
openemail login-ninguno
openemail whoami-ninguno
openemail status-ninguno
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>]-ninguno
openemail temp list-ninguno
openemail temp read [inbox] [message-id] [flags]-ninguno
openemail temp watch [inbox] [--first]-ninguno
openemail temp delete [inbox] [--yes]-ninguno
openemail ai translate --to <language> [--text <text>|--html <html>|--body-file <path>] [--subject <subject>]-emails:send
openemail ai languages [--search <text>]-ninguno
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>]-ninguno
openemail mcp tools [tool]-ninguno
openemail mcp call <tool> [--args <json|@file|->] [--arg key=value ...]-ninguno
openemail mcp serve-ninguno
openemail docs ask "<question>"-ninguno
openemail docs open [slug] [--print]-ninguno
openemail docs read [slug]-ninguno
openemail agents-ninguno
openemail me get [flags]GET /keys/selfninguno
openemail me ping [flags]GET /pingninguno
openemail me rotate [flags]POST /keys/self/rotatekeys:write
openemail keys list [flags]GET /keyskeys:read
openemail keys get <id> [flags]GET /keys/{id}keys:read
openemail keys create --name <value> [flags]POST /keyskeys: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}/rotatekeys:manage
openemail keys revoke <id> [flags]POST /keys/{id}/revokekeys:manage
openemail keys list-requests <id> [flags]GET /keys/{id}/requestskeys:read
openemail keys list-activity <id> [flags]GET /keys/{id}/activitykeys:read
openemail keys list-workspace-requests [flags]GET /keys/requestskeys:read
openemail keys list-workspace-activity [flags]GET /keys/activitykeys:read
openemail addresses list [flags]GET /addressesemails:send
openemail languages list [flags]GET /languagesninguno
openemail emails send --from <value> --to <a,b> [flags]POST /emailsemails:send
openemail emails send-batch <emails> [flags]POST /emails/batchemails:send
openemail emails translate --to <value> [flags]POST /emails/translateemails:send
openemail emails list [flags]GET /emailsemails:read
openemail emails get <id> [flags]GET /emails/{id}emails:read
openemail emails list-events <id> [flags]GET /emails/{id}/eventsemails:read
openemail emails get-tracking <id> [flags]GET /emails/{id}/trackingemails:read
openemail emails cancel <id> [flags]POST /emails/{id}/cancelemails:send
openemail emails reschedule <id> <scheduled-at> [flags]PATCH /emails/{id}emails:send
openemail templates list [flags]GET /templatestemplates:read
openemail templates get <id-or-slug> [flags]GET /templates/{id}templates:read
openemail templates create --name <value> [flags]POST /templatestemplates:write
openemail templates update <id-or-slug> [flags]PATCH /templates/{id}templates:write
openemail templates duplicate <id-or-slug> [flags]POST /templates/{id}/duplicatetemplates:write
openemail templates replace-content <id-or-slug> [flags]POST /templates/{id}/contenttemplates:write
openemail templates delete <id-or-slug> [flags]DELETE /templates/{id}templates:write
openemail templates list-versions <id-or-slug> [flags]GET /templates/{id}/versionstemplates: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}/versionstemplates:write
openemail templates restore-version <id-or-slug> <version> [flags]POST /templates/{id}/versions/{version}/restoretemplates:write
openemail templates delete-version <id-or-slug> <version> [flags]DELETE /templates/{id}/versions/{version}templates:write
openemail templates list-starters [flags]GET /templates/starterstemplates:read
openemail templates get-starter <slug> [flags]GET /templates/starters/{slug}templates:read
openemail templates list-fonts [flags]GET /templates/fontstemplates:read
openemail templates render [flags]POST /templates/rendertemplates:read
openemail templates preview <id-or-slug> [flags]POST /templates/{id}/previewtemplates:read
openemail templates get-analytics <id-or-slug> [flags]GET /templates/{id}/analyticstemplates:read
openemail templates list-sends <id-or-slug> [flags]GET /templates/{id}/sendstemplates:read
openemail templates send <id-or-slug> --from <value> --to <a,b> [flags]POST /templates/{id}/sendtemplates:write + emails:send
openemail tracking list [flags]GET /trackingemails:read
openemail tracking get-stats [flags]GET /tracking/statsemails:read
openemail tracking get <id> [flags]GET /tracking/{id}emails:read
openemail tracking list-opens <id> [flags]GET /tracking/{id}/opensemails:read
openemail tracking list-clicks <id> [flags]GET /tracking/{id}/clicksemails:read
openemail threads list [flags]GET /threadsthreads: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}/trashthreads:write
openemail threads snooze <id> <wake-at> [flags]POST /threads/{id}/snoozethreads:write
openemail threads unsnooze <id> [flags]POST /threads/{id}/unsnoozethreads:write
openemail threads list-attachments <id> <message-id> [flags]GET /threads/{id}/messages/{messageId}/attachmentsthreads:read
openemail drafts list [flags]GET /draftsdrafts:read
openemail drafts get <id> [flags]GET /drafts/{id}drafts:read
openemail drafts create [flags]POST /draftsdrafts: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 /labelslabels:read
openemail labels list-colors [flags]GET /labels/colorslabels:read
openemail labels get <id> [flags]GET /labels/{id}labels:read
openemail labels create --name <value> [flags]POST /labelslabels: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 /contactscontacts:read
openemail contacts get <email> [flags]GET /contacts/{email}contacts:read
openemail contacts create --email <value> [flags]POST /contactscontacts: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}/audiencesaudiences:write
openemail contacts list-people [flags]GET /contacts/peoplecontacts:read
openemail contacts save <email> [flags]PUT /contacts/{email}contacts:write
openemail contacts delete-many <emails...> [flags]POST /contacts/batch-deletecontacts:write
openemail contacts set-photo <email> <data> [flags]PUT /contacts/{email}/photocontacts:write
openemail contacts remove-photo <email> [flags]DELETE /contacts/{email}/photocontacts:write
openemail contacts block <email> [flags]POST /contacts/{email}/blocksettings:write
openemail contacts unblock <email> [flags]DELETE /contacts/{email}/blocksettings:write
openemail contacts list-threads <email> [flags]GET /contacts/{email}/threadsthreads:read
openemail contacts activity <email> [flags]GET /contacts/{email}/activitythreads:read
openemail audiences list [flags]GET /audiencesaudiences:read
openemail audiences growth [flags]GET /audiences/growthaudiences:read
openemail audiences get <id> [flags]GET /audiences/{id}audiences:read
openemail audiences create --name <value> [flags]POST /audiencesaudiences: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}/emptyaudiences:write
openemail audiences list-contacts <id> [flags]GET /audiences/{id}/contactsaudiences:read
openemail audiences add-contact <id> --email <value> [flags]POST /audiences/{id}/contactsaudiences: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/batchaudiences:write
openemail audiences remove-contacts <id> --emails <a,b> [flags]POST /audiences/{id}/contacts/batch-removeaudiences:write
openemail audiences import-contacts <id> --contacts <json|@file|-> [flags]POST /audiences/{id}/importaudiences:write + contacts:write
openemail broadcasts preview --audience-ids <a,b> [flags]POST /broadcasts/previewaudiences:read
openemail broadcasts send --audience-ids <a,b> --from <value> [flags]POST /broadcastsemails:send + audiences:read
openemail broadcasts list [flags]GET /broadcastsemails:read
openemail broadcasts get <id> [flags]GET /broadcasts/{id}emails:read
openemail broadcasts stats <id> [flags]GET /broadcasts/{id}/statsemails:read
openemail broadcasts list-recipients <id> [flags]GET /broadcasts/{id}/recipientsemails:read
openemail broadcasts get-recipient <id> <email-id> [flags]GET /broadcasts/{id}/recipients/{emailId}emails:read
openemail broadcasts cancel <id> [flags]POST /broadcasts/{id}/cancelemails:send
openemail domains list [flags]GET /domainsdomains:read
openemail domains get <id> [flags]GET /domains/{id}domains:read
openemail domains create --domain <value> [flags]POST /domainsdomains:write
openemail domains verify <id> [flags]POST /domains/{id}/verifydomains: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}/addressesdomains:read
openemail domains create-address <id> --local-part <value> [flags]POST /domains/{id}/addressesdomains: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 /rulesrules:read
openemail rules get <id> [flags]GET /rules/{id}rules:read
openemail rules create --name <value> --conditions <json|@file|-> --actions <json|@file|-> [flags]POST /rulesrules: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/reorderrules:write
openemail rules test <id> [flags]POST /rules/{id}/testrules:read
openemail rules list-runs [flags]GET /rules/runsrules:read
openemail webhooks list [flags]GET /webhookswebhooks:read
openemail webhooks get <id> [flags]GET /webhooks/{id}webhooks:read
openemail webhooks create --url <value> [flags]POST /webhookswebhooks: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-secretwebhooks:write
openemail webhooks test <id> [flags]POST /webhooks/{id}/testwebhooks:write
openemail webhooks list-deliveries <id> [flags]GET /webhooks/{id}/deliverieswebhooks: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}/replaywebhooks:write
openemail webhooks list-workspace-deliveries [flags]GET /webhooks/deliverieswebhooks:read
openemail webhooks list-activity <id> [flags]GET /webhooks/{id}/activitywebhooks:read
openemail webhooks list-workspace-activity [flags]GET /webhooks/activitywebhooks:read
openemail imports list [flags]GET /importsthreads:read
openemail imports get <id> [flags]GET /imports/{id}threads:read
openemail imports create --address-id <value> --files <json|@file|-> [flags]POST /importsthreads:write
openemail imports upload-state <id> [flags]GET /imports/{id}/uploadthreads: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}/startthreads:write
openemail imports cancel <id> [flags]POST /imports/{id}/cancelthreads:write
openemail imports list-failures <id> [flags]GET /imports/{id}/failuresthreads:read
openemail imports delete-upload <id> [flags]DELETE /imports/{id}/uploadthreads:write
openemail imports import-files --address-id <value> --files <path> [flags]POST /importsthreads:write
openemail provider-imports inspect <api-key> [flags]POST /provider-imports/inspectsettings:write
openemail provider-imports create --resend-key <value> --resources <a,b> [flags]POST /provider-importssettings:write
openemail provider-imports list [flags]GET /provider-importssettings:read
openemail provider-imports get <id> [flags]GET /provider-imports/{id}settings:read
openemail provider-imports cancel <id> [flags]POST /provider-imports/{id}/cancelsettings:write
openemail calendar list-events --from <when> --to <when> [flags]GET /calendar/eventscalendar:read
openemail calendar get-event <id> [flags]GET /calendar/events/{id}calendar:read
openemail calendar get-event-ics <id> [flags]GET /calendar/events/{id}/icscalendar:read
openemail settings get [flags]GET /settingssettings:read
openemail settings update [flags]PATCH /settingssettings:write
openemail roles list [flags]GET /rolesroles:read
openemail roles get <id> [flags]GET /roles/{id}roles:read
openemail roles create --name <value> --permissions <a,b> [flags]POST /rolesroles: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/permissionsroles:read
openemail members list [flags]GET /membersmembers:read
openemail members get <user-id> [flags]GET /members/{userId}members:read
openemail members add --email <value> --role-id <value> [flags]POST /membersmembers: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}/addressesmembers:write
openemail members revoke-address <user-id> <address-id> [flags]DELETE /members/{userId}/addresses/{addressId}members:write
openemail members list-invitations [flags]GET /members/invitationsmembers: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}/resendmembers:write
openemail suppressions list [flags]GET /suppressionssettings:read
openemail suppressions get <id> [flags]GET /suppressions/{id}settings:read
openemail suppressions add --email <value> [flags]POST /suppressionssettings:write
openemail suppressions remove <id> [flags]DELETE /suppressions/{id}settings:write
openemail files list [flags]GET /filesfiles:read
openemail files get <id> [flags]GET /files/{id}files:read
openemail files stats [flags]GET /files/statsfiles:read
openemail files download <id> [flags]GET /files/{id}/contentfiles:read
openemail files list-links <id> [flags]GET /files/{id}/linksfiles:read
openemail files create-link <id> [flags]POST /files/{id}/linksfiles:write
openemail files revoke-link <id> <link-id> [flags]DELETE /files/{id}/links/{linkId}files:write
openemail files upload <data> [flags]POST /filesfiles:write
openemail files delete <id> [flags]DELETE /files/{id}files:write
openemail files delete-many <ids...> [flags]POST /files/batch-deletefiles:write
openemail temp-mail list-domains [flags]GET /temp-mail/domainsninguno
openemail temp-mail create [flags]POST /temp-mail/inboxesninguno
openemail temp-mail get <inbox-id> [flags]GET /temp-mail/inboxes/{id}token de bandeja
openemail temp-mail extend <inbox-id> [flags]POST /temp-mail/inboxes/{id}/extendtoken de bandeja
openemail temp-mail delete <inbox-id> [flags]DELETE /temp-mail/inboxes/{id}token de bandeja
openemail temp-mail list-messages <inbox-id> [flags]GET /temp-mail/inboxes/{id}/messagestoken de bandeja
openemail temp-mail get-message <inbox-id> <message-id> [flags]GET /temp-mail/inboxes/{id}/messages/{messageId}token de bandeja
openemail temp-mail delete-message <inbox-id> <message-id> [flags]DELETE /temp-mail/inboxes/{id}/messages/{messageId}token de bandeja
openemail temp-mail list-attachments <inbox-id> <message-id> [flags]GET /temp-mail/inboxes/{id}/messages/{messageId}/attachmentstoken de bandeja
openemail verify-ninguno
openemail logout-ninguno
openemail profile list-ninguno
openemail profile use <name>-ninguno
openemail profile remove <name>-ninguno
openemail profile current-ninguno
openemail open [page] [--print]-ninguno
openemail update-ninguno
openemail completion <bash|zsh|fish>-ninguno
openemail api <method> <path> [--data <json|@file|->] [--query <key=value>] [--header <key=value>]-ninguno

Scope indica lo que necesita cada ejecución del comando. Con un inicio de sesión guardado, la CLI lo comprueba antes de que el comando haga nada, y un scope que falta lo detiene con el código de salida 4. api y mcp call no indican ninguno, porque lo que necesitan depende del endpoint o de la herramienta a la que llames, y eso lo comprueba el servidor. Las filas de temp-mail que dicen "token de bandeja" envían el token oe_inbox_ que devolvió temp-mail create, que la CLI guarda, y --inbox-token pasa uno que no creó.

6 comandos necesitan un inicio de sesión con el navegador, el que guarda openemail login cuando eliges el navegador: ai compose, ai summarize, mcp tools, mcp call, mcp serve y verify. Los de IA y MCP se ejecutan en el servidor MCP, que no acepta claves de API, y verify introduce los códigos de verificación que solo se piden a un inicio de sesión con el navegador.

19 comandos escritos a mano no necesitan ningún inicio de sesión: 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 y completion. Tampoco las filas de temp-mail. ai languages funciona con o sin sesión iniciada.

42 comandos son destructivos, como eliminar, revocar, rotar, cancelar o vaciar, así que primero piden que confirmes y se detienen con el código de salida 2 cuando nadie puede responder. --yes confirma por ti, y --dry-run ejecuta las lecturas y muestra la solicitud que cambiaría algo en lugar de enviarla.

openemail --help omite algunos comandos, y esta tabla también. help es la forma larga de --help, version muestra las versiones de la CLI, del SDK y del entorno de ejecución, y verify cubre los verbos de security.

Tu bandeja de entrada,
en tus propios términos.

Infraestructura de correo para empresas, IA, agentes y correo personal. Creada para escalar, con privacidad y control. Todo lo que el correo debería haber tenido desde el primer día.

OpenEmail

Infraestructura de correo para empresas, IA, agentes y correo personal. Creada para escalar, con privacidad y control. Todo lo que el correo debería haber tenido desde el primer día.

© 2026 OpenEmail. Todos los derechos reservados.