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

# Device telemetry

> See how AI is actually used across your team's devices — without reading anyone's content

Governance only covers the AI you can see. Device telemetry extends Kelasa's
visibility to the machines your team works on: a lightweight agent on each
enrolled device reports **evidence that AI tools are present and in use** —
which apps, which MCP servers, how much Claude Code usage — so admins can see
real adoption and spot shadow AI, without ever collecting anyone's prompts,
files, or browsing content.

Everything lives under **AI Usage** in the sidebar (admin-only): a people
roster, each person's devices, and a per-device dashboard.

## What admins see

<CardGroup cols={2}>
  <Card title="Usage" icon="chart-line">
    Claude Code token and estimated-cost totals per device and per person,
    over 7- or 30-day windows, broken down by model — and by skill, agent, or
    plugin where that's observable.
  </Card>

  <Card title="Inventory" icon="boxes-stacked">
    Installed AI apps, configured MCP servers, and Claude Code skills,
    plugins, subagents, and hooks found on the device.
  </Card>

  <Card title="Browser AI visits" icon="globe">
    Visit counts to known AI domains from local browser history — counts per
    domain only, never URLs, titles, or search terms.
  </Card>

  <Card title="Alerts" icon="bell">
    Shadow-AI signals raised as observations with sourced evidence, which
    admins can acknowledge and resolve. Device online/offline status updates
    live.
  </Card>
</CardGroup>

## Shadow-AI alerts

The backend raises three kinds of alerts. Each is an **observation with
evidence, never a verdict** — the UI says "Personal / other-org account
observed", not "policy violation":

* **Personal account** — a device's AI session is signed into a personal or
  other-org account, bypassing your organization's governance and billing.
* **Unlisted MCP server** — an MCP server is configured on the device that
  isn't in your organization's app list.
* **Agent silent** — an enrolled device has stopped checking in, so its
  coverage can no longer be trusted.

Alerts carry timestamped evidence rows (metadata only) and move through
`open → acknowledged → resolved`.

## What is never collected

Telemetry is filtered **on the device** through a fail-closed allowlist before
anything is stored or uploaded — fields not explicitly allowed are dropped.
The agent never transmits:

* Prompt text, responses, or message bodies
* File contents, file paths, or source code
* Full URLs, page titles, or page content
* Tool inputs and results, command arguments, or error text

Identifiers that are needed for comparison (account emails, config
fingerprints) are one-way hashed with a per-device key before upload — they
can be matched, never read back. Browser history is checked only against a
fixed allowlist of AI domains; nothing else in the history is read out.

## Honest coverage

The dashboard distinguishes **not observed** from **not used**. If a collector
can't read something — for example, the agent hasn't been granted Full Disk
Access on macOS — the device page reports that coverage gap instead of showing
a reassuring zero.

## Availability

The agent runs as a background service and currently supports **macOS**;
Windows and Linux are planned. See [Enroll a device](/guides/devices) for
setup.
