Skip to content

Read a session's subscription, model and effort

Requires @openlatch/client 0.11.11 or later

Use the Subscription column of an agent’s Economics sessions table to see what each session ran under: the subscription ID and its kind, the provider account and the billing mode, plus the reasoning effort the agent requested beside each model. Every role can read it. Machines on an older client report no subscription, provider account or effort; they still report the model and the billing mode.

Each value is what the agent’s machine reported, shown as sent. OpenLatch does not check a subscription ID or an account against the provider, and it never judges one: a value is an observation, not a verdict.

  1. Open an agent, then its Economics tab.
  2. In Sessions, read the Subscription column: the kind label on the first line, the subscription ID on the second, then the provider account and the billing mode.
  3. Read the effort on the second line of the Models cell, after the word effort.
  4. Select a session to open its detail: every subscription, provider account, billing mode and effort of the session, and the effort of each model in the cost-by-model table.

When a session has more than one value, the cell shows the first one and a count such as +1. Hover or focus the count to read the full list.

ValueWhat it isWhen it reads not reported
SubscriptionThe subscription the session’s model calls ran under, with its kind, such as an Anthropic organization or a ChatGPT workspace. It names the subscription, not the personThe agent’s configuration names no subscription, for example a session on an API key
Provider accountThe email address of the model provider account, for Claude Code only, or shared-key when the session runs on a credential that names no person, such as an API keyEvery agent other than Claude Code, and every new call once identity signal collection is off
Billing modeMetered for spend billed through an API key, Subscription, or Unknown when the client could not tell or sent nothingNever: a billing mode the client could not tell reads Unknown
ModelThe models the session calledNever: the model is always reported
EffortThe reasoning effort the agent requested, as it sent itThe agent’s requests carried none

A value that was not reported shows a dash, read aloud as, for example, “Subscription not reported by this agent”. Each value stands on its own: one value not reported never hides the others.

Kind labelWhat the ID isWhere the client reads it
Anthropic orgA claude.ai organization UUIDClaude Code signed in with a claude.ai login, and Claude Code running inside Claude Desktop
ChatGPT workspaceA ChatGPT workspace UUID, or on a personal plan the account’s own IDCodex CLI signed in with ChatGPT
Azure OpenAI resourceThe hostname of an Azure OpenAI resourceClaude Code, Codex CLI or Cline configured with an Azure OpenAI base URL
Cursor teamA Cursor team IDCursor CLI or the Cursor editor signed in to a team. When both name a team, the CLI’s team wins
Cline orgA Cline organization IDCline signed in to a Cline organization
GCP projectA Google Cloud project IDClaude Code running on Google Vertex AI
AWS accountAn AWS account IDClaude Code running on Amazon Bedrock, taken from the inference-profile ARN in its model setting
GatewayThe hostname of a model gatewayClaude Code, Codex CLI or Cline configured with a base URL that is not a model provider’s own host
GitHub enterprise, GitHub orgA GitHub enterprise, or a GitHub organization pinned by device policyReserved for GitHub Copilot, which is not yet supported

A hostname is carried alone, without scheme, path, port, user name or query. A Gateway value names the gateway, not your company: a shared gateway service shows the same hostname for every customer.

When several sources apply to one agent, the client takes the first that answers, in this order:

  1. A base URL on an Azure OpenAI host gives Azure OpenAI resource.
  2. Any other base URL that is not a model provider’s own host gives Gateway, whatever the credential.
  3. Claude Code running on Vertex AI or Bedrock gives GCP project or AWS account.
  4. The agent’s sign-in gives its organization, workspace or team.
SituationWhat you see
Claude Code on an API key, an auth token, an API key helper or an OAuth tokenNot reported, even when an earlier claude.ai login is still cached on the machine: the organization behind a key cannot be known without calling the provider
Codex CLI on an API keyNot reported
Codex CLI with its credentials only in the operating system keyringNot reported from its sign-in file. Once a model call goes through OpenLatch, the ChatGPT workspace that call names is used for the call and for the agent
A base URL set only in a shell profileNot read: only the agent’s own settings and the client’s environment are read
A Codex CLI gateway set only in a profile, or through the top-level OpenAI base URL overrideNot read
OpenCode or DevinAlways not reported: the client reads no subscription for them
CursorNever shows Gateway: the client reads no gateway setting for Cursor

