Python, TypeScript, or the terminal.
Two SDKs that wrap the client you already use, and a CLI for every call they can't reach. Prompt content is never sent to Solwyn from any of them.
Which one do I need?
- A Python app or agent
- Python SDK
- Node, an edge runtime, or the Vercel AI SDK
- TypeScript SDK
- A coding agent, a CI pipeline, or another language
- Solwyn CLI
They combine: an SDK in your app, the CLI for CI and coding agents, one project budget.
solwyn
Python SDK
Wraps OpenAI, Anthropic, Google, Bedrock and OpenAI-compatible clients. Sync and async.
pip install "solwyn[openai]"@solwyn/sdk
TypeScript SDK
Wraps OpenAI, Anthropic, Gemini, Bedrock and OpenAI-compatible clients, plus Vercel AI SDK middleware. ESM and CommonJS.
npm install @solwyn/sdkThe Solwyn CLI, for the calls no SDK wraps.
Coding agents
A local MCP server for Claude Code, Cursor and friends. The agent checks the budget before it makes a model call. Its tools can't change your budget.
CI
budget status --max-utilization 80exits 4 when the project is at or over your threshold.Any language
budget checkbefore the call,budget confirmafter.Runaway runs
runs stop <run>refuses every later budget check in that run.
Get started with the CLI (installation, login, and wiring it into your coding agent)
Inside the framework you already use.
Spend is attributed to the agent, chain or task that made it, and capped on the calls each line below names. The docs page for each recipe has the full list.
- OpenAI Agents SDKPythonCaps and per-agent attribution on Runner.run and run_streamed.
- LangChainPythonCaps and per-chain attribution on invoke and ainvoke.
- LangGraphPythonCaps and attribution across the graph on invoke.
- CrewAIPythonSpend per crew and per task. Caps on plain-text calls through the recipe's custom LLM.
- Vercel AI SDKTypeScriptCaps and attribution on generateText and streamText.