> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sazabi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Cursor

> Add one OpenTelemetry Export destination in Cursor Team Settings to ship your team's Cursor agent telemetry — model requests with token counts, errors, skills, hooks, and Cloud Agent commits and pull requests — to Sazabi.

[All Cursor integration capabilities](https://docs.sazabi.com/catalogs/integrations/cursor.md)

## About

Ship your Cursor team's agent telemetry to Sazabi using Cursor's [OpenTelemetry Export](https://cursor.com/docs/enterprise/opentelemetry-export). Cursor runs the export on its own servers, so one team admin configures it once and it covers every member of the team across the Cursor IDE, the `cursor-agent` CLI, and Cloud Agents. Nothing is installed on developer machines.

Events arrive under service `cursor` with the event name as the log body, including `api_request` (one per model request, with `cursor.model.name` and input, output, and cache token counts), `api_error`, `skill_activated`, `hook_execution_complete`, and the Cloud Agent events. Every event carries `cursor.conversation.id` and `cursor.surface`, and `cursor.user.email` when Cursor knows the member.

Cloud Agent commit events (`cloud_agent_commit`) carry the commit SHA as `vcs.ref.head.revision` and the repository as `vcs.repository.url`, so you can tie agent work to the deploys that ship it.

> [!WARNING]
>
> Cursor's **Conversation content** family exports prompt, response, and tool call text. It is off by default. Leave it off unless your team has agreed to send that text to Sazabi.

## Prerequisites

* A Cursor **Enterprise** plan. OpenTelemetry Export is not available on other Cursor plans.
* A Cursor team admin to add the destination in Cursor Team Settings
* Your Sazabi intake URL, shown above — open the log source and copy the **Intake URL** from its setup screen (the public key is embedded in the URL)

## Set up in the dashboard

**Step 1**

### Create a destination in Cursor

As a Cursor team admin, open [Cursor Team Settings](https://cursor.com/dashboard/settings), go to **OpenTelemetry Export**, and click **Create destination**.

**Step 2**

### Enter the intake URL and auth header

* **Base URL**: your intake URL, exactly as shown above. Do not add `/v1`; Cursor appends `/v1/logs` and `/v1/metrics` itself.
* **Header**: `Authorization` with the value `Bearer sazabi_public_<key>`, where `<key>` is the first part of your intake URL's hostname, before the first dot.

**Step 3**

### Test and enable the destination

Click **Test connection**, then **Enable**. Cursor starts exporting within about a minute.

Turn off the destination's metrics signal. Sazabi stores Cursor's metric data points as plain log lines, not as metrics, and the `api_request` events already carry the token counts per request.

## Set up with the CLI

You can also register the Cursor log source with the [Sazabi CLI](https://docs.sazabi.com/reference/cli.md) (installed and authenticated — see [CLI reference](https://docs.sazabi.com/reference/cli/log-sources.md)).

Registering the source mints the same intake URL the dashboard shows above (the public key is embedded in its hostname):

```bash theme={"system"}
sazabi log-sources create cursor --mode manual
```

The command prints the intake URL for the new source — copy the whole URL and enter it in Cursor using the steps shown above. Run `sazabi log-sources get <log-source-id>` at any time to reprint the endpoint, or `sazabi log-sources list` to see every log source in the project.

## Verify

Run one agent request in the Cursor IDE, the CLI, or a Cloud Agent. Open the [Intake page](https://docs.sazabi.com/guides/instrument/intake.md) in the Sazabi dashboard and confirm events from the **Cursor** source appear within a few minutes.

Start a thread and search for `api_request` to find model requests with token counts, or for a `cursor.conversation.id` to follow one agent session.

## Troubleshooting

**Test connection fails** — Confirm the base URL is the intake URL with no path and no trailing `/v1`, and that the header value is `Bearer`, one space, then `sazabi_public_` followed by the first part of your intake URL's hostname.

**No events after enabling** — Cursor does not backfill. Only activity after you enabled the destination is exported, so run a new agent request and wait a minute.

**The same event appears twice** — Cursor delivers logs at least once. Events with the same `cursor.event.id` are one event.

**No commit events** — `cloud_agent_commit` covers Cloud Agents pushing to GitHub repositories only. Commits made in the IDE or CLI, merge commits, and commits on the default branch are not exported.

**Log lines with JSON metric bodies** — The destination's metrics signal is on. Sazabi stores each Cursor metric data point as a plain log line rather than as a metric. Turn the metrics signal off in Cursor; per-request token counts come from the `api_request` events.

## Further reading

> [card] [Intake](https://docs.sazabi.com/guides/instrument/intake.md)
>
> See per-source ingestion volume and health.

> [card] [Log sources](https://docs.sazabi.com/catalogs/log-sources.md)
>
> Browse the full log source catalog.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.