Your agent can spiral.
Your LLM bill can't.

Budget Status

nightly-batch

Budget exceeded

$4.96 / $5.00(99.2%)

your process

hard-deny on, cap $5.00

call 12 gpt-6-sol sent

call 13 gpt-6-sol sent

call 14 gpt-6-sol sent

call 15 gpt-6-sol sent

call 16 gpt-6-sol sent

call 17 budget check: denied (would pass the cap)

BudgetExceededError: Budget exceeded for project nightly-batch

call not sent to provider

Enforcement mode

Alerts-only is the default. Hard-deny is one setting in your dashboard.

Solwyn wraps the LLM client you already use and denies over-budget calls in your own process, before they reach the provider. Prompt content never routes through a hosted gateway.

Open-source Python SDK. Runs in your process; calls go straight to the provider.

Works with
OpenAIAnthropicGoogleMistralCohere+ any OpenAI-compatible API

$260 overnight, from one loop nobody was watching.

Not stolen keys. Not your cloud bill. The spend that starts inside your own code, the only kind a local cap can stop.

The agent stuck in a tool-call loop.

An assistant fell into a function-call loop: “burned $100 in a couple of hours… by the next morning, it burned another $160.”

The loop spent $0 in the evening, $100 within about two hours, and $260 by the next morning. With an example $25 daily cap, the loop’s calls are denied once spend reaches $25, and the remaining $235 is never sent to the provider.

Drawn from the quoted figures; times approximate.

OpenAI Developer Community, Dec 2023, self-reported, guardrail code posted; OpenAI later credited the charges.

The retry job with no ceiling.

32M tokens / 24 hours

A background job with no max-retry limit re-sent the same work until the developer noticed: “I assumed that not having a default meant there was a fixed number of retries, not infinite.” A daily cap ends this at your limit.

Triplett, micro.webology.dev, Nov 2025, self-reported, named.

The pattern

Every runaway is the same shape: your code calls the model, the result triggers another call, and nothing in the loop knows to stop. The calls succeed, so no error fires until something external intervenes.

The model kept answering because the code kept asking. Solwyn adds the stop condition.

Three steps between your agents and a runaway bill.

Install, wrap the client you already use, and catch the one new exception. Set the cap itself in the dashboard.

# pip install "solwyn[openai]"
# export SOLWYN_API_KEY="sk_proj_..."
from openai import OpenAI
from solwyn import Solwyn, BudgetExceededError

client = Solwyn(OpenAI())

try:
    reply = client.chat.completions.create(model="gpt-6-sol", messages=msgs)
except BudgetExceededError:
    stop_the_run()  # cap reached: the call was never sent to OpenAI
Add a hard cap free

5K requests a month and one hard cap, free. No card.

Every step of a call, in orderCheck, reserve, send, report. Plus what happens when a provider is down./how-it-works

The cap is just the start.

Set the limit before the damage starts.

Daily, weekly, or monthly budgets per project. Alerts fire by default, so your agents keep running while you get notified. Opt into hard-deny and over-budget calls stop in your process, before they ever reach the provider.

Budget Status

support-copilot
$4,200.00 / $5,000.00(84.0%)
rag-search
$1,000.00 / $2,000.00(50.0%)
doc-summarizer
$225.84 / $500.00(45.2%)
nightly-batch
$1,500.00 / $1,500.00(100.0%)Budget Exceeded
Live budget status across four projects in the Solwyn dashboard. nightly-batch has hit 100% of its cap and is flagged Budget Exceeded. Every project carries its own hard limit.

Team plan and up

When your provider goes down, your agents don't.

A local circuit breaker tracks provider health client-side with no network hop and routes to your configured fallback automatically. The decision happens in your own process, with no server in the loop, so you don't get paged.

Provider Health

OpenAI
Healthy
Success Rate99.5%
Avg Latency487ms
Total Calls6,800
Errors35
12h Success Rate
Google
Recovering
Success Rate95.1%
Avg Latency920ms
Total Calls1,300
Errors64
12h Success Rate

+ Anthropic, Groq: healthy

Live provider health for support-copilot. Solwyn watches each provider and fails over automatically. Here, Google is Recovering, taking test calls until it proves healthy again.

The agent burning money has a name.

