---
title: "Billing"
description: "Prepaid credits, top-ups, what's metered, and usage attribution"
canonical_url: "https://hoplite.sh/docs/workspace/billing"
markdown_url: "https://hoplite.sh/docs/workspace/billing.md"
---

# Billing
URL: /docs/workspace/billing
LLM index: /llms.txt
Description: Prepaid credits, top-ups, what's metered, and usage attribution
Related: /docs/threads/cost, /docs/agent/models, /docs/workspace

# Billing

Hoplite bills on **prepaid credits**. Your workspace holds a credit balance; agent runs draw it down based on the tokens they actually use, at per-model rates.

## Credits

The billing page under **Settings → Workspace → Billing** shows:

| Balance | Meaning |
| --- | --- |
| **Available** | What you can spend right now |
| **Held** | Credits reserved by in-flight runs, released back (minus actual usage) when they finish |
| **Granted / used** | Lifetime totals, including any starter grant |

## Top-ups

Buy credits through Stripe checkout from the billing page; a Stripe billing portal handles receipts and payment methods. If a run stalls on an empty balance, an **Add credits** dialog appears right in the thread so you can top up and retry without losing your place.

## Plans, seats, and subscription changes

Owners and admins preview plan, billing-interval, and paid-seat changes before
applying them. Changes that take effect immediately — including a trial
conversion — open a hosted Stripe confirmation page; ending a trial this way
ends it immediately, and any amount shown is due now. Return to Hoplite after
Stripe confirms the update so Billing can refresh the authoritative state.

No-charge downgrades can be scheduled for renewal. Billing shows the pending
change and lets you cancel it to keep the current plan, interval, and seat count.
A pending renewal change must be cancelled before a different immediate change
can be confirmed.

## After access expires

An expired subscription or exceeded seat limit does not hide your workspace:
projects, threads, history, settings, and billing remain browsable so an owner
can restore access. Hoplite blocks new cloud-billable messages and cloud-run
resumptions, and its minute-by-minute reconciliation cancels active cloud runs
after access ends. New automation triggers, automatic QA/review-loop passes,
preview starts or resumes, and unlinked external cloud ingress are also blocked;
an already-active preview is not proactively stopped solely by the billing
transition. Explicit local-agent threads remain usable, including external
ingress already linked to one, because their execution does not consume Hoplite
cloud compute.

## What's metered

LLM inference. Every model call records a usage event with the provider, model, input/output/cached/reasoning token counts, and cost, attributed to the run that spent it. Per-model rates cover input, output (reasoning tokens bill as output), and cache reads and writes; cached input is much cheaper, and Hoplite caches aggressively.

Sandbox provider usage is recorded only when the provider exposes itemized, per-workspace billing data. Daytona compatibility workspaces report a provider-priced total and CPU, RAM, disk, and GPU seconds for every sandbox generation; Hoplite stores each cumulative provider snapshot and settles only the delta, so refreshes and restarts never double-charge. Daytona can post final records up to 48 hours late, which means a deleted workspace's VM cost may remain **Pending** during that settlement window rather than showing an inaccurate final zero. Modal, the default provider for new workspaces, exposes only delayed application-level reports, so Hoplite marks its provider metering unavailable rather than presenting an estimated VM charge as authoritative.

## ChatGPT subscription models

Runs on [Codex models](/docs/agent/models) bill your connected ChatGPT plan instead of workspace credits. Their usage still shows up in your usage history — with zero credit cost.

Automatic context compaction normally appears in usage attribution with zero workspace-credit cost because Hoplite runs that summarization on a platform-funded model. If platform summarizer resolution fails, compaction falls back to the thread's session model and follows that model's normal workspace-credit, BYOK, or ChatGPT-subscription attribution.

## Usage

The **Usage** page charts spend per day and breaks usage down by model and run, so you can see exactly where credits go.

## Cost per thread

Spend is also visible where the work happens. Each thread's context-gauge card shows running cost, attributes usage to individual runs, and marks runs billed to your own provider keys with a BYOK badge — see [Track cost](/docs/threads/cost). Compatible Anthropic and OpenAI provider keys are configured under **Settings → Workspace → General** when BYOK is enabled.

## Sitemap

See the full [sitemap](/docs/sitemap.md) for all pages.
Well-known sitemap: [/docs/.well-known/sitemap.md](/docs/.well-known/sitemap.md).
