Product usage data
Moonfold collects no product usage data by default and ships no analytics key.
You can opt in to sending anonymous product events to a PostHog project you control. Set all three variables in the server's environment before starting it:
MOONFOLD_TELEMETRY_ENABLED=true
MOONFOLD_POSTHOG_KEY=<your project key>
MOONFOLD_POSTHOG_HOST=https://<your posthog host>
Events are tied to a hashed installation identifier and include the provider, model, reasoning effort, permission mode, turn result, duration, and main-agent token totals when available. They never include prompts, responses, file contents, authentication tokens, conversation IDs, raw provider events, or child-agent output.
The desktop app reads these variables from your shell profile (for example ~/.zshrc) on macOS and
Linux, so export them there and restart the app. On Windows, set them as user environment variables.
Export diagnostics to your own receiver
To send traces, metrics, or logs to an OpenTelemetry receiver, open
Settings > General > Diagnostics, select an environment, and enter each signal's OTLP HTTP
endpoint under OpenTelemetry export (for example http://localhost:4318/v1/traces). Save, then
restart that environment's server. The receiver must be reachable from the server's machine.
Test sends an empty export from the server to check an endpoint before or after you save it;
saved endpoints are checked when the section opens. Checks send authentication headers only to
the signal's currently running endpoint and do not follow redirects. To check a new endpoint
that requires authentication, save it and restart the server first.
MOONFOLD_OTLP_*_URL and standard OTEL_EXPORTER_OTLP_* environment variables override the saved
settings. For endpoints saved here or set with MOONFOLD_OTLP_*_URL, set MOONFOLD_OTLP_HEADERS for
receivers that need authentication and MOONFOLD_OTLP_PROTOCOL=http/protobuf for receivers that do
not accept JSON. An endpoint set with OTEL_EXPORTER_OTLP_* takes its headers and protocol from
OTEL_EXPORTER_OTLP_HEADERS and OTEL_EXPORTER_OTLP_PROTOCOL instead.