Changelog

Product updates you can trust

Transparent release notes across platform features, API changes, and reliability upgrades.

v1.15.0

2026-10-12

Claude Code, Codex and Antigravity tracked with one command, and guardrails that block instead of report

  • • Coding agents need no instrumentation: agentcost connect claude-code (or codex, or antigravity) reads the session logs those tools already keep and sends each model call as an event. A session is a run; spend breaks down by model, tool, subagent, session and developer. SDK 0.3.0.
  • • Guardrails can now stop a call. Connect with --enforce and a disallowed tool, a disallowed model, a session over its tool-call or cost limit, or a prompt after a spent hard budget cap is refused before it runs, in Claude Code and Codex, and the agent is told why. Everything else is still reported after the fact.
  • • Subscriptions are not spend: usage on a Claude or ChatGPT plan is priced at its API value, marked billing: subscription, shown separately on the Overview as subscription_cost, and left out of the budget, its alerts and its hard cap.
  • • New API: POST /v1/otlp/v1/logs accepts the OpenTelemetry export Claude Code and Codex already have, so an organisation can report every session, including cloud sessions, from managed settings alone. GET /v1/guardrails/policy serves guardrails, tool tags and budget position in one read for anything that enforces locally. GET /v1/analytics/by/billing groups spend by how it was paid for.
  • • More accurate numbers for cache-heavy work: one-hour prompt-cache writes are priced at twice the input rate, calls with no measured latency no longer pull latency averages toward zero, and a model-downgrade suggestion can no longer claim to save more than was spent.
  • • Antigravity publishes no usage export, so its figures are read from an undocumented local format and marked as estimates.
  • • Sessions by name: connect with --session-names (SDK 0.3.1) and each Claude Code chat and Codex thread is listed by its title on the agent page, in the run list and over MCP, so you can see which conversation cost the most. Off by default, because a title summarises what was asked.
  • • Optimizations now has advice for coding agents. Model swaps and prompt caching do not apply when you control neither, so it reports how sessions are used instead: the share of usage spent re-sending very long conversations, prompt-cache rebuilds after resuming an old session, one session taking most of the usage, and how often the plan limit was hit, each with what to do about it.
  • • Daily figures hold still: a day range is now today plus whole previous days on your own clock, so past days and totals no longer change between refreshes, and late-night work lands on the day you did it.
  • • Reports shows when it is fetching a new range, which range is on screen and when it was built.
  • • The landing page screenshot now shows Claude Code and Codex alongside the other agents.
  • • New docs page: Coding agents. The CLI reference, API reference, privacy page and llms.txt cover the new commands and endpoints, and agentcost on its own now lists every command.

v1.14.0

2026-10-08

Your own spend over MCP, and a run that reads back with how it ended

  • • The MCP server now reads your own project when you send its API key as a bearer token: get_spend_overview, get_spend_breakdown (by agent, model, workflow, tool, user or session), get_budget_state and get_run_cost. The four pricing tools are unchanged and still need no key.
  • • The account tools are read-only and scoped to the key's project. Without a key they return an error that says how to supply one.
  • • GET /v1/analytics/traces/{trace_id} now returns the run's outcome — success, label and when it was recorded — or null when none was reported.
  • • A run that was refused before any model call, reported by an external control plane as an outcome with no events, is now returned with zero calls instead of a 404.

v1.13.0

2026-09-08

A page for every agent, an Agents list that says what changed and why, a rebuilt sidebar, and a new landing hero

  • • Every agent now has its own page: spend by day with the day that stands out named, a waste ledger (identical calls repeated inside one run, failed calls that still billed, the most expensive 5% of runs), cost per step with median and p95 per run, spend by developer, session and model with cached-input share, the guardrail policy against what actually ran, the most expensive runs, and the recommendations that apply to that agent.
  • • The Agents list carries change and cause: spend against the previous window, a seven-day trend, cost per run, cache hit share, dollars spent on failed calls, guardrail state and one computed signal per agent — a retry loop priced in dollars, failed calls that still bill, a classifier running on a generation model, an untraced agent, or a model swap worth making. Rows open the agent page.
  • • New API: GET /v1/analytics/agents/summary and GET /v1/analytics/agents/{agent_name}, and an agent_name filter on timeseries, by/{dimension}, the workflow endpoints and traces.
  • • Sidebar rebuilt: the workspace first, the five places you read, a collapsible Controls section, the account at the bottom, and the content as a raised panel over the page ground.
  • • Landing page hero rebuilt: a serif headline, one button and one link, and the real Agents page as the only visual.

