Usage & billing
How Syntic Code counts usage, how to keep an eye on it, and your options once a limit is reached.
What counts
Every request to the model uses tokens: your messages, the files and command output the agent reads, memory files, tool descriptions, and the model’s replies. Longer conversations and bigger contexts use more per request; caching makes repeated parts cheaper.
Your plan includes usage up to its limits. Limits are measured over time windows (for example a session window and a weekly window), and reset on a schedule.
See your usage
| Command | Shows |
|---|---|
/cost | This session’s spend, with Cost, Usage and Trends tabs. See Reading /cost. |
/usage | Your plan’s windows and how much of each you have used, the context in use, credits, trends and usage by plugin. |
/stats | Token counts and spend by model, with an activity view. |
/insights | What drove token use over the last day and week. |
/context | What fills the current context window. |
/rate-limit-options | Each limit, when it resets, and your options. |
/upgrade | Your plan’s usage, plus a link to the billing page. |
A status line can show plan usage all the time; its data refreshes every five minutes.
Reading /cost
Every reply records its own usage (tokens in, out, cache read and written) and its cost, tied to the platform’s request id. /cost adds those records up, so it agrees with the footer, includes everything since the session began (also after a resume), and never counts the same request twice when you fork or reopen a session.
| Part | Shows |
|---|---|
| Total cost | The session’s own spend, then one line per source (below) with its request count. |
| Carried over | Only after /branch or --fork-session: usage copied from the session this one was forked from. It is listed, but not counted in the total. |
| Usage by model | Input, output, cache read and cache write tokens, requests, cost and source, per model. |
| Usage by agent | The same columns for the main agent and each sub-agent (named by its type and task), so you can see what a helper cost. |
| Source | Means |
|---|---|
| reported | The Syntic platform sent the cost with the reply. |
| calculated | Tokens multiplied by the model’s known rate. |
| estimated | The reply came without usage numbers, or no rate is known for the model. |
The footer shows just the amount; the labels stay in /cost. To cap what one sub-agent may spend, see Spend caps.
About the dollar figures
Costs shown by the CLI (in /cost, and total_cost_usd in -p --output-format json) are estimates at list price. As the JSON output puts it: “Retail-price estimate. Usage covered by your plan isn’t charged.” They help you compare tasks and set budgets; your bill is based on your plan. If your organization set its own rates (modelPricing), those are used instead.
Keep usage down
- Switch to fast mode (
/fast) or a lower effort for simple work. - Start fresh with
/clearbetween unrelated tasks, and/compactin long ones. - Keep
SYNTIC.mdlean and turn off MCP servers and plugins you do not use. - Delegate searches to subagents, which keep bulky reads out of your main context.
- Cap scripted runs with
--max-budget-usd,--task-budgetand--max-turns. - Cap sub-agents with
maxBudgetUsdin an agent’s definition, oragents.defaultMaxBudgetUsdin settings (Spend caps).
Hitting a limit
When a plan window is used up, Syntic Code tells you when it resets. /rate-limit-options lays out your choices: wait for the reset, switch to another model, turn on usage credits if your organization offers them, or change plan.
By default, a session that stopped at a limit continues on its own once the window resets. Set "autoContinueAfterUsageLimit": false to stop instead.
Usage credits
Some organizations can buy usage credits that cover use beyond the plan’s limits. /usage-credits (also /extra-usage) shows the balance, this month’s spend and limit, and whether credits are on. Owners and admins can switch credits on or off there (t, then y to confirm).
Billing problems
| Situation | What happens | What to do |
|---|---|---|
| A payment failed | Work continues for a grace period. Once per session you see “Your payment didn’t go through. Please update your billing to keep using Syntic Code.” with the time left. | Update your payment method at app.syntic.ai/billing. |
| Billing is inactive | Requests are refused: “Your plan isn’t active. Please update your billing to use Syntic Code.” | Update billing, then send your message again. |
| Free account | Requests are refused: “Your account is a free one. Please upgrade to use Syntic Code.” | Choose a paid plan. |
| No seats left, or another plan problem | The refusal includes the reason from your account. | Ask your organization’s admin. |
| The plan check is briefly unavailable | Requests are retried. | Usually nothing; try again shortly. |
For how the dollar figures are worked out and how to cap spend, see Manage costs. To send usage to your own monitoring tools, see Monitor usage.