Starter kits
Four small projects you can copy and run. Each one uses UberLLM as the model
provider through https://api.uberllm.dev/v1, pins its dependency versions and
comes with a smoke test.
| Starter | What you get | Stack |
|---|---|---|
| Next.js chat app | A streaming chat app with a tool and typed output | Next.js, Vercel AI SDK |
| LangGraph agent | An agent that calls tools in a loop | Python, LangGraph |
| CrewAI crew | Two agents that research and write | Python, CrewAI |
| Agent CLI, no framework | A tool-calling agent in one file with no dependencies | TypeScript, Node |
Quick start
Copy a starter. Replace
tool-agent-cliwithnextjs-ai-sdk-chat,langgraph-agentorcrewai-crewfor the others:npx degit PSA-Team-source/uberllm/starters/tool-agent-cli my-agent cd my-agentCreate a key in Dashboard → Keys and put it in the starter's env file. Accounts start at $0, so add credit before the first call.
cp .env.example .env # .env.local for the Next.js starterRun it. Each starter's README has the exact commands:
Starter Install Run nextjs-ai-sdk-chatnpm installnpm run dev, then openhttp://localhost:3000langgraph-agentpip install -r requirements.txtpython agent.py "What would 3 million output tokens of openai/gpt-5.5 cost?"crewai-crewpip install -r requirements.txtpython crew.py openai/gpt-5.5 anthropic/claude-sonnet-5.5tool-agent-clinothing (Node 22.18 or newer) node agent.ts "What does this project do?"
The default model is deepseek/deepseek-v4-flash. Set UBERLLM_MODEL to any
chat model on uberllm.dev/models that takes tools.
What each starter shows
- Next.js chat app.
useChaton the page,streamTextin the route, one tool that looks up live model prices, and the provider set up withsupportsStructuredOutputs: true, which typed output (Output.object) needs. More on the SDK: Vercel AI SDK. - LangGraph agent. The standard agent graph (model → tools → model) with
ChatOpenAIpointed at UberLLM. More: LangChain. - CrewAI crew. Two agents on one model. The model id is written as
"openai/" + <UberLLM id>withcustom_openai=True, which is how CrewAI reaches an OpenAI-compatible endpoint. - Agent CLI. The whole tool loop in about 200 lines of plain
fetch: send the tools, run the calls the model asks for, send the results back, repeat. It prints token counts and the cost of each answer.
What every starter does
- The key only goes to UberLLM. The base URL is set in code, so an
OPENAI_BASE_URLin your shell is not used. - Exact versions. Dependencies are pinned, so the starter you copy is the one that was tested.
- A smoke test. Without a key it runs against a stand-in for the API. With
UBERLLM_API_KEYset it also makes a real call, which costs about a cent or less.
Each call costs what its provider charged, and a failed call is not billed. To cap what a key can spend, set a spend limit on it in Dashboard → Keys. See Pricing.
A live price badge for your README
Does your project support UberLLM? A badge shows the current price of the model you recommend. UberLLM serves it as an SVG, so it updates by itself when the price changes.
Markdown:
[](https://uberllm.dev/models/deepseek/deepseek-v4-flash?utm_source=embed&utm_medium=referral&utm_campaign=price-badge)
HTML:
<a href="https://uberllm.dev/models/deepseek/deepseek-v4-flash?utm_source=embed&utm_medium=referral&utm_campaign=price-badge"><img src="https://api.uberllm.dev/api/v1/public/badge/deepseek/deepseek-v4-flash.svg" alt="DeepSeek V4 Flash price on UberLLM"></a>
- Put any model id from uberllm.dev/models in both
addresses, for example
anthropic/claude-sonnet-5.5. - An id that does not exist answers 404, so check that the badge loads before you commit.
- For the numbers instead of a picture, the same prices are JSON at
https://api.uberllm.dev/api/v1/public/prices?model=<model id>. No key needed, and browsers can call it. See Price API and price badge. - To have your app listed on uberllm.dev/apps, send the two headers in Apps.
More examples
Single-file examples for more SDKs and languages (OpenAI and Anthropic SDKs, LlamaIndex, LiteLLM, Pydantic AI, Go, Rust, Java, .NET, curl, images, video, music and speech) are in the cookbook.