v1.12.0

2026-09-05

Guardrail compliance, a redesigned documentation site, a colour-blind-safe chart palette, and a rebuilt landing page

  • • New Guardrails page: declare a boundary per agent — which tools it may call, whether it is read-only, which models it may use, and how many tool calls or how much cost a single run may reach — and see per agent whether observed usage stayed inside it: every breach, the tool, model or run that crossed the line, and how much of the agent's work it represents. Opening an agent shows what it actually used — every tool with call counts, every model with cost, and the p50, p95 and max tool calls and cost per run — so a limit can be set from observed behaviour with one click. Kept separate from success rate on purpose: that measures whether calls raised, this measures whether agents stayed inside the line you drew.
  • • Breach alerts: a breach raises a notification for the project owner and admins and fires a signed guardrail.breach webhook where one is configured, with repeats of the same breach suppressed for an hour so a looping agent produces one alert, not thousands. Per-run limits are judged on the run's running total, so a run that crosses the line across several batches still alerts.
  • • Agents and Settings pages rebuilt in one quieter vocabulary — a single stat band instead of icon cards, hairline tables, and settings laid out as labelled rows — and the Agents table now shows each agent's guardrail status.
  • • Landing page: the hero now puts the release announcement beside the headline instead of above it, and the five sourced cost stories are shown as one strip with the figure first.
  • • SDK 0.2.2: track_costs.tool() now records the tool name outside a workflow() too, so tool boundaries are visible without declaring a run. Inside a workflow nothing changes.
  • • Documentation rebuilt as a three-column site: persistent navigation, Ctrl+K search across every page and endpoint, an on-this-page outline, a copy-page button, previous/next paging and a per-page helpfulness vote. Every page moved onto shared components so headings, code blocks, callouts and endpoint entries look the same everywhere.
  • • Model catalogue page: announced retirements are listed with days remaining, a one-click filter narrows the catalogue to every retiring model, and the provider and type filters are now proper dark menus with type-to-filter.
  • • Charts and reports share one colour-blind-safe palette — cost, calls and tokens keep the same colour on every chart, in the PDF report and in the OpenAI import — and the accent colour reverted from blue to neutral throughout the app.
  • • Landing page: a capability walkthrough that shows the product itself in miniature for each feature, and a privacy section that plays the exact fields an event carries, each opening into where its value comes from and what it can reveal, with the list of everything that never leaves your process.
  • • API Reference and the published OpenAPI specification cover the guardrail endpoints and the docs-feedback endpoint; the Data & Privacy page notes that tool() outside a workflow sends the tool name alone.

v1.11.0

2026-08-11

