Minute 0 to 2: account, project, key
Sign up at app.useweckr.com (email and password, no card). Immediately after, create a project and the dashboard shows its wk_ API key exactly once, so copy it then. Keys are 128 bit random and scoped to the one project; you can rotate them later from settings.
Minute 2 to 5: install and wrap
npm install @weckr/sdk # or: pip install weckr-sdkInitialize once at boot, then wrap your existing call:
import OpenAI from 'openai';
import { Weckr } from '@weckr/sdk';
const openai = new OpenAI();
const wk = new Weckr({
apiKey: process.env.WECKR_API_KEY!,
plans: { free: 0, pro: 29 }, // your plan names and monthly prices
});
// before: await openai.chat.completions.create({ model, messages })
// after:
const result = await wk.chat(openai, {
model: 'gpt-5.4-mini',
messages,
userId: user.id, // your user id, opaque, never an email
feature: 'ai-summary',
plan: user.plan,
});resultis the provider’s response, unchanged. Everything downstream keeps working. Anthropic, Gemini, and Kimi wrap identically; the provider is detected from the client instance, per the docs.
Minute 5 to 6: the first call lands
What actually appears, in order:
- The request row: model, provider, input and output token counts (including cached tokens), latency, your feature label, and a cost. The cost is recomputed on the server from current prices, the value your client could compute is ignored, so a bug or a bad actor client side cannot corrupt your numbers. The mechanics are in how Weckr calculates LLM cost.
- The Users page: your user id with month to date cost next to what that user pays on their plan, which is the margin view the whole product exists for.
- The Features page: cost by the label you passed, one row per feature as you add them.
Minutes 6 to 10: the two settings worth doing immediately
- Spending caps: per plan monthly budgets with block or downgrade as the action, enforced before the call. Deciding which action fits which plan is covered in caps or downgrade, the decision guide.
- Alerts: paste a Slack incoming webhook URL in settings and runaway detection (default: 50,000 tokens by one user inside 5 minutes) plus margin alerts arrive where you will actually see them, per AI cost alerts in Slack.
When we ran this whole path as release verification, the pipeline held under every feature we tested: costs matched the price table to the cent, caps blocked and downgraded exactly at their thresholds, and the loop detector fired on a synthetic runaway within the window. That test also caught two real bugs we then fixed and shipped, which is the level of scrutiny the path you just read has been through.
FAQ
How long does it take to integrate Weckr?
The critical path is about ten minutes: sign up, create a project, copy the wk_ key shown once, install the SDK, wrap your existing client in two lines, and make one call. The dashboard fills on the next refresh. The full verification we ran against production, covering logging, cost recompute, caps, and alerts, took an afternoon, but that was us testing every feature, not the integration itself.
What changes in my existing code?
Two lines plus a wrapper per call site. You construct a Weckr instance once at boot with your key and plan prices, then replace client calls with wk.chat(client, options), passing your existing model and messages plus userId, feature, and plan. The call returns the provider response unchanged, so nothing downstream of the call needs to change at all.
What appears in the dashboard after the first call?
The request lands in your project with its model, token counts, latency, and a cost recomputed server side from current prices. The Overview shows the spend, the Users page shows the user you attributed with cost against their plan price, and the Features page shows the feature label. One call is enough to see the whole pipeline working.
Do I need a credit card or a paid plan to try this?
No. The free tier covers 50,000 requests a month with no card, which is the entire early life of most products. And if you want to see the dashboard before integrating anything, the demo at useweckr.com/demo is all nine pages on seeded data with no signup.
Does the integration add latency to my LLM calls?
No. The wrapper makes your provider call exactly as before and returns it unchanged; the log is fire and forget after the response resolves. The optional cap check before a call is cached per user for 60 seconds and fails open on any network problem, so Weckr being slow or down can never slow or break your calls.
Keep reading
Ten minutes to your first margin number
If you want to see the end state before writing a line, the live demo is the full dashboard on seeded data, no signup. When you are ready, the free tier covers 50,000 requests a month: start with the docs, and the first real margin number is ten minutes away.