Skip to main content
Track Cowork usage and activity across your organization by exporting events through OpenTelemetry (OTel). Cowork exports events via the OTel logs/events protocol, giving you visibility into user prompts, API requests, tool usage, and errors.
Monitoring is available for Team and Enterprise plans. OTel monitoring requires Claude desktop app version 1.1.4173 or later.

Setup

Configure monitoring from the Cowork admin settings:
  1. Navigate to Admin settings > Cowork
  2. Configure the following fields:
    FieldDescriptionExample
    OTLP endpointYour OpenTelemetry collector URLhttp://collector.example.com:4318
    OTLP protocolTransport protocolgrpc, http/json, or http/protobuf
    OTLP headersAuthentication headers for your collectorAuthorization=Bearer your-token
  3. Save your settings
Events begin flowing to your collector immediately once configured.

Events

Cowork exports the following events to your OTel collector. User prompt content and tool details are always included in events.

Event correlation

When a user submits a prompt, Cowork may make multiple API calls and run several tools. The prompt.id attribute links all events back to the single prompt that triggered them.
AttributeDescription
prompt.idUUID v4 identifier linking all events produced while processing a single user prompt
To trace all activity triggered by a single prompt, filter your events by a specific prompt.id value.

Standard attributes

All events include these attributes:
AttributeDescription
session.idUnique session identifier
organization.idOrganization UUID
user.account_uuidUser’s account UUID
user.idAnonymous device/installation identifier
user.emailUser email
terminal.typeTerminal type (non-interactive for Cowork)

User prompt event

Logged when a user submits a prompt. Event name: user_prompt Attributes: All standard attributes, plus:
AttributeDescription
event.timestampISO 8601 timestamp
event.sequenceMonotonically increasing counter for ordering events within a session
prompt_lengthLength of the prompt
promptPrompt content

Tool result event

Logged when a tool completes execution. Event name: tool_result Attributes: All standard attributes, plus:
AttributeDescription
event.timestampISO 8601 timestamp
event.sequenceMonotonically increasing counter for ordering events within a session
tool_nameName of the tool
success"true" or "false"
duration_msExecution time in milliseconds
errorError message (if failed)
decision_typeEither "accept" or "reject"
decision_sourceHow the decision was made (e.g., "config", "user_permanent", "user_temporary")
tool_result_size_bytesSize of the tool result in bytes
mcp_server_scopeMCP server scope identifier (for MCP tools)
tool_parametersJSON string containing tool-specific parameters, including mcp_server_name and mcp_tool_name for MCP tools

API request event

Logged for each API request to Claude. Event name: api_request Attributes: All standard attributes, plus:
AttributeDescription
event.timestampISO 8601 timestamp
event.sequenceMonotonically increasing counter for ordering events within a session
modelModel used (e.g., claude-sonnet-4-6)
cost_usdEstimated cost in USD
duration_msRequest duration in milliseconds
input_tokensNumber of input tokens
output_tokensNumber of output tokens
cache_read_tokensNumber of tokens read from cache
cache_creation_tokensNumber of tokens used for cache creation
speed"fast" or "normal"

API error event

Logged when an API request to Claude fails. Event name: api_error Attributes: All standard attributes, plus:
AttributeDescription
event.timestampISO 8601 timestamp
event.sequenceMonotonically increasing counter for ordering events within a session
modelModel used
errorError message
status_codeHTTP status code as a string, or "undefined" for non-HTTP errors
duration_msRequest duration in milliseconds
attemptAttempt number (for retried requests)
speed"fast" or "normal"

Tool decision event

Logged when a tool permission decision is made. Event name: tool_decision Attributes: All standard attributes, plus:
AttributeDescription
event.timestampISO 8601 timestamp
event.sequenceMonotonically increasing counter for ordering events within a session
tool_nameName of the tool
decisionEither "accept" or "reject"
sourceDecision source (e.g., "config", "user_permanent", "user_temporary")

Event analysis

The exported events support a range of analyses: Tool usage patterns — Analyze tool result events to identify most frequently used tools, success rates, average execution times, and error patterns. Cost monitoring — Track cost_usd from API request events to understand usage trends across users and teams. Group by user.account_uuid or organization.id for per-user or per-team breakdowns. Performance monitoring — Track API request durations and tool execution times to identify performance bottlenecks.
Cost values from events are approximations. For official billing data, refer to your billing dashboard.

Backend considerations

Your choice of logs backend determines the types of analyses you can perform:
  • Log aggregation systems (e.g., Elasticsearch, Loki): Full-text search and log analysis
  • Columnar stores (e.g., ClickHouse): Structured event analysis and complex queries
  • Observability platforms (e.g., Honeycomb, Datadog): Advanced querying, visualization, and alerting

Service information

All events are exported with the following resource attributes:
AttributeDescription
service.namecowork
service.versionClaude app version
host.archHost architecture (e.g., arm64)
os.typeOperating system type (e.g., darwin)
os.versionOperating system version string

Security and privacy

  • OTLP headers are encrypted at rest on Anthropic servers
  • Events are only exported when an admin configures the OTLP endpoint
  • User prompt content is included in events — configure your telemetry backend to filter or redact if needed
  • Tool execution events may include file paths and command details in the tool_parameters field, which may contain sensitive values
  • user.email is included in event attributes — work with your telemetry backend to filter or redact if this is a concern