GitHub Copilot is not yet supported; like Cursor, it never shows Gateway. Gemini CLI and OpenClaw are not yet supported, so no subscription, Gateway included, is read for them.

LabelMeaning
MeteredSpend billed through an API key
SubscriptionSpend under a subscription plan, shown as estimated on the Economics tab
UnknownThe client could not tell, or sent no billing mode

A Cursor session always reads Subscription. That is a rule the client applies to every Cursor turn, not something it observed.

The effort is the reasoning effort the agent asked for, as it sent it. The client reads it from Anthropic Messages and OpenAI Responses requests, such as those of Claude Code and Codex CLI, and from the effort Cursor reports at the end of each turn. It is never read from a model name and never inferred from token counts. OpenLatch records the requested value and changes no request.

The provider account is reported for Claude Code only: the email address of the signed-in account, or shared-key for a credential that names no person. Every other agent reads not reported.

The account follows the switch Collect identity signals from endpoints in Settings › Identity Providers, on by default; see Connect a directory for owner lookup. Shortly after you turn it off, no new model call records an account, whatever a machine still sends. Calls recorded before keep theirs. The subscription, the billing mode, the model and the effort are not identity signals and are recorded either way.

A session takes its account from its first lookup. When that lookup finds no account, the session reads not reported throughout.

  • Each model call records its own values. A session whose subscription, billing mode or effort changed shows each value, in the order it first appeared.
  • The lists cover the date window you selected. A value seen only outside that window is not listed.
  • The client reads the agent’s configuration when it detects the agent, at each periodic rescan, and at the start of each Claude Code session. A new value appears with the agent’s next model call or configuration event.
  • On a machine running Claude Code both inside Claude Desktop and from the command line under different credentials, the most recent session start decides the subscription the agent’s next calls record. Each call keeps the value it recorded.
  • Sessions recorded before these values existed read not reported. Nothing is filled in afterwards.
  • Past sessions keep what they recorded for as long as their economics data is kept. That retention window is configured, not guaranteed: rows are not certain to be deleted when it ends. See Data handling and security.

To find a subscription, the client reads named fields from the agents’ own files. Each file is read in memory and only the named field is kept: the file and every other field in it are never stored, logged or sent. The client never opens a credential store, such as Claude Code’s credentials file, the macOS Keychain, Cline’s secrets file, a .env file or your AWS credentials file, never decodes a token, and never calls a provider with the agent’s credential. Your endpoint security tooling may show these reads.

AgentSourceWhat is kept
Claude Code.claude.json, in your home folder or the Claude configuration directoryorganizationUuid, the organization of the signed-in claude.ai account
Claude Codesettings.json and the client’s own environmentANTHROPIC_MODEL, ANTHROPIC_VERTEX_PROJECT_ID, ANTHROPIC_BASE_URL and the model overrides. Credential settings are checked for presence only
Claude Code inside Claude DesktopCLAUDE_CODE_ORGANIZATION_UUID, in the hook’s environment at session startThat variable alone
Codex CLIconfig.tomlThe active model provider and its base_url
Codex CLIauth.jsonThe sign-in mode and the account_id of a ChatGPT sign-in
Codex CLIEach model call that goes through OpenLatchThe chatgpt-account-id header
Cursor CLIcli-config.jsonactiveTeamId, else teamId
Cursor editorstate.vscdb, opened read-only and queried by exact keyThe cached team ID
ClineglobalState.jsonlastManagedOrganizationId, the active provider and its base URL
Clineproviders.jsonThe Cline account’s organizationId, the active provider and its base URL

To read what a session did, see Investigate what an agent did. For the agent’s spend and budget, see Track an agent’s spend.