Overview
Mercur collects anonymous usage data from the CLI tools and from running Mercur servers. It tells the maintainers how many installations exist, which versions of Mercur, Medusa and Node they run, which first-party plugins they use, and whether new installations keep running. That is what decides which upgrade paths to keep working and which features to invest in. Collection is on by default and can be turned off in one line. Nothing that identifies a company, a person, a shop or a URL ever leaves your machine.Principles
- Random ids only. A running server is identified by a random UUID stored
in its own database. A developer machine is identified by a random UUID in
the CLI config file. No hardware ids, no hostnames, no IP geolocation
(
$geoip_disableis set on every event). - Counts are ranges. Entity counts are sent as one of
0,1-10,11-100,101-1k,1k-10k,10k-100k,100k+. Exact numbers never leave. - Only first-party names. Plugin, module and provider names are reported
only when they start with
@mercurjs/or@medusajs/. Anything else is counted (custom_plugin_count), never named. Block names are reported only for the official@mercurjsregistry. - Never in the way. Every request has a 2 s timeout and every failure is swallowed. Nothing is sent from CI, from test runs, or from Medusa worker processes.
- Auditable. Set
MERCUR_TELEMETRY_DEBUG=trueand every payload is printed instead of sent, so you can see exactly what would leave your machine.
How to opt out
Any one of these disables telemetry everywhere (CLI and server):medusa-config.ts:
Where data goes
Events are sent tohttps://telemetry.mercurjs.com, a service operated by the
Mercur team. The data is stored securely, used only in aggregate to guide
development, and never shared with third parties or used to identify an
installation or a person.
What the server sends
Events
Milestones:
first_production_boot, first_seller, first_seller_approved,
first_member_invited, first_offer, first_product_published,
first_order, first_payout_account, first_payout_paid,
first_commission_rule.
Properties
What the CLI sends
Applies to@mercurjs/cli and create-mercur-app.
Properties on every CLI event:
schema_version, source, cli_version,
mercur_version, medusa_version, node_version, runtime,
package_manager, os, arch, is_src_dir, is_ci, is_tty, is_agent
(whether an AI coding agent is driving the terminal), is_docker, is_wsl,
cloud_provider, project_id.
What is never collected
- Source code, file names, directory structure or configuration files
- Email addresses or any personal data (the optional email prompt was removed)
- URLs, hostnames, IP addresses or geolocation
- Names of custom plugins, modules, providers, routes or blocks from private registries
- Exact entity counts, order values, or anything tied to a seller, customer or order