MXterm Pro

Telemetría

Última actualización: October 1, 2026

Resumen

Las compilaciones oficiales de MXterm Pro envían reportes de uso anónimos, y vienen activados por defecto. Nos dicen cuántas personas usan la app, qué versiones están en uso y qué fallos ocurren con más frecuencia, para saber qué corregir primero.

Los reportes nunca incluyen la salida de la terminal, comandos, contenido de archivos, rutas de archivos, hosts ni usuarios de SSH, ni claves de licencia. Puedes desactivar el reporte en Configuración → Privacidad, o con una variable de entorno, y las compilaciones que haces tú mismo no envían nada.

Desde la versión 1.1.12 también incluyen conteos y rangos de cómo se usan las funciones, nunca lo que escribiste o abriste. El bloque Conteos de uso más abajo lista cada campo.

Qué recopilamos

Desde MXterm Pro 1.1.11 hay tres reportes, y aquí se lista cada campo de cada uno. Desde la versión 1.1.12 se envía un cuarto bloque, los conteos de uso, junto con el registro diario, y se lista al final.

1. Ping de uso

Se envía a
Google Analytics (www.google-analytics.com)
Cuándo
Un evento app_open al iniciar, y nada más durante el resto de esa ejecución.
CampoQué contiene
client_idUn ID aleatorio que se crea en el primer inicio y se guarda en un archivo llamado telemetry-id
nombre del eventoapp_open
session_idLa hora en que se inició la app, en segundos
engagement_time_msecUn número fijo: 100
app_versionLa versión de MXterm Pro
osEl nombre del sistema operativo, por ejemplo macos

Google deduce un país aproximado a partir de la dirección IP desde la que llega la solicitud.

2. Registro diario

Se envía a
mxterm.net, nuestro propio servidor
Cuándo
Al iniciar la app, si han pasado 24 horas desde el último registro, o de inmediato si la ejecución anterior se cerró por un fallo. Una app que se deja abierta varios días vuelve a registrarse en su siguiente inicio.
CampoQué contiene
installIdUn ID aleatorio guardado en un archivo llamado telemetry-install-id. Guardamos un hash del ID, no el ID en sí
currentVersionLa versión de MXterm Pro
tierfree o pro
telemetryEnabledSiempre true, porque solo se envía cuando el reporte de uso está activado
osVersionLa versión de macOS, por ejemplo 15.5
archarm64 o x64
platformmac o windows
crashedLastRunSi la ejecución anterior terminó sin cerrarse de forma limpia
sessionsSinceLastCheckCuántas veces se abrió la app desde el último registro
paywallShownCuántas veces se mostró cada aviso para mejorar el plan, por nombre de aviso
paywallClickedCuántas veces se hizo clic en cada aviso para mejorar el plan, por nombre de aviso

Los nombres de aviso que se envían son locked_panes, locked_ssh_hosts, locked_war_room_members, locked_mxterm_hosts, locked_my_devices, locked_access_password, locked_email_share, locked_remote_devices, locked_shared_panes, settings_license_panel, titlebar_menu y command_palette.

3. Eventos de fallo

Se envía a
mxterm.net, nuestro propio servidor
Cuándo
Cuando ocurre uno de los fallos específicos que se listan abajo: ocho en MXterm Pro 1.1.11, y siete más desde la versión 1.1.12. Los eventos que no se pueden enviar se ponen en cola, hasta 50, y se reintentan más tarde.
CampoQué contiene
eventIdUn ID aleatorio para este evento
installIdHashUn hash del ID de instalación del registro diario
occurredAtCuándo ocurrió
eventTypeUno de los eventos de abajo
severitywarning, o critical si la app se cerró de forma inesperada o si se perdió la licencia después de activarla
detailEl detalle adicional que se lista abajo, y nada más
versión de la app, OS, archLa versión de MXterm Pro, el sistema operativo y el tipo de procesador

Los códigos de motivo se eligen en tu Mac comparando el error, y el texto del error nunca se envía. Para SSH, SFTP y el editor, el motivo es uno de auth_denied, password_expired, host_unreachable, timeout, permission_denied, not_found, disk_full, network o unknown. En los fallos de licencia es un código corto como bad_signature o expired, a veces el código que devolvió nuestro servidor de licencias, o seat: seguido de un código cuando falla una activación mediante tu cuenta de MXterm.

