Integrations · Agents

Track Gemini CLI cost by project.

Gemini CLI pushes its usage over OpenTelemetry to your organization. Nothing is installed on anyone's machine, and cost lands on projects by repository.

  • DoorTelemetry push
  • Brings inTokens, cost, model, person, repository
  • Cost lands onProjects, by repository

Set it once for everyone.

Session files are not read, so the repository decides the project.

  1. 1

    Point the exporter

    Set Gemini CLI's OpenTelemetry exporter to your ingest URL with the organization token.

  2. 2

    Map repositories

    Add each repository to its project in the web app. One repository belongs to one project.

  3. 3

    Place by hand when it matters

    A session in a mapped repository lands on the project as project overhead until someone places it on a ticket.

RepositoryProjectCost kindkestrel/storefrontStorefront relaunchProject overheadkestrel/claims-portalClaims portalProject overheadkestrel/sandboxno projectOrganization overheadAgentTicketSummaryCostTRGemini CLISF-2Search criteria draft$2.15
Telemetry knows the repository, so a mapped repository puts cost on its project. A person can still place a session on a ticket.
# Gemini CLI: point its OpenTelemetry exporter here endpoint https://app.tokencontroller.com/api/v1/ingest/otlp header Authorization: Bearer tc_org_… # the organization token is under Settings in the web app

What telemetry carries.

Numbers and identifiers only

Tokens, cost, model, person, repository, and session and message IDs. No prompt text.

Nothing unplaced is hidden

A session outside any mapped repository is organization overhead, with its person, on its own line.

Against the bill

Google's bill comes in as CSV, and the close checks Gemini CLI's cost against it.

In the docs

Start alone in a few minutes. Add your team when the first month closes.

No card for the free plan. Fourteen days to try the Team plan.