Workflow tracing, cost per completed outcome, a pre-deployment analyser, and classification-workload detection

  • • Added workflow tracing to the SDK: wrap a multi-step run in track_costs.workflow() and its calls in step() or tool(), and every event records where it sat in that run. Works across OpenAI, Anthropic, Gemini and LangChain, including streamed calls.
  • • New Workflows page showing cost per run rather than per call, cost per step and per tool, and a distribution chart of what a single run actually costs — with the most expensive 5% of runs and their share of spend called out, because an average hides the runs worth finding.
  • • Repeated-work detection: identical calls made more than once inside a single run. This is distinct from the duplicate calls a cache fixes — within one run it usually means the control flow is looping.
  • • Added cost per completed outcome. Call track_costs.outcome(success, label=...) and the dashboard reports what a result costs, charging failed runs to the successes they were paid for. Runs that report nothing are counted as unreported, never as failures.
  • • New agentcost analyze command estimates what an agent will cost before it has spent anything: it token-counts your prompt and skill files, projects a recorded local-mode test run to production volume, and flags looping steps, repeated calls, oversized prompts and duplicated context. It runs entirely on your machine and transmits nothing — use --fail-on high to block a deploy in CI.
  • • Optimizations now detect classification-shaped workloads: agents whose responses are always short and whose inputs repeat are doing work a smaller model, a trained classifier, or a lookup would do far more cheaply. Detected from token counts alone, without reading any prompt.
  • • Documented the full trace and outcome payloads on the Data & Privacy Architecture page, including that workflow, step, tool and label names are strings you write and are transmitted as written.
  • • Every workflow endpoint is documented in the API Reference, and none of this changes existing events: without a workflow() the SDK emits exactly what it did before.

v1.10.0

2026-08-04

Hosted-cloud positioning, instant onboarding, OpenAI & Anthropic spend import, and corrected integration snippets

  • • Clarified positioning across the site: AgentCost is a free hosted cloud (api.agentcost.tech + this dashboard), and the same MIT-licensed stack remains fully self-hostable — claims like 'your data never leaves your infrastructure' are now correctly scoped to the self-hosted option.
  • • Instant onboarding: signing up now auto-creates a project with an API key, so you can go from register to tracked calls without any manual setup.
  • • Added OpenAI 30-day spend import so new accounts see real historical spend immediately after connecting.
  • • Corrected every integration snippet on the site: API keys use the real sk_ prefix and init() examples include the required project_id (a UUID you copy from Settings).
  • • Fixed an analytics error on the Models page.
  • • Unified the public model count (3,500+) across the landing page, pricing page, FAQ, docs, and metadata — it previously varied between pages.
  • • Added a real favicon.ico (previously only an SVG icon was declared, so /favicon.ico returned 404).

v1.9.0

2026-06-28

Executive Reports with PDF/CSV export, a redesigned Pricing page, and reliability fixes

  • • Added Executive Reports — a new Reports page that pairs a one-glance executive summary (spend, calls, tokens, success rate, latency, projected run-rate, each with period-over-period deltas) with deep breakdowns: latency percentiles (p50/p95/p99), model cost concentration (Pareto), token efficiency, per-model error analysis, usage cadence (busiest day/hour), budget status, and an optimization-savings rollup.
  • • Reports run over standard ranges, month-to-date, or a fully custom start/end date window — deltas always compare against the immediately preceding window of equal length.
  • • Added a one-click PDF export that renders a purpose-built, letterheaded document (its own typography, KPI grid, tables, and inline SVG charts) instead of printing the dashboard — consistent output on every machine.
  • • Added CSV export of the raw breakdown tables (models, agents, errors, cadence) with a UTF-8 byte-order mark and CRLF line endings, so currency symbols and accented text open correctly in Excel.
  • • Backed the report with a new /v1/analytics/report endpoint and ReportService that compose the existing analytics, budget, and optimization services — no duplicated aggregation logic.
  • • Reports work end-to-end in the no-signup demo, generated entirely client-side from the same sample dataset as the rest of the demo.
  • • Redesigned the Pricing page: the header link now opens a dedicated page with an interactive savings estimator and an honest, single 'Free forever' open-source plan — replacing the old anchor jump to the metrics section.
  • • Added a Back-to-home link and a featured-post layout to the Blog index.
  • • Fixed the test suite's in-memory database setup (shared connection + commit-on-success) and aligned auth fixtures with the dual-auth model, restoring full green coverage; corrected the soft-delete test to reflect intentional grace-period reactivation.

v1.8.0

2026-06-18

