← Files Mobile DevARCHIVED FILE

PRIVACY.md

13.7 KB · Nov 4, 2026 · 12:08 UTC

↓ Download file

# Mobile Dev Privacy Policy

Last updated: 23 October 2026

## 1. Who we are and what this policy covers

Mobile Dev is provided by **Callstack.io spółka z ograniczoną odpowiedzialnością**
("Callstack", "we", "us"), ul. Prosta 36, 53-508 Wrocław, Poland, registered in
the National Court Register maintained by the District Court for Wrocław-Fabryczna
in Wrocław, VI Commercial Division, KRS 0000606530, NIP 8992785616,
REGON 363921820. Contact us at [hello@callstack.com](mailto:hello@callstack.com)
or at that postal address.

This policy covers the Mobile Dev desktop plugin, its bundled local tools,
diagnostics, and support. Callstack is the controller of the personal data it
receives for diagnostics and support. Running a local tool does not by itself
give Callstack access to your project or device. You or your organization remain
responsible for deciding which app and device data to process and share.

The [Callstack website policy](https://www.callstack.com/documents/privacy-policy)
covers our corporate website. OpenAI and other host providers handle information
they receive under their own terms, privacy policies, and your account settings.

## 2. Information processed by Mobile Dev

### Local development workflows and results sent to the host

Depending on the tools you use, Mobile Dev processes:

- Device names, identifiers, operating-system details, installed/running app
  information, process identifiers, and app/project paths needed to select and
  operate your development environment.
- Screen streams, screenshots, accessibility and UI trees, React Native
  component/source details, annotations, and text or clipboard content that you
  choose to enter into a device.
- Native and Metro logs, including messages, timestamps, app/process metadata,
  and stack traces.
- App CPU, memory, thread, FPS, and frame-timing measurements and saved recordings.
- App storage keys, values, database rows, and file metadata when you inspect
  storage. Results are filtered before reaching the host or panel: recognized
  sensitive fields, credential-like values, and binary values are redacted. These
  rules cannot identify every secret or personal detail. Clear/reset operations
  can delete data in the selected app.
- CPU and React profiles, call trees, component names, source paths, analysis
  results, and investigation context when you use TraceSift. The integration
  sends profiles to a TraceSift service on your own computer and saves analysis
  references locally. Choosing a profile or a project folder in the TraceSift
  panel opens your operating system's own dialog; the path you pick is used to
  read that profile and to tell the chat which code a finding belongs to, and the
  project folder is saved locally until you choose another.
- Network requests passing through the local proxy when you enable network
  throttling. That proxy forwards traffic to the destinations requested by your
  app; it is not a Callstack-hosted traffic collection service.

The tools run on your computer and communicate with your selected devices and
development services. Data returned by MCP tools, rendered in the host, or
attached/sent to chat is made available to the host application. Consequently,
"local execution" does not mean everything stays on your computer: host/model
processing depends on the workflow and host configuration. Screenshots, logs,
storage values, and profiles may contain personal or confidential information.
Use test data, scope requests to the relevant app, and review content before
sharing it. Do not provide passwords, API keys, payment-card data, health records,
or government identifiers through these workflows.

Mobile Dev does not upload this development content to Callstack's Sentry projects
as telemetry. This exclusion does not prevent a tool result from reaching the
host or content you deliberately email to support from reaching Callstack.

### Diagnostics and usage telemetry

Telemetry is enabled by default. The plugin's JavaScript and native components
send error/crash reports, sampled operation traces, usage counters, and aggregate
plugin performance measurements to Sentry. These help us identify failures and
slow operations and understand which product features are used.

Reports can contain scrubbed error descriptions and stack locations, operation
names and outcomes, version/environment information, bounded platform/device-kind
classifications, timestamps, timings, and plugin resource measurements. Usage
counters include feature views, tool outcomes, and actions such as searches or
attachments, without their content. These are measurements of the plugin, not
uploads of your app's recorded CPU/memory/FPS samples.

Error and crash reports include a random installation ID, persistent across
updates and restarts, and a random process-session ID. They are not derived from
your name, email, OpenAI account, device ID, or machine name. Because the
installation ID links reports over time, we treat it as pseudonymous information,
not a guarantee of anonymity. These IDs are excluded from performance metrics
and span attributes.

The reporting code excludes MCP arguments/results, screenshots, screen video,
app log content, typed/pasted text, app storage contents, profile contents, and
device performance recordings. It scrubs common secrets, email addresses, URLs,
and local home paths from error text. Session Replay, minidumps, and profiling
are disabled in the configured Sentry integrations. Scrubbing is a safeguard,
not a reason to put secrets into your test data.

### Updates and support

Release builds check GitHub for plugin updates. GitHub receives the network
request, including the connecting IP address and ordinary request metadata.
The check does not upload your project or device content. Installation uses the
host's marketplace update mechanism when you request an update.

If you contact support, we receive your email address, your message, and any
attachments you send. GitHub issues also expose your GitHub identity and issue
contents to people who can access the repository. Do not post sensitive reports
or personal data in public issues.

## 3. Purposes and legal grounds

We use information to provide requested functionality and support, diagnose
errors, maintain security, improve reliability and usability, and meet legal
obligations. We do not use Mobile Dev telemetry for advertising or sell it.

Where GDPR applies, our grounds are performance of our agreement or steps you
request before it for service/support activities; legitimate interests in
maintaining and improving a reliable, secure developer tool for appropriately
limited diagnostics; and compliance with applicable legal obligations. Where
consent is required, that processing requires consent and it may be withdrawn.
Accepting the Terms is not consent to optional processing. See section 6 for
telemetry controls and the right to object.

## 4. Recipients and international processing

- **Sentry:** processes the diagnostic and usage data described above for
  Callstack. The configured ingestion endpoints are in Sentry's German region.
  This alone is not a promise that every support, subprocessor, or administrative
  operation takes place exclusively in Germany.
- **OpenAI or another host you use:** receives tool results and content supplied
  through that host. Its processing and retention are governed by your relationship
  with that provider, not the Sentry opt-out.
- **GitHub:** hosts the repository, documents, releases, and issue tracker and
  handles update/download requests under its own policies.
- **Callstack personnel and service providers:** those handling support or
  diagnostics receive the information needed for that work, including our email
  and collaboration service providers.
- **Authorities or professional advisers:** information may be disclosed where
  required by law or necessary to establish, exercise, or defend legal claims.

Where personal data is transferred outside the EEA, applicable transfer
requirements must be met, such as an adequacy decision or appropriate contractual
safeguards. Contact us for information about safeguards applicable to your data.
See also [Sentry's privacy policy](https://sentry.io/privacy/),
[GitHub's privacy statement](https://docs.github.com/en/site-policy/privacy-policies/github-general-privacy-statement),
and [OpenAI's privacy policy](https://openai.com/policies/privacy-policy/).

## 5. Retention

| Data | Retention and deletion |
| --- | --- |
| Sentry errors/crashes | 90 days under our Sentry Team plan. |
| Sentry performance spans and Application Metrics | 30 days under our Sentry Team plan. |
| Local live logs | Held in bounded memory buffers. A server log session expires after five minutes without reads or keep-alives; closing the session stops collection. Copies already attached to the host follow the host's retention. |
| Saved performance recordings | Stored under `~/Library/Application Support/mobile-dev/recordings` until you remove them; the recording store has no automatic age-based expiry. |
| TraceSift integration results/references and the chosen project folder | Stored under `~/.tracesift/integrations/mobile-dev` by default, or the corresponding `TRACE_SIFT_HOME` directory, until removed. Original profiles and the TraceSift service's own data are separate. |
| agent-device session state, logs and artifacts | Kept in a `mobile-dev-agent-device-` directory in the system temporary folder after a session, so they stay readable, until the operating system or you remove them. |
| agent-device's iOS test runner | Built from the plugin's included source and cached in `~/.agent-device/apple-runner` until you remove it. |
| Installation ID | Stored at `~/Library/Application Support/mobile-dev/telemetry/anonymous-user-id` until you remove it. Process-session IDs last for the process; copies in sent reports follow Sentry retention. |
| Native crash-report caches | Pending reports can persist between runs under `~/Library/Caches/mobile-dev/sentry` or `/data/local/tmp/mobile-dev-sentry` on Android and be sent on a subsequent start. They can be removed after stopping the relevant processes. |
| Temporary app-storage database copies | Created locally for inspection and removed by the operation's cleanup handler. An interrupted process may leave temporary files for OS/manual cleanup. |
| Support correspondence | Kept while handling the request and for any further period needed for a specific legal obligation or claim; information no longer needed for those purposes is deleted. |

Sentry's [data retention periods](https://docs.sentry.io/security-legal-pii/security/data-retention-periods/) apply to active telemetry data. Sentry separately [reports deleting production event-data backups](https://www.sentry.help/en/articles/13965019-how-frequently-is-data-backed-up) 30 or 90 days after backup creation, depending on the data type; that guidance does not specify an Application Metrics-specific backup period. Active-data expiry does not imply immediate removal from backups.

Uninstalling the plugin does not necessarily remove saved recordings, identifiers,
crash caches, TraceSift files, host messages, or backups. GitHub, the host, your
operating system, and your own backup tools manage their copies separately.

## 6. Your choices and rights

- **Disable telemetry:** set `MOBILE_DEV_TELEMETRY=off` in the environment used to
  launch Mobile Dev's MCP server, then restart all running plugin processes.
  The setting disables new reporting across the integrated JavaScript/native
  components and prevents creation of a new installation ID. It does not delete
  reports already sent or disable GitHub update checks or host processing.
- **Reset the installation ID:** stop Mobile Dev processes and remove only the
  `anonymous-user-id` file listed above. A new ID is generated on the next start
  if telemetry remains enabled. This does not delete reports associated with the
  old ID; contact us before resetting it if you need help locating those reports.
- **Remove saved data:** stop the relevant tools and remove the specific local
  recordings, integration files, or caches you no longer need. Removing app
  storage is a separate, potentially destructive action against the selected app.
- **Limit access:** close sessions, disconnect devices, revoke debugging
  permissions, or disable/uninstall the plugin. Manage chat history and
  attachments through the host's own controls.

Subject to applicable law, you may request access, correction, erasure,
restriction, or portability of your personal data, object to processing based on
legitimate interests, and withdraw consent where processing relies on consent.
Email [hello@callstack.com](mailto:hello@callstack.com) with "Mobile Dev privacy"
in the subject. We may need proportionate information to verify your request or
locate pseudonymous reports. Do not send passwords or access tokens.

You may complain to your competent data protection authority, including the
President of the Polish Personal Data Protection Office (UODO). Exercising these
rights does not affect rights you have under other applicable laws.

## 7. Changes

We will publish revisions here with an updated date and identify material changes
in the release notes. Changes to this policy do not by themselves authorize new
processing that requires consent.

## Attribution and document license

Adapted from [Automattic's Privacy Policy](https://github.com/Automattic/legalmattic/blob/master/Privacy-Policy.md),
copyright Automattic, under [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/).
Callstack replaced the hosted-service provisions with Mobile Dev's local-tool,
host-sharing, telemetry, retention, and support practices. This policy text is
also licensed under CC BY-SA 4.0. That license applies to this document, not to
the plugin software or Callstack trademarks. Automattic does not endorse Mobile Dev.

SHA-256: 9d0be5dbcfbbf982fd5eb63ce567674835ed643d82ac3d7e364e7b7c7f3a3773