4. Conteos de uso (desde la versión 1.1.12)

Se envía a
mxterm.net, nuestro propio servidor
Cuándo
Una vez al día, en la misma solicitud que el registro diario, desde la versión 1.1.12. No se envía ningún conteo de uso mientras el reporte de uso está desactivado.
CampoQué contiene
schemaLa versión de esta lista de campos, actualmente 1
milestonesCada uno se envía una sola vez, como una marca sin fecha, y se registra solo mientras los reportes de uso están activados: onboarding (completado u omitido), firstPane, firstSplit, firstSshHost, firstSftpOpen, firstRemoteShare, firstLicenseActivation (se activó una licencia en esta Mac, con una clave o mediante tu cuenta de MXterm), firstShortcutCustomized (definiste un atajo de teclado personalizado), firstAgent (el nombre del agente de la lista fija, u other) y firstImport (ssh_config, moba, iterm2 o session_json)
daysSinceInstallDías desde la instalación, como rango: 0, 1, 2 a 6, 7 a 29, 30 a 89 o 90 en adelante
countersNúmeros enteros de 0 a 100000, contados desde el último registro que llegó a enviarse y luego reiniciados: panesOpened, splits, warRoomRooms, sshConnects, sftpTransfers, worktreePanes, paletteOpens, remoteHostStarted, chatViewOpens, meshPeerConnects y myDeviceLinks. Los paneles restaurados al abrir la app no se cuentan, sftpTransfers cuenta solo descargas, remoteHostStarted cuenta solo cuando pulsas Iniciar tú mismo, chatViewOpens cuenta cada vez que un panel cambia a la vista de chat, meshPeerConnects cada conexión exitosa con un peer de la función de red experimental, y myDeviceLinks cada dispositivo que vinculas en Mis dispositivos
agentLaunchesCuántas veces se inició cada agente, por nombre de la lista fija. Un nombre que no está en la lista se cuenta como other
importsBySourceCuántas importaciones vinieron de cada origen: ssh_config, moba, iterm2 y session_json
sftpBytesCuántos datos de SFTP se descargaron, como rango de tamaño: 0, menos de 1 MB, menos de 100 MB, menos de 1 GB o 1 GB en adelante. Solo descargas
pairedDevicesCuántos dispositivos están emparejados, como rango: 0, 1, 2 a 4 o 5 en adelante
languageEl idioma de la interfaz, que puede ser en, vi, zh, ja, ko, es, fr, tr, id, pt, de u other
themeEl tema, que es uno de los temas integrados iterm2-pro, vscode-dark, iterm-dark, tokyo-night, catppuccin, one-dark, monokai-pro, solarized-dark, mxterm-classic, mxterm-2, mxterm-light o warm-paper, u other
coldStartMsTiempo de arranque en frío, como rango en milisegundos: menos de 500, menos de 1000, menos de 2000, menos de 4000 o 4000 en adelante
firstPromptMsTiempo hasta el primer prompt, como rango en milisegundos: menos de 100, menos de 300, menos de 1000 o 1000 en adelante. Solo los shells locales
rssMbMemoria en uso, como rango en MB: 0 a 200, 200 a 500, 500 a 1000, 1000 a 2000 o 2000 en adelante. Solo se cuentan los procesos propios de MXterm
paneCountCuántos paneles había abiertos, como rango: 1, 2 a 4, 5 a 9 o 10 en adelante
hiddenTimerGapMsCuánto se retrasaron los temporizadores de la app mientras la ventana estaba oculta, como rango: menos de 1 segundo, menos de 5 segundos, menos de 30 segundos o 30 segundos en adelante
ptyBurstLa mayor tasa de salida de la terminal vista ese día, en fragmentos por segundo, como rango: menos de 100, menos de 1000, menos de 10000 o 10000 en adelante

Las listas son fijas. Los agentes son claude_code, codex, gemini_cli, cursor_agent, opencode, github_copilot, amp, antigravity, omp, grok y other. Un valor que no está en una lista se envía como other. Los demás valores de rendimiento son el rango medio de las muestras del día. El rendimiento se envía una vez al día. Los conteos de uso se conservan durante 400 días. Solo reportamos grupos de al menos 10 instalaciones.

