Skip to main content
Terma connects three things that usually live apart: what your coding agents did, what it cost, and the code it produced. This page introduces the pieces and how they fit together.

Organizations and teams

An organization is your company’s workspace. Members, invitations, roles, the GitHub connection, and principal mapping belong to the organization. A team is where activity lands. Every session, usage figure, and attributed commit belongs to one team. Use separate teams for separate products or groups of people. Each developer chooses their team once, with terma setup, and every session they run reports to it. The team’s collection policy, set by an organization admin, decides which repositories are collected — every session, or only the repositories it lists — and what content leaves each machine. Nothing is written into your repositories.

Sources

A source is anything that sends telemetry to a team:
  • Coding agents — Claude Code and Codex, each covering its CLI and desktop app, set up once per machine by terma setup. Cursor, OpenCode, and Antigravity are coming soon.
  • Routers and other tools — OpenRouter, or any tool that exports OpenTelemetry, sending with a team API key.

Sessions

A session is one conversation with an agent, rolled up with its turns, model calls, tool calls, tokens, cost, subagents, and Git activity. Sessions are what everything else is built on.

Sessions

What a session contains and how it is captured.

Principals

Sources report identities, not people: an email seen by Claude Code, a user id seen by Codex, an API key seen by OpenRouter. Each of these is a principal. Organization admins map principals to members, so one person’s activity across every agent rolls up as that person.

Principal mapping

Seat identities to the people they belong to.

Attribution

When your team’s policy turns on commit stamping, Terma’s prepare-commit-msg hook stamps each commit with Agent-Session-Id and Agent-Tool trailers for every session that edited a staged file. Pure human work gets no trailer. The link lives in your Git history, and with the GitHub connection, Terma lines up pull requests with the sessions behind them.

Attribution

How commit trailers link sessions to the code they produced.

Funding and cost

The same tokens cost different amounts depending on whether a subscription, prepaid credits, or a metered key paid for them. Terma records how each account is funded and tracks subscription allowance windows, so you can view usage as Tokens, at list price (Notional), or as the marginal bill after subscriptions (Net).

Funding and cost views

Funding modes, cost views, and how usage is priced.

How data flows

1

Agents export, hooks record

Each agent sends usage through its own telemetry export to a relay on your machine, which forwards only sessions your team collects. Terma’s hooks record session boundaries, edited files, subagents, and plan usage, and append them to a local queue without touching the network.
2

Commits are stamped locally

When you commit, the hook matches staged files to sessions and adds trailers in under 50 ms. Every commit in a collected repository is recorded for delivery.
3

Events are delivered in the background

The queue is delivered after commits and session ends, with retry and backoff. Nothing is lost if the network is down.
4

You read it back

The dashboard shows sessions, people, models, pull requests, and where agent work lands in your codebase.