Per-project cost breakdown by model and time period. Real-time spend vs. budget. Trend indicators that show you where costs are accelerating before they become a problem. All powered by usage metadata. Prompt content is never sent to Solwyn.

Breakdown by model

OpenAIAnthropicGoogle
ModelShare of costRequestsTokensCost
gpt-6-solOpenAI
1,3924,214,284$650.00 · 47%
claude-opus-5-5Anthropic
7323,196,428$410.71 · 30%
gpt-6-lunaOpenAI
1,4648,964,284$171.43 · 12%
gemini-3.8-flashGoogle
3502,246,428$158.93 · 11%
Total · 4 models · 3 providers3,93818,621,424$1,391.07
Per-model cost attribution for nightly-batch: gpt-6-sol leads spend across 4 models and 3 providers.

Every channel on all paid plans

Text the founder. Page the on-call. Ping the Discord.

Email and SMS out of the box; Slack, Microsoft Teams, and PagerDuty for the eng team; Telegram and Discord for the community you run. Every channel ships on every paid plan. Configure a destination once and reuse it across all your projects.

Notification Channels

EmailAccount default

founder@acme.dev

Eng on-callSlack

Webhook ****XXXX

Test
Prod incidentsPagerDuty

Routing key ****R3y0

Test
Platform TeamsMicrosoft Teams

Webhook ****T3AM

Test
Dev DiscordDiscord

Webhook ****D1SC

Test
Ops TelegramTelegram

Bot token ****B0T9 · chat -1001234567890

Test
Add channel
Route alerts where your team already lives: every channel on every paid plan, Email on Free.

Your prompts never touch our servers.

Not by policy. By architecture.

Solwyn runs inside your process. Your LLM calls go straight to the provider, and we're never in the path.

All we ever receive

  • Token count
  • Model
  • Latency
  • Status
  • Project ID
  • Tags you attach

What never leaves your app

  • Prompts
  • Responses
  • System messages
  • Function calls
  • Conversation history
  • Tool arguments & payloads
  • Your provider API keys

Your prompts stay between you and your provider.

The full data inventoryEvery field the SDK sends, and every one it doesn't./security

Or read the open-source SDK (opens in a new tab) on GitHub.

Keep the tools that help you see. Add Solwyn for the local financial stop.

Observability platforms help teams trace, evaluate, and improve AI behavior. Gateways centralize routing, access, and policy. Solwyn solves a narrower job: a project budget check inside your application process, before the next provider request.

Observability and evals

Langfuse, LangSmith, Braintrust, Arize, Datadog

Best when: You need traces, datasets, evals, and quality monitoring. Keep it. Solwyn is not a replacement.

Hosted gateway

Portkey, Helicone, LiteLLM (hosted modes)

Best when: You want a managed central policy and routing layer. Model traffic traverses another managed control point.

Self-hosted gateway

LiteLLM, Portkey (self-hosted)

Best when: You want central control inside your own environment. Your team deploys, scales, and operates the gateway service.

Solwyn

Project budgets enforced in the application, while provider calls remain direct. Failover handled client-side. Only usage metadata reaches us. Prompt content is never sent to Solwyn.

Use Langfuse, LangSmith, Braintrust, Arize, or Datadog for deep observability. Use Solwyn when the application itself needs to say “no more model calls for this project.”

Right for you if agents, queue workers or batch jobs call models while nobody watches, and you want a stop that works without a hosted proxy.

Not the tool if you need tracing and evals, or one gateway for every team. Keep retry limits and timeouts either way.

Solwyn is one layer in a defense-in-depth design. Keep your retry limits, step limits, and timeouts. It works alongside your observability stack, not instead of it.

What we guarantee, and what we don'tThe exact edges of a hard cap: concurrency, outages, streaming./docs/budget-enforcement-semantics

Ten launch partners get founder-led setup and a 12-month price lock.

For teams with a production or staging workload that makes model calls unattended.

See what partners get

A loop won't wait for you to check the dashboard.

Wrap your client, set a cap, deploy. Three steps, and over-budget calls stop before they reach your provider. The free tier includes a hard cap: no card, no prompts transmitted.

Add a hard cap free

Still deciding? See exactly what a cap guarantees

30-day money-back guarantee on all paid plans. Refund policy