Los eventos de fallo

EventoDetalle adicional que se envía
ssh_connect_failedUn código de motivo. Se envía cuando falla el listado de una carpeta remota por SFTP
sftp_transfer_failedSi fue una subida o una descarga, y un código de motivo
editor_read_failedUn código de motivo
editor_save_conflictNada
license_activation_failedUn código de motivo
license_lost_after_activationUn código de motivo: bad_signature, not_paid_tier, hwid_mismatch, expired, revoked, machine_inactive, refunded, invalid_license o no_seat
crash_recoveredDesde la versión 1.1.56: dos palabras de una lista cerrada: en qué punto estaba la app al detenerse (una de boot, restore, running, voice, quit, network u other) y cuánto tiempo llevaba en marcha, en un tramo de menos de 1 minuto a más de 1 día
ui_crashedEl número de error de React, u other
pty_spawn_failedDesde la versión 1.1.12: un motivo, uno de shell_missing, permission u other; desde la versión 1.1.56 también cwd_missing y resource_limit
agent_not_foundDesde la versión 1.1.12: qué agente, por nombre de la lista fija, u other
update_failedDesde la versión 1.1.12: la etapa, una de download, signature, install u other; desde la versión 1.1.56 también check (falló la propia comprobación de actualización), con una clase: network, manifest, http_4xx, http_5xx u other (una comprobación rechazada se clasifica ahora como manifest)
remote_attach_failedDesde la versión 1.1.12: un motivo, uno de auth, network, stale, revoked u other
worktree_failedDesde la versión 1.1.12: un motivo, uno de not_repo, exists, git_error u other
keychain_failedDesde la versión 1.1.12: la operación, una de read, write, denied u other
import_failedDesde la versión 1.1.12: el origen de la importación (ssh_config, moba, iterm2, session_json u other) y un motivo, uno de none_found, invalid, read_failed u other

Qué nunca enviamos

  • La salida que se muestra en la terminal o su historial de desplazamiento
  • Los comandos que ejecutas
  • Contenido o rutas de archivos
  • Nombres de host, usuarios, contraseñas o claves de SSH
  • Claves de licencia
  • Nada de tu portapapeles ni de tu pantalla

Los tres reportes se revisan justo antes de enviarse: si un reporte contiene una cadena que parece una ruta de carpeta personal, una clave SSH, una clave de licencia, una contraseña, un token o un secreto, se descarta el reporte completo en lugar de enviarlo.

Desde la versión 1.1.12, los conteos de uso nunca contienen rutas, nombres de host, comandos, nombres de archivos ni de repositorios, nombres de ramas, claves, prompts ni salida de la terminal. Si parece que contienen una ruta, una clave o un token, se descarta el reporte completo.

Desde MXterm Pro 1.0.22, el ping de uso a Google Analytics pasa por esa misma revisión. Se construye solo con los seis campos listados arriba, ninguno de los cuales puede llevar tus datos, y se descartaría en lugar de enviarse si alguno llegara a llevarlos.

Los fallos también se escriben en una lista que se guarda solo en tu Mac, con los 200 más recientes y nada con más de 14 días, tengas el reporte activado o no. Esa lista es un archivo aparte de la cola de envío y nunca se sube; existe para que un archivo de diagnóstico pueda describir qué salió mal.

MXterm Pro también guarda un segundo archivo local, war-room-delivery.jsonl, en la carpeta de datos de la app. Por cada mensaje de la Control Room (antes War Room) registra por qué el mensaje se retuvo, se liberó o se descartó antes de escribirse en un panel: la hora, el evento, el motivo, cuántos mensajes esperaban, cuánto esperaron y un código corto del panel (un hash, no el ID de la terminal, que se muestra como el nombre peer-… que usa la Control Room). No contiene nombres, rutas, texto de mensajes ni IDs de terminal. Guarda como máximo 500 líneas o 30 días, nunca se sube y no forma parte del archivo de diagnóstico.

Cómo desactivarla

Abre Configuración → Privacidad y desactiva Compartir datos de uso anónimos. El cambio surte efecto de inmediato en los tres reportes: el interruptor se vuelve a leer justo antes de cada envío, no al iniciar.