Interactive no-signup demo, a redesigned analytics dashboard, and broader model coverage

  • • Added Live Demo mode — explore a fully populated workspace (sample data from a fictional AI-support company) with no signup. It runs entirely client-side, so the demo works even when the API is unavailable.
  • • Reachable from the landing hero, the navbar, and the sign-in page, the demo is read-only: any write action invites you to create a free account, and signups originating in the demo are attributed for conversion reporting.
  • • Added a Demo Funnel page to the admin control plane: sessions over time, entry sources, most-explored pages, signup click-through, and demo-to-account conversion rate.
  • • Redesigned the dashboard with hero metric cards (inline sparklines and period-over-period deltas) and a new operational snapshot: projected monthly spend at the current run rate, blended cost per 1K tokens, and failed-call/error-rate tracking.
  • • Added a new activity chart with a Spend / Calls / Tokens switcher and a period-average reference line, an interactive cost-by-model donut, and a ranked agent cost list with per-agent calls, success rate, and latency.
  • • Reworked the Agents and Models pages with provider tags, cost-share bars, call-volume-weighted success rates, and input/output token-split visualizations.
  • • Updated model coverage to reflect 2,900+ supported models, synced from LiteLLM's pricing database.
  • • Refined the visual language across the app — flat, single-color data fills replace cross-color gradient treatments for a cleaner, more professional look.
  • • Fixed a reliability issue on the registration page where an unreachable policy-versions endpoint surfaced a console error instead of silently falling back to the built-in defaults.

v1.7.1

2026-05-24

INR currency support, clearer Budget Guardrails UX, and stability fixes

  • • Added per-project currency selection for Budget Guardrails — USD and INR are supported, with live ECB-sourced FX rates fetched and cached for 6 hours via frankfurter.app.
  • • Budget evaluation now converts USD cost events into the project's chosen currency before comparing against thresholds and the hard-cap budget, so a ₹4,000 budget behaves natively in INR.
  • • Email and in-app budget alerts now render amounts with the project's currency symbol (₹ or $).
  • • Redesigned the Enforcement Mode dropdown with a dark-theme custom selector and clearer wording (Tracking only / Notify on thresholds / Block when budget is reached).
  • • Widened the threshold input so the helper text is no longer clipped.
  • • Fixed a TypeError on /v1/auth/me caused by legacy naive timestamps in last_active_at.
  • • Auto-migration now also adds events.cost_source and events.input_hash so analytics queries succeed on first deploy.
  • • Logout now clears the project-scoped API key from local storage to prevent a previous account's key from leaking into a new account session.
  • • Team page detects when a stored API key points to a project the current user can't access and offers a one-click recovery action.

v1.7.0

2026-05-24

Budget Guardrails: monthly caps, threshold alerts, and notifications

  • • Added per-project monthly budget configuration with enforcement modes: off, warn, and hard_cap.
  • • Added configurable alert thresholds (defaults: 50%, 80%, 100%) with strict 1–100% validation and automatic deduplication.
  • • Added deduplicated threshold crossing records via a new budget_threshold_alerts table — guaranteed at most one alert per project, per month, per threshold.
  • • Added in-app notification system: per-user notification feed with unread counts, severity levels (info / warning / critical), mark-read, and mark-all-read endpoints.
  • • Added budget alert email template — branded HTML email dispatched via Resend to project owners and admin members on every newly crossed threshold.
  • • Added a notification bell to the dashboard layout with a live unread badge that polls every 60 seconds.
  • • Added the Budget Guardrails settings card with month-to-date utilization, color-coded progress bar, and threshold chip editor.
  • • Hardened the ingestion endpoint: returns HTTP 429 when projected spend exceeds the budget in hard_cap mode, with a clear, actionable error message.
  • • Added 13 unit + integration tests covering threshold normalization, month-window math, year-rollover, evaluation across all enforcement modes, dedup, and owner/admin fan-out.

v1.6.4

2026-03-20

Branding and SEO coverage for multi-provider support

  • • Updated site metadata to explicitly include OpenAI and Anthropic alongside LangChain across title, description, Open Graph, and Twitter cards.
  • • Updated landing-page copy and SDK snippets to reflect multi-provider support.
  • • Standardized icon metadata (shortcut + apple touch icon) for consistent favicon rendering across browsers.