SymFynity
AI spend governance

Stop the bill before it arrives.

SymFynity governs what your AI agents spend — enforced inline, on every request and every streamed chunk. Not reported to you tomorrow morning.

symfynity · acct_123budget0%
 
The problem

Nothing crashes. That's what makes it expensive.

An agent loops. A tool call recurses into itself. No exception is thrown, no alarm fires, no pager goes off — because from the outside it looks exactly like work getting done. By the time the billing dashboard refreshes tomorrow morning, a bug has spent four figures.

Billing dashboards report hourly or daily. Rate limits count requests, not what they cost. Neither is looking at the thing that hurts, and both find out long after the money is gone. The only place to stop a runaway agentic loop is in the request path, while it's running.

How it works

Like a weir: it doesn't stop the river. It measures it, and holds the line.

SymFynity sits between your application and OpenAI or Anthropic, tracking a rolling token budget per tenant. For streaming responses it checks the budget beforeforwarding each chunk — so an over-budget chunk is never sent at all. For non-streaming, it reads the response's authoritative usage and returns 429rather than the body. A tenant already over budget is rejected before SymFynity even calls upstream.

Point a client at it. A base URL and one header — nothing else in your code changes.

from openai import OpenAI

client = OpenAI(
    base_url="https://symfynity.internal:8080/openai/v1",
    api_key="sk-...",  # your real key — SymFynity passes it straight through
    default_headers={"x-symfynity-tenant": "acct_123"},
)
The source

The enforcement point is yours, not ours.

SymFynity runs entirely in your infrastructure. It has no dependency on SymFynity Cloud: no account check, no phone-home, no degraded mode. Self-host it, never talk to us, and it still does its job in full.

It's source-available under BSL 1.1, not open source — the honest word matters here. Read it, audit it, fork it, run it in production for free, forever. The only thing the licence prohibits is reselling SymFynity as a hosted service that competes with us. And four years after each release, that version becomes Apache-2.0 automatically — so if we vanish or turn hostile, the code outlives us.

ComponentWhat it doesLicence
symfynityThe inline circuit breaker. Budgets, model and tool policy.BSL 1.1
symfynity-agentForwards usage metadata off the box. Optional.BSL 1.1
SymFynity CloudFleet aggregation, alerting, compliance reporting.Commercial
What leaves your network

Your prompts are not our business model.

Prompt content, response content, and tool call arguments never leave your own process.

The optional agent forwards metadata only: tenant ID, provider, model name, toolnames, token counts, timestamp, and outcome. That is the entire payload — SymFynity doesn't expose the rest in the first place, so there's nothing here to opt out of.

The agent's source is published specifically so you don't have to take our word for any of that. It's about 800 lines of Rust. Read it, build it, run your own — or point it at your own collector instead of ours.

The platform

SymFynity enforces on one instance. SymFynity Cloud sees the fleet.

FinOps

Token volume across every tenant and every instance, in one place — with alerting before budgets trip rather than a postmortem after.

Compliance

Which models and tools were blocked, when, and by which rule. The same enforcement point that stops runaway spend already knows the answer.

Pricing

SymFynity is free forever. Talk to us about the rest.

Self-hosting SymFynity costs nothing and always will — and it isn't crippled without us. SymFynity Cloud is for when you're running enough of it that you need the view across all of it. See how pricing works.