# Getting Started with Mojule

Mojule gives engineering leaders real-time adoption intelligence across Claude Code and Claude Cowork. It consumes Anthropic's built-in OpenTelemetry — Mojule installs nothing on your machines. This guide gets you from zero to dashboard in minutes.

## Prerequisites

- An Anthropic Team or Enterprise organization (the OTEL admin config channels are plan-gated to Team and above)
- Organization Admin access to the Anthropic console for Claude Code and Claude Cowork
- An admin or owner role in your Mojule organization

## Step 1: Create your account

1. Visit [app.mojule.cloud](https://app.mojule.cloud)
2. Sign in with your work email (SSO supported for enterprise plans)
3. Name your organization when prompted — this is the workspace Mojule tracks adoption for
4. Open **Dashboard → Connect** and issue an org ingest token. Copy it now — it is shown once.

## Step 2: Turn on Claude Cowork OTEL

In Claude Desktop, open **Organization settings → Cowork → Monitoring** and set three fields. Stored server-side, applied org-wide.

```
OTLP endpoint   https://ingest.mojule.cloud
OTLP protocol   http/json
OTLP headers    Authorization=Bearer <your-token>
```

If your org restricts network egress, add `ingest.mojule.cloud` under Capabilities → Network egress, or exports are silently dropped.

## Step 3: Turn on Claude Code OTEL

Distribute a `managed-settings.json` fleet-wide via Anthropic server-managed settings or your MDM (Jamf / Intune / GPO). Managed settings override user settings and cannot be bypassed, so every Claude Code install inherits the export.

```json
{
  "env": {
    "CLAUDE_CODE_ENABLE_TELEMETRY": "1",
    "OTEL_LOGS_EXPORTER": "otlp",
    "OTEL_METRICS_EXPORTER": "otlp",
    "OTEL_EXPORTER_OTLP_PROTOCOL": "http/json",
    "OTEL_EXPORTER_OTLP_ENDPOINT": "https://ingest.mojule.cloud",
    "OTEL_EXPORTER_OTLP_HEADERS": "Authorization=Bearer <your-token>",
    "OTEL_RESOURCE_ATTRIBUTES": "mojule.tenant_id=<your-tenant-id>"
  }
}
```

Save it to the managed-settings path for your OS:

- macOS: `/Library/Application Support/ClaudeCode/managed-settings.json`
- Linux: `/etc/claude-code/managed-settings.json`
- Windows: `C:\ProgramData\ClaudeCode\managed-settings.json`

Using API keys, Bedrock, or Vertex? Those modes don't attach an organization id — keep the `mojule.tenant_id` resource attribute so events stay attributed to your org. The tenant id is on your dashboard Connect page.

## Step 4: See your data

1. Have someone in your org use Claude Code or Cowork
2. Return to [app.mojule.cloud/dashboard/connect](https://app.mojule.cloud/dashboard/connect)
3. The verification card turns green — "receiving from N seats" — within a minute or two

## What Mojule captures

- Session count, duration, and timestamps
- Model used (Sonnet, Opus, Haiku)
- Token counts and cost
- Tool names invoked
- Surface (Claude Code, Claude Cowork)

## What Mojule does NOT capture

- Prompts or completions
- File contents or paths
- Code snippets
- Tool arguments or outputs

Mojule's ingest rejects any payload carrying prompt or response content, so this never lands in your dashboard. Claude Web, plain Desktop chat, and mobile emit no OpenTelemetry and are never tracked.

## Surfaces

Mojule tracks **Claude Code + Claude Cowork** only. No other Claude surface emits OpenTelemetry.

## Stop sending telemetry

Remove the OTLP config from the Cowork Monitoring panel and the Claude Code managed-settings.json, or rotate the ingest token from the dashboard to immediately invalidate the old one.

## Support

- Email: [paul@mojule.cloud](mailto:paul@mojule.cloud)
- Dashboard: [app.mojule.cloud](https://app.mojule.cloud)
