2.4 KiB
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. 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.11.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):
# 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:
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:
# 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:
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.