> For the complete documentation index, see [llms.txt](https://docs.revenium.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.revenium.io/track-and-control-costs/analyze-ai-tooling-spend/setup-claude-cowork.md).

# Setup Claude Cowork

Claude Cowork telemetry is turned on **once, by an organization administrator**, under **Monitoring** in the Claude admin console's Data and privacy settings. There is no per-developer install: once an admin points Cowork at Revenium's OTLP endpoint and saves, each Cowork session that runs in the Claude desktop app exports its events to Revenium.

This differs from the per-user CLI onboarding used for Claude Code, Gemini CLI and Codex CLI, and from the organization-wide provider connections used for Cursor and GitHub Copilot.

**Requirements:**

* Claude for Work (Teams or Enterprise) with Cowork enabled
* Administrator role with access to the Organization / Cowork settings in the Claude admin console
* A Revenium metering key (`rev_mk_*`) from your Revenium account
* Outbound connectivity from each user's computer to `https://api.revenium.ai`. The exporter runs inside the Cowork session, which adds the collector's host to its network allowlist for you.

{% hint style="info" %}
**Claude Cowork evolves quickly.** Anthropic updates the admin console layout and monitoring fields frequently. If a screen does not match exactly, look for the **Monitoring** / **OTLP** / **observability** section under your organization's Cowork settings. The Revenium-specific values below — the endpoint URL, the `x-api-key` header, and the protocol — are the values to keep consistent.
{% endhint %}

**Steps:**

1. In the Claude for Work admin console, open **Organization → Co-work → Monitoring** (admin access required). Use either the **Claude desktop app** or **claude.ai** in a browser — the browser mirrors the desktop app's settings, so both reach the same screen.
2. Enable OTLP / telemetry export.
3. Set the OTLP endpoint, headers, and resource attributes to the Revenium values:

| Field                   | Value                                         |
| ----------------------- | --------------------------------------------- |
| **OTLP endpoint**       | `https://api.revenium.ai/meter/v2/otlp`       |
| **Header**              | `x-api-key=rev_mk_your_tenant_yourkey`        |
| **Protocol**            | `http/json`                                   |
| **Resource attributes** | `revenium.middleware.source=managed-settings` |

Use a Revenium **metering key** (`rev_mk_*`). Do **not** use an Anthropic/OpenAI provider key here — provider keys authenticate model calls, while the Revenium key authenticates telemetry ingest and identifies your Revenium tenant.

Set **Resource attributes** to `revenium.middleware.source=managed-settings` to identify this managed deployment in Revenium reporting.

4. Save the configuration.

Quit and relaunch the desktop app, or reload the browser tab, after saving the configuration. Usage should appear after a Cowork session. Your Revenium tenant is identified by the metering key.

#### Optional: Show Names of Plugin Skills

By default, Cowork hides the names of skills that come from plugins, whether from your company's own marketplace or a third-party one. The dashboard then groups them as "Plugin skills (names hidden)". Skills that people upload by hand already arrive with their names. To see plugin skill names, turn on tool details on each user's device by setting the managed key `otlpContentCapture` to the value `["toolDetails"]`.

Claude Desktop reads the key from a different place on each operating system. On macOS and Windows, write the value as a string, exactly as shown. The Linux JSON file takes a real array. See Anthropic's [Claude Desktop configuration reference](https://claude.com/docs/third-party/claude-desktop/configuration#how-keys-are-read) for the full details.

| Operating system | Where the key lives                                                                                                          |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| macOS            | `/Library/Managed Preferences/<user>/com.anthropic.claudefordesktop.plist`                                                   |
| Windows          | Registry value `otlpContentCapture` (type `REG_SZ`) under `HKLM\SOFTWARE\Policies\Claude` or `HKCU\SOFTWARE\Policies\Claude` |
| Linux            | `/etc/claude-desktop/managed-settings.json`                                                                                  |

**With device management:** push the key with your company's device-management tool (MDM).

**Without device management:** an administrator can set the key on each computer with the commands below.

**macOS**

```bash
sudo mkdir -p "/Library/Managed Preferences/$USER"
PLIST="/Library/Managed Preferences/$USER/com.anthropic.claudefordesktop.plist"
[ -f "$PLIST" ] && sudo cp "$PLIST" "$PLIST.bak"
[ -f "$PLIST" ] || sudo plutil -create xml1 "$PLIST"
sudo plutil -replace otlpContentCapture -string '["toolDetails"]' "$PLIST"
```

The commands back up an existing file, create a new one only when none exists, and set only this key, so other managed settings stay in place. This folder is normally written by device management. On a managed Mac, the management profile wins and may replace the file.

**Windows**

In Command Prompt:

```
reg add "HKCU\SOFTWARE\Policies\Claude" /v otlpContentCapture /t REG_SZ /d "[\"toolDetails\"]" /f
```

Or in PowerShell:

```powershell
if (-not (Test-Path -Path "HKCU:\SOFTWARE\Policies\Claude")) {
  New-Item -Path "HKCU:\SOFTWARE\Policies\Claude" -Force | Out-Null
}
Set-ItemProperty -Path "HKCU:\SOFTWARE\Policies\Claude" -Name otlpContentCapture -Value '["toolDetails"]' -Type String
```

To set it for every user on the computer, run the same command from an administrator prompt with `HKLM` in place of `HKCU` (`HKLM:` in PowerShell). Claude Desktop does not merge the two. When any policy exists under `HKLM\SOFTWARE\Policies\Claude`, it ignores `HKCU\SOFTWARE\Policies\Claude` entirely.

**Linux**

Create `/etc/claude-desktop/managed-settings.json` with this content:

```json
{
  "otlpContentCapture": ["toolDetails"]
}
```

The file and its folder must be owned by root and not writable by the group or by others. If they are not, Claude Desktop ignores the whole file.

**Then restart Claude.** Fully quit and reopen the Claude desktop app on each device. The key takes effect when Claude Desktop restarts.

See [Sent but not retained](/track-and-control-costs/analyze-ai-tooling-spend/ai-coding-data-reference.md#sent-but-not-retained) for what is sent and what Revenium keeps. Anthropic describes the setting in [Cowork monitoring](https://claude.com/docs/cowork/monitoring#content-capture).

#### Verifying Your Configuration

Ask a user to run a brief Cowork session. Usage should appear in Revenium under **Intelligence → AI Assistants** after the next telemetry flush.

If no usage appears, confirm your data is actually reaching Revenium with a one-line self-test from any terminal — substitute your metering key:

```bash
curl -sS -w "\n%{http_code}\n" \
  -X POST "https://api.revenium.ai/meter/v2/otlp/v1/logs" \
  -H "x-api-key: rev_mk_your_tenant_yourkey" \
  -H "Content-Type: application/json" \
  -d '{"resourceLogs":[]}'
```

Interpret the response:

* **`200`**, with a body that includes `"resourceType":"otlp-logs-processed"`: your endpoint and key are reaching Revenium. If usage still doesn't show, check that Cowork users have run a session since the configuration was saved.
* **`403`** with the body `{"message":"Forbidden"}`: Revenium refused the key. Check that it is the full metering key, that it is active, and that it belongs to your Revenium account.
* **No response, a connection failure, or any other error page**: something on your network stopped the request before it reached Revenium, such as a corporate proxy. [Contact Revenium support](https://www.revenium.io/contact) with your egress IP range so we can confirm connectivity.

{% hint style="info" %}
**Field reference**

* **OTLP endpoint**: `https://api.revenium.ai/meter/v2/otlp`
* **`x-api-key`** — your Revenium metering key (`rev_mk_*`). Note Cowork uses the `x-api-key` header, not an `Authorization: Bearer` header.
* **Protocol** — `http/json`.
* **Resource attributes**: `revenium.middleware.source=managed-settings`. This value tags telemetry as originating from a centrally-managed deployment, keeping deployment channels separable in Revenium reporting. This value is shared by all users of this installation; use departments for per-person attribution.
  {% endhint %}

#### Optional Internal Attribution

The resource attributes in this installation have one fixed value for all Cowork users. Keep `revenium.middleware.source=managed-settings`. To report spend by department, assign people through [Departments](/track-and-control-costs/attribute-spend-to-departments.md); their individual usage is then grouped by department.

#### Billing Classification

Claude Cowork uses the same team pricing mode as Claude Code. The [AI Assistant Pricing Mode](/track-and-control-costs/analyze-ai-tooling-spend/configure-coding-assistant-billing-models.md) team setting controls whether Cowork telemetry counts as real API spend in Revenium-wide reporting or stays scoped to AI Assistant analytics.

#### Related

* [AI Assistant Data Reference](/track-and-control-costs/analyze-ai-tooling-spend/ai-coding-data-reference.md) — the full Cowork data schema and OTLP transport details
* [Setup Claude Code](/track-and-control-costs/analyze-ai-tooling-spend/setup-claude-code.md) — the equivalent managed-settings flow for Claude Code

## On the dashboard

Open **Intelligence > AI Assistants > Claude Cowork** to review the **Overview** and **People** tabs. See [Claude Cowork Dashboard](/track-and-control-costs/analyze-ai-tooling-spend/setup-claude-cowork/claude-cowork.md) for spend, sessions, findings, and individual usage.

## Troubleshooting

If usage does not appear after a Cowork session, follow [Verifying Your Configuration](#verifying-your-configuration): check the endpoint and metering key with the self-test, then confirm users have run sessions since the configuration was saved. The [Claude Cowork Dashboard](/track-and-control-costs/analyze-ai-tooling-spend/setup-claude-cowork/claude-cowork.md) shows an empty state on Overview and People when there is no usage in the selected range.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.revenium.io/track-and-control-costs/analyze-ai-tooling-spend/setup-claude-cowork.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
