
@@ -219,8 +232,7 @@ For examples, see [Computer UI Examples](https://github.com/trycua/cua/tree/main
+ width="600">
Record yourself performing various computer tasks using the UI.
@@ -232,8 +244,7 @@ Record yourself performing various computer tasks using the UI.
+ width="600">
Save each task by picking a descriptive name and adding relevant tags (e.g., "office", "web-browsing", "coding").
@@ -249,8 +260,7 @@ Repeat steps 3 and 4 until you have a good amount of demonstrations covering dif
+ width="600">
Upload your dataset to Huggingface by:
diff --git a/docs/content/docs/home/meta.json b/docs/content/docs/home/meta.json
index ba0260a0a..2c71daa7b 100644
--- a/docs/content/docs/home/meta.json
+++ b/docs/content/docs/home/meta.json
@@ -4,9 +4,13 @@
"root": true,
"defaultOpen": true,
"pages": [
- "---[House]c/ua---",
+ "index",
+ "compatibility",
+ "faq",
+ "telemetry",
+ "---[BookCopy]Guides---",
"...cua",
"---[Library]Libraries---",
"...libraries"
]
-}
+}
\ No newline at end of file
diff --git a/docs/content/docs/home/telemetry.mdx b/docs/content/docs/home/telemetry.mdx
new file mode 100644
index 000000000..b74289c1c
--- /dev/null
+++ b/docs/content/docs/home/telemetry.mdx
@@ -0,0 +1,81 @@
+---
+title: Telemetry
+description: This document explains how telemetry works in CUA libraries and how you can control it.
+icon: RadioTower
+---
+
+# Telemetry in CUA
+
+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.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`):
+
+```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.
diff --git a/docs/package.json b/docs/package.json
index 01bba20e3..765b79f33 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -12,7 +12,7 @@
"fumadocs-core": "15.5.1",
"fumadocs-mdx": "11.6.7",
"fumadocs-ui": "15.5.1",
- "lucide-react": "^0.514.0",
+ "lucide-react": "^0.525.0",
"next": "15.3.3",
"react": "^19.1.0",
"react-dom": "^19.1.0"
diff --git a/docs/pnpm-lock.yaml b/docs/pnpm-lock.yaml
index c3caa0a80..1da75851b 100644
--- a/docs/pnpm-lock.yaml
+++ b/docs/pnpm-lock.yaml
@@ -18,8 +18,8 @@ importers:
specifier: 15.5.1
version: 15.5.1(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(next@15.3.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(tailwindcss@4.1.10)
lucide-react:
- specifier: ^0.514.0
- version: 0.514.0(react@19.1.0)
+ specifier: ^0.525.0
+ version: 0.525.0(react@19.1.0)
next:
specifier: 15.3.3
version: 15.3.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
@@ -1391,8 +1391,8 @@ packages:
resolution: {integrity: sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==}
engines: {node: 20 || >=22}
- lucide-react@0.514.0:
- resolution: {integrity: sha512-HXD0OAMd+JM2xCjlwG1EGW9Nuab64dhjO3+MvdyD+pSUeOTBaVAPhQblKIYmmX4RyBYbdzW0VWnJpjJmxWGr6w==}
+ lucide-react@0.525.0:
+ resolution: {integrity: sha512-Tm1txJ2OkymCGkvwoHt33Y2JpN5xucVq1slHcgE6Lk0WjDfjgKWor5CdVER8U6DvcfMwh4M8XxmpTiyzfmfDYQ==}
peerDependencies:
react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
@@ -3160,7 +3160,7 @@ snapshots:
lru-cache@11.1.0: {}
- lucide-react@0.514.0(react@19.1.0):
+ lucide-react@0.525.0(react@19.1.0):
dependencies:
react: 19.1.0