Skip to content
Jents Academy
Track what your team uses 4 min read

Track the AI tools your team uses

A "tool your team uses" is a finished AI product people work with day to day — you didn't build it, you bought it: Claude Code, ChatGPT, Cursor, GitHub Copilot, Gemini. Jents tracks these so you see who's using what and what it really costs.


Two ways a tool gets tracked

1. Telemetry — per-person usage. If the tool can emit usage telemetry — like Claude Code — you point that telemetry at Jents and see exactly who used it and how many tokens it burned. This is the richest signal: real usage, attributed to real people and teams.

2. Seats — subscription cost. Flat-fee tools that can't emit telemetry — Cursor, GitHub Copilot — are tracked by their seat cost as a subscription. The gap between the seats you pay for and the people actually using them is wasted spend.

Many tools are both. Claude Code sends telemetry and is a paid seat — Jents shows the usage and folds the seat cost in as the real dollar number.


Set up telemetry capture

Claude Code

  1. In Jents, open Sources → Capture AI source → "AI your team uses" and Generate an Activation key. Jents shows a ready-to-paste snippet with your key and endpoint baked in.
  2. Open ~/.claude/settings.json and add the block below — it turns on telemetry and the per-skill hook (your real endpoint + key come from step 1):
{
  "env": {
    "CLAUDE_CODE_ENABLE_TELEMETRY": "1",
    "CLAUDE_CODE_ENHANCED_TELEMETRY_BETA": "1",
    "OTEL_TRACES_EXPORTER": "otlp",
    "OTEL_METRICS_EXPORTER": "none",
    "OTEL_LOGS_EXPORTER": "none",
    "OTEL_EXPORTER_OTLP_PROTOCOL": "http/protobuf",
    "OTEL_EXPORTER_OTLP_ENDPOINT": "https://app.jents.io/api/capture",
    "OTEL_EXPORTER_OTLP_HEADERS": "Authorization=Bearer <your key>",
    "OTEL_RESOURCE_ATTRIBUTES": "jents.team=<your team>"
  },
  "hooks": {
    "PreToolUse": [
      { "matcher": "Skill", "hooks": [{ "type": "command", "command": "cat | curl -s -m 5 -X POST https://app.jents.io/api/skill-run -H 'Authorization: Bearer <your key>' -H 'Content-Type: application/json' -d @-" }] }
    ]
  }
}
  1. Fully restart Claude Code. Your usage starts arriving in Observability within a minute or two.

Set jents.team to the team using it, so the cost attributes to the right group.

Claude Code is flat-fee, so the tokens it reports are usage (the value you're getting) — the real dollar cost is the seat, tracked under Subscriptions.

Any other app or OpenTelemetry-capable tool

Install Jents Capture and point it at the same ingest key:

pip install jents
import jents
jents.init(api_key="<your ingest key>", team="<your team>")   # then use OpenAI/Anthropic as usual — calls are captured automatically

Node — same idea:

npm install @jents/capture
const { init } = require("@jents/capture");
init({ apiKey: "<your ingest key>", team: "<your team>" });

Track one specific skill (Claude Code)

Claude Code's telemetry reports tokens and cost, but not which skill ran. So Jents captures that with a tiny hook — already included in the settings above (the hooks block). On every skill run the hook tells Jents which skill ran and in which session, and Jents matches that session's captured tokens to the skill. The result is cost per run for each skill, with no setup beyond the snippet you already pasted.

To track a skill on its own, create a Skill pipe: Capture AI source → "AI your team uses" → A skill, then pick the skill (Jents lists the ones the hook has seen) or type its name. Its record shows runs, cost per run, tokens, and who's using it — separate from everyone's overall Claude Code usage. It works best for "kick it off → it runs → it comes back" automation skills, where each run is one clean unit to price.

Tokens: Claude Code re-reads its prompt cache on every call. Jents keeps those cache re-reads out of the headline token count, so the number reflects real work — not hundreds of millions of cache-read tokens.


Track seat-based tools (Cursor, Copilot, ChatGPT seats)

These don't expose per-person telemetry, so there's nothing to point at Jents — they're tracked as subscriptions (the seat cost) under Observability → Subscriptions:

  • Auto-detected wherever Jents can already see the tool (from telemetry or a connected vendor account) — no manual adding.
  • For OpenAI / Anthropic org seats, connect the vendor admin key and Jents pulls the seat count; one tap confirms the paid total.
  • Active vs. paid seats: Jents flags the difference as reclaimable spend.

What you'll see

Per-person usage rolls up by team and by person, and any seat cost folds into one all-in number — so "AI your team uses" answers both who's using it and what it actually costs.