Desde la versión 1.1.12, el mismo interruptor también controla los conteos de uso, y al desactivarlo dejan de enviarse reportes de uso nuevos. La primera vez que ejecutas esa versión, un aviso de una línea te informa de ellos y de dónde desactivarlos.

También puedes desactivarla con una variable de entorno: DO_NOT_TRACK o MXTERM_TELEMETRY_DISABLED. Cualquier valor cuenta como desactivado, excepto 0, false o no, en cualquier combinación de mayúsculas y minúsculas. Ambas variables se leen antes de cada envío, y mientras una de ellas esté definida, el interruptor de Configuración queda deshabilitado y muestra el nombre de la variable que desactivó el reporte.

Volver a activarla surte efecto sin reiniciar la app. Los eventos de fallo retenidos desde antes y un registro diario pendiente se envían de inmediato, y el ping de uso se reanuda en unos quince segundos. Nada se pone en cola para enviarse mientras el reporte está desactivado, así que un fallo ocurrido en ese lapso nunca se envía.

Para empezar de cero con IDs aleatorios nuevos, cierra MXterm Pro y borra los archivos telemetry-id y telemetry-install-id de ~/Library/Application Support/com.mxterm.desktop/.

Las compilaciones que haces desde el código fuente no contienen nada de este reporte: las claves que necesita solo se añaden al compilar las versiones oficiales.

A dónde van los datos

El ping de uso va a Google Analytics y lo procesa Google, también en Estados Unidos.

El registro diario y los eventos de fallo van a mxterm.net, que corre en nuestro propio servidor en Francia, alojado en Contabo y servido a través de Cloudflare. Por cada instalación guardamos un registro con los campos anteriores y el país desde el que llegó la solicitud; no guardamos la dirección IP. Los eventos de fallo también se guardan con el país. Por ahora, estos registros no se eliminan automáticamente.

Desde la versión 1.1.12, los conteos de uso también van a mxterm.net, dentro del registro diario, y se conservan durante 400 días. Solo reportamos grupos de al menos 10 instalaciones.

El archivo de diagnóstico no va a ninguna parte por sí solo. Configuración → Privacidad → Archivo de diagnóstico para soporte → Guardar archivo… genera un archivo llamado mxterm-diagnostics-YYYY-MM-DD.json y te pregunta dónde guardarlo. Contiene la versión de la app, si es una compilación oficial, cuánto tiempo lleva esta ejecución, Free o Pro, el sistema operativo, su versión y el tipo de procesador, si el reporte está activado, el idioma de la interfaz, si la ejecución anterior se cerró por un fallo, conteos de hosts SSH guardados, pestañas abiertas y paneles abiertos, qué plantillas de agente están en uso, qué proveedores de Token Meter tienen una clave configurada y la lista local de fallos recientes. Tu carpeta personal se reduce a ~ antes de escribirse, todo el archivo pasa por la misma revisión que un reporte y se rechaza por completo si no la supera, y no se sube nada: tú lees el archivo y decides si se lo envías por correo a soporte.

Otras llamadas de red que hace la app

Estas no son reportes de uso, así que el interruptor de uso de arriba no las afecta. Las que puedes desactivar tienen su propio interruptor, que se nombra en cada entrada; la búsqueda de actualizaciones, la comprobación de los límites de Free y las comprobaciones de licencia no tienen interruptor.

