LogoCua

Telemetry

How telemetry works in Cua and how to control it

Telemetry

Cua collects anonymized usage and error statistics. We follow Posthog's ethical telemetry approach. To opt out, set telemetry_enabled to false.

What we collect

Enabled by default (opt-out)

  • System info: OS, OS version, Python version
  • Module initialization: When modules are imported and their versions
  • Performance: Agent run durations, step counts, token usage, API costs
  • Session tracking: Anonymous session IDs and run IDs

Disabled by default (opt-in)

Trajectory logging captures full conversation history:

  • User messages and agent responses
  • Computer actions and outputs
  • Agent reasoning traces

Must be explicitly enabled.

We don't collect

  • Personal information or user identifiers
  • API keys or credentials
  • File contents or application data
  • Files being accessed
  • Screenshots or screen contents (unless trajectory logging is enabled)
  • Text being typed, user inputs, model outputs, computer outputs, or tool call outputs (unless trajectory logging is enabled)

How to disable

Environment variable (global)

Set CUA_TELEMETRY_ENABLED to a falsy value (0, false, no, or off):

export CUA_TELEMETRY_ENABLED=false

Or in Python:

import os
os.environ["CUA_TELEMETRY_ENABLED"] = "false"

Per instance

Computer SDK:

from computer import Computer

computer = Computer(telemetry_enabled=False)

Agent SDK:

from agent import ComputerAgent
import os

# Basic telemetry - performance metrics only (opt-out, enabled by default)
agent = ComputerAgent(
    model="claude-sonnet-4-5-20250929",
    telemetry_enabled=True  # Default is True
)

# Enable telemetry with full conversation trajectory logging (opt-in)
agent = ComputerAgent(
    model="claude-sonnet-4-5-20250929",
    telemetry_enabled={
        "log_trajectory": True  # Logs full conversation items
    }
)

# Disable completely
agent = ComputerAgent(
    model="claude-sonnet-4-5-20250929",
    telemetry_enabled=False
)

# Enable trajectory logging (opt-in)
agent = ComputerAgent(
    model="claude-sonnet-4-5-20250929",
    telemetry_enabled={"log_trajectory": True}
)

Check status:

print(computer.telemetry_enabled)  # True or False
print(agent.telemetry_enabled)     # True, False, or dict

Telemetry settings are configured at initialization and can't be changed afterward.

Events collected

Computer SDK

Event NameData CollectedTrigger Notes
computer_initializedos: Operating system (e.g., 'windows', 'darwin', 'linux')
os_version: OS version
python_version: Python version
Triggered when a Computer instance is created
module_initmodule: "computer"
version: Package version
python_version: Full Python version string
Triggered once when the computer package is imported for the first time

Agent SDK

Event NameData CollectedTrigger Notes
module_initmodule: "agent"
version: Package version
python_version: Full Python version string
Triggered once when the agent package is imported for the first time
agent_session_startsession_id: Unique UUID for this agent instance
agent_type: Class name (e.g., "ComputerAgent")
model: Model name (e.g., "claude-3-5-sonnet")
os: Operating system
os_version: OS version
python_version: Python version
Triggered when TelemetryCallback is initialized (agent instantiation)
agent_run_startsession_id: Agent session UUID
run_id: Unique UUID for this run
start_time: Unix timestamp
input_context_size: Character count of input messages
num_existing_messages: Count of existing messages
uploaded_trajectory: Full conversation items (opt-in)
Triggered at the start of each agent.run() call
agent_run_endsession_id: Agent session UUID
run_id: Run UUID
end_time: Unix timestamp
duration_seconds: Total run duration
num_steps: Total steps taken in this run
total_usage: Accumulated token usage and costs
uploaded_trajectory: Full conversation items (opt-in)
Triggered at the end of each agent.run() call
agent_stepsession_id: Agent session UUID
run_id: Run UUID
step: Step number (incremental)
timestamp: Unix timestamp
duration_seconds: Duration of previous step
Triggered on each agent response/step during a run
agent_usagesession_id: Agent session UUID
run_id: Run UUID
step: Current step number
prompt_tokens: Tokens in prompt
completion_tokens: Tokens in response
total_tokens: Total tokens used
response_cost: Cost of this API call
Triggered whenever usage information is received from LLM API

Questions

Questions about telemetry? Open an issue on our GitHub repository.

Was this page helpful?