terma principal find resolves a name, email, alias, or user ID to every principal that person holds, so you can confirm that usage aggregation and attribution are working as expected.
What is a principal?
A principal is a unique identity Terma observed from a specific tool or provider. Terma creates one principal per (person, source) pair the first time it sees activity from that combination. One real person can hold several principals — for example, a Claude Code principal and a separate Codex principal — andterma usage aggregates them automatically once their identities are bound via terma setup.
Usage
<query> argument matches against name, email, alias, or user ID. Matching is case-insensitive and supports partial matches on names.
Example
USER ID column of terma usage output — useful for confirming that a --user dawson filter in terma usage is picking up rows from every source you expect.
When to use
- Usage shows
(no user id)for some traffic — Someone’s identity from a specific tool has not been bound yet. Useterma principal findto check what principals exist, then ask the developer to runterma setupon their machine. - Confirming cross-tool aggregation — You want to verify that a person’s activity from Claude Code and Codex is being rolled up into the same row in
terma usage. - Onboarding a new team member — After a new developer runs
terma setup, useterma principal findto confirm their principals are visible and correctly attributed.
If a principal is not found for a given tool, traffic from that tool is attributed to
(no user id) in usage reports. Have the developer run terma setup on their machine to bind their identity and create the missing principal.