Telemetry

Instrumented mistral commands emit product analytics by default, including app commands and the top-level init, dev, and deploy commands. Each records one event when it starts and one when it finishes.

What is recorded

What is recorded

Every event records the command, such as apps.deploy, the CLI version, the app ID when the command runs inside an app, and a random ID for the run. The finishing event adds the duration, the outcome (success, error, or cancelled), and, on failure, an error type.

Events are sent with the credential the command uses, your API key or your sign-in, so Mistral links them to your account, organization, and workspace. The CLI never records your code, file contents or paths, environment variables, registry URLs, or credentials.

Capabilities and scaffolding

Capabilities and scaffolding

init, apps init, workflows init, and apps capability add, select, and remove also record the capabilities the app has afterwards, the ones added and removed, and, except for remove, the ones requested. Capabilities from the official Mistral registry are recorded as kind/id, for example backend/workflows. Other capabilities are only counted. When a command fails, these fields describe the attempted change. Declined confirmations and commands that change nothing record none.

init, apps init, and workflows init also record which of the three ran and how the capabilities were chosen:

PropertyValues
entrypointinit, apps_init, workflows_init
selectionworkflow or app (a preset or the answer to the question), custom (the Custom pickers), caps (--caps), defaults (the registry's defaults)
Local outbox and delivery

Local outbox and delivery

Events are kept in a bounded telemetry-outbox.json file in the CLI config directory and sent to https://api.mistral.ai/v1/datalake/events during the command and when it finishes, waiting at most 3 seconds at exit. A command without a credential leaves its events for a later command to send. The outbox keeps at most 100 events or 1 MiB and discards events after seven days. Credentials are never written to the outbox.

Telemetry failures do not change the command's outcome. Events that cannot be delivered remain in the outbox for a later command to retry, subject to its size and retention limits.

Opt out

Opt out

To opt out for one process or environment, set either supported environment variable to a non-empty value:

export MISTRAL_TELEMETRY_OPT_OUT=1
# Or use the standard convention:
export DO_NOT_TRACK=1

For a persistent opt-out, add telemetryOptOut to config.json:

{
  "telemetryOptOut": true
}

Opting out stops new telemetry and removes pending events the next time an instrumented command runs.

Disable automatic outbound requests

Disable automatic outbound requests

To disable all automatic outbound requests in addition to the requests required by the command itself, set:

export MISTRAL_DISABLE_FLAG_REFRESH=1
export MISTRAL_DISABLE_UPDATE_CHECK=1
export MISTRAL_TELEMETRY_OPT_OUT=1

MISTRAL_DISABLE_FLAG_REFRESH disables automatic feature-availability refreshes, MISTRAL_DISABLE_UPDATE_CHECK disables the GitHub release check, and MISTRAL_TELEMETRY_OPT_OUT (or DO_NOT_TRACK) disables product analytics.

Going further

Going further