Búsqueda de actualizaciones
Poco después de iniciar y cada cuatro horas, la app le pregunta a mxterm.net si existe una versión más nueva, y envía su versión actual, tu sistema operativo y el idioma de la interfaz. Esto ocurre en todas las compilaciones, incluidas las que haces tú mismo. Cuando el reporte de uso está desactivado, una comprobación aún puede dejar un registro anónimo en nuestro servidor: la versión de la app, el país, si había una actualización disponible y si la app es Free o Pro, sin dirección IP ni ID de instalación. Cada comprobación de actualización también se cuenta por versión de la app y país, sin ningún identificador, para saber cuántas copias están en ejecución.
Activación de licencia
Cuando ingresas una clave de licencia, la app envía la clave, una huella de la máquina hecha con parte de un hash del UUID de hardware de tu computadora, el nombre de host de tu computadora, la versión de la app y la plataforma. Si el reporte de uso está activado, al activar una licencia (con una clave o con tu cuenta MXterm) la app envía también su ID de instalación aleatorio (el mismo del registro diario), para que podamos asociar una licencia de pago con los datos de uso de esa instalación. Si está desactivado, no se envía ningún ID de instalación.
Revalidación de la licencia
Al iniciar (como máximo una vez por hora) y después una vez al día aproximadamente mientras estás en línea, la app envía la clave de licencia, la huella de la máquina y la versión de la app para preguntar si esta máquina sigue con licencia. Si activaste mediante tu cuenta de MXterm en lugar de una clave, envía la huella de la máquina, el nombre de la máquina, la plataforma y la versión de la app junto con la sesión de tu cuenta. Una comprobación que falla o que te encuentra sin conexión no cambia nada; solo una respuesta clara de que la licencia o el cupo ya no existe, dada dos veces seguidas, quita Pro de la app. El servidor guarda la última vez que se vio cada máquina y su versión de la app, no un historial de comprobaciones.
Límites de Free
Poco después de iniciar y cada cuatro horas, la app le pide a mxterm.net los límites actuales del plan Free. La solicitud no lleva ID de instalación ni datos sobre ti, solo lo que revela cualquier solicitud, como tu dirección IP. Esto ocurre en todas las compilaciones.
Cuenta de MXterm y Mis dispositivos
Solo cuando inicias sesión con una cuenta de MXterm. La app guarda un token de sesión en tu Keychain y, para Mis dispositivos, envía a mxterm.net un ID de dispositivo, el nombre de esta computadora y claves públicas, y pide tu lista de dispositivos más o menos cada cinco minutos. Más o menos una vez por minuto también envía una actualización de presencia, cifrada para tus otros dispositivos de modo que mxterm.net no pueda leerla: la dirección de red donde se puede alcanzar el servidor host de esta computadora. mxterm.net ve el ID del dispositivo, la hora y la dirección IP de la solicitud. Al cerrar sesión, estas solicitudes se detienen. Lo que guarda el servidor está en la política de privacidad.
Función de red experimental
Solo cuando activas la función de red experimental (macOS, testers invitados). El helper de la app se conecta a mesh.mxterm.net, que presenta tus dispositivos entre sí, y al relay sg.relay.mxterm.net. Ambos se ejecutan en AWS, en Singapur. El relay ve las claves públicas de los dispositivos y las direcciones IP de origen, no el contenido de la terminal, que va cifrado entre tus dispositivos. Los peers de la misma malla ven el nombre del dispositivo, el sistema operativo y las direcciones de los demás. Con la sesión iniciada, la app también le pide a mxterm.net una clave de inscripción de un solo uso. Los detalles están en la política de privacidad.
Límites del plan de Claude
Desactivado por defecto. Si activas Límites del plan en Configuración → Token Meter, la app lee la sesión guardada de Claude Code desde tu Keychain mediante la herramienta de seguridad de macOS (macOS normalmente no muestra un aviso para esto), y la usa para obtener tus límites de uso desde api.anthropic.com, como máximo una vez cada cinco minutos.
Límites en vivo de Codex
Desactivado por defecto. Si activas Límites en vivo de Codex en Configuración → Token Meter, la app lee la sesión de Codex desde ~/.codex/auth.json y la envía solo a chatgpt.com, para leer tus límites actuales de 5 horas y semanales, como máximo una vez cada cinco minutos. Nunca modifica ni renueva esa sesión, y no lee una sesión que Codex guarde en el keychain del sistema.
Saldos de proveedores de cuenta
Desactivado hasta que añadas una clave. En Configuración → Token Meter puedes pegar una clave de API de DeepSeek, Moonshot, Kimi, MiniMax, OpenRouter o Z.ai. Las claves se guardan en el Keychain de macOS, en elementos que crea el propio MXterm Pro bajo el nombre de servicio MXterm Pro, y cada clave se envía solo a su propio proveedor: api.deepseek.com, api.moonshot.ai o api.moonshot.cn, api.kimi.com, api.minimax.io o api.minimaxi.com, openrouter.ai, y api.z.ai u open.bigmodel.cn. La solicitud solo lee tu saldo o cuota y no lleva nada más que la clave: ni prompts, ni transcripciones, ni nombres de archivos. A cada proveedor se le consulta como máximo una vez cada cinco minutos, y no se consulta nada hasta que haya al menos un proveedor configurado. Solo para Kimi, si no hay una clave guardada y la CLI de Kimi Code tiene la sesión iniciada en esta Mac, la app lee el token de esa CLI y el ID de dispositivo guardado junto a él desde ~/.kimi-code y los envía a api.kimi.com de la misma forma; nunca escribe en ese directorio y nunca renueva el token.
Token Meter
Los conteos de tokens de Claude Code, Codex, Gemini CLI y omp, y los porcentajes del plan que el propio Codex escribe en sus archivos de sesión, se leen de archivos que esas herramientas guardan en tu Mac. No se envía nada.
Comentarios
Desde 1.1.57 en Mac (1.1.58 en Windows y Linux), Configuración → Comentarios envía a mxterm.net tu nombre, correo, mensaje, tipo, versión de la app, sistema e idioma cuando pulsas Enviar, y el archivo de diagnóstico solo si lo marcas (se conserva 90 días). Nuestro proveedor de correo lo procesa. Las versiones anteriores abren tu app de correo y no hacen ninguna solicitud a mxterm.net.
Acceso remoto
Desactivado hasta que lo uses. El servidor host no se ejecuta hasta que pulses Start Server en Configuración → Acceso remoto y dispositivos emparejados, a menos que actives Iniciar el servidor host cuando se abra MXterm, que está desactivado por defecto. Luego escucha en el puerto 6868 (o en el siguiente puerto libre hasta el 6877) en tu dirección de Tailscale si hay una, más tus direcciones de red privada si activaste Permitir dispositivos de mi red local, y si no solo en esta Mac. Nunca en una dirección pública. En una red privada el tráfico no está cifrado. Los dispositivos emparejados solo pueden acceder a los paneles que compartes. Un panel se comparte como solo lectura o con control, y un dispositivo solo puede escribir en un panel compartido con control. Un dispositivo nuevo se empareja con un código de seis caracteres o con una contraseña de acceso que tú activas; la contraseña en sí nunca se envía en las conexiones posteriores, y cuando se envía va a una dirección de Tailscale, al proxy local de un peer de esa red experimental o, si permites el acceso por red local, a una dirección de red local, donde no está cifrada. Mientras el servidor está en ejecución y hay un panel compartido, MXterm Pro evita que la computadora se suspenda por sí sola (compilado para macOS y Windows; la parte de Windows está sin verificar), a menos que lo desactives. Si añades un host en MXterm Hosts, la app se conecta a la dirección de ese host con un token guardado en el Keychain de macOS, y emparejar con la contraseña de ese host envía la contraseña a una dirección de Tailscale, al proxy local de un peer de esa red experimental o, si permites el acceso por red local, a una dirección de red local, donde no está cifrada. El contenido de la terminal nunca pasa por mxterm.net. Si usas Mis dispositivos, mxterm.net solo gestiona la lista de dispositivos y la presencia descritas en Cuenta de MXterm y Mis dispositivos.
Vídeo de la guía de Tailscale
Solo si pulsas Play en la guía de Tailscale en Configuración: el vídeo se carga entonces desde YouTube (youtube-nocookie.com). Si no pulsas Play, la app no hace ninguna conexión para él.
Tus propias conexiones
SSH, SFTP y todo lo que ejecutes en una terminal se conectan adonde tú les indiques. Las herramientas que ejecutas dentro de MXterm Pro, como Claude Code o Codex, hacen sus propias llamadas de red; esas llamadas son de esas herramientas, no de MXterm Pro.

La política de privacidad cubre el resto, incluido lo que mxterm.net registra cuando compras o descargas.

Pregunta a una IA sobre MXterm Pro

Abre una respuesta en vivo en ChatGPT, Claude o Perplexity, basada en esta página. La escribe el asistente, no nosotros, así que revisa las fuentes que cita.

Pregunta enviada¿Qué recuentos de uso registra MXterm Pro, qué nunca registra y adónde van esos datos?