# Telemetry in CUA This document explains how telemetry works in CUA libraries and how you can control it. CUA tracks anonymized usage and error report statistics; we ascribe to Posthog's approach as detailed [here](https://posthog.com/blog/open-source-telemetry-ethical). If you would like to opt out of sending anonymized info, you can set `telemetry_enabled` to false. ## What telemetry data we collect CUA libraries collect minimal anonymous usage data to help improve our software. The telemetry data we collect is specifically limited to: - Basic system information: - Operating system (e.g., 'darwin', 'win32', 'linux') - Python version (e.g., '3.10.0') - Module initialization events: - When a module (like 'computer' or 'agent') is imported - Version of the module being used We do NOT collect: - Personal information - Contents of files - Specific text being typed - Actual screenshots or screen contents - User-specific identifiers - API keys - File contents - Application data or content - User interactions with the computer - Information about files being accessed ## Controlling Telemetry We are committed to transparency and user control over telemetry. There are two ways to control telemetry: ## 1. Environment Variable (Global Control) Telemetry is enabled by default. To disable telemetry, set the `CUA_TELEMETRY_ENABLED` environment variable to a falsy value (`0`, `false`, `no`, or `off`): ```bash # Disable telemetry before running your script export CUA_TELEMETRY_ENABLED=false # Or as part of the command CUA_TELEMETRY_ENABLED=1 python your_script.py ``` Or from Python: ```python import os os.environ["CUA_TELEMETRY_ENABLED"] = "false" ``` ## 2. Instance-Level Control You can control telemetry for specific CUA instances by setting `telemetry_enabled` when creating them: ```python # Disable telemetry for a specific Computer instance computer = Computer(telemetry_enabled=False) # Enable telemetry for a specific Agent instance agent = ComputerAgent(telemetry_enabled=True) ``` You can check if telemetry is enabled for an instance: ```python print(computer.telemetry_enabled) # Will print True or False ``` Note that telemetry settings must be configured during initialization and cannot be changed after the object is created. ## Transparency We believe in being transparent about the data we collect. If you have any questions about our telemetry practices, please open an issue on our GitHub repository.