Set a limit. Mean it.
Before a call goes out, Lockpin reserves its worst-case cost. If it won’t fit, it won’t run. Even when requests arrive at once.
Give every task a budget that is checked before each call. Cut stale context, catch repeated work, and stay in control.
Your models. Your machine. No extra AI calls.One log-reading task, with context trimming off and on.
Without trimming, the next call’s worst-case cost exceeded the remaining budget. Lockpin blocked it before it reached the provider.
All 30 steps finished under the same $0.20 cap.
Interactive illustration using step 25 of the supplied run.
Findings from the recorded replay supplied with this page.
STEP 07STEP 10STEP 12A command example, not a live project connection. Snapshots stay separate from your Git history.
Recorded on Muse Spark 1.3 (Standard), October 19, 2026. Same task. Same $0.20 cap.
Replay data supplied with this page; results vary by agent and task.
One layer of control. The models you already use.
Between your agent and its model API, Lockpin keeps every task accountable to its budget and its work.
Before a call goes out, Lockpin reserves its worst-case cost. If it won’t fit, it won’t run. Even when requests arrive at once.
Swap old tool output for a small, recoverable note. Keep recent results, and trim only when savings outweigh the prompt cache you break.
See deleted files, undone changes, and checked-off plans with no matching work. Every finding connects to a step and its cost.
STEP 07STEP 10Give each developer or agent a key with daily, weekly, or monthly budgets.
Group spend with tags. Send Slack or webhook alerts at 80% and when a call is blocked.
Follow spend, cache hits, trimmed tokens, and added latency in the live meter.
First three figures describe the single supplied run, not an average or a guarantee. Exact tokens omitted: 658,854.
Point your agent at Lockpin, name the task, and set its budget. Your provider’s SDK, streaming, and tool calls stay familiar.
from openai import OpenAI
client = OpenAI(
# was https://api.meta.ai/v1
base_url="http://127.0.0.1:8787/v1",
api_key=MODEL_API_KEY,
default_headers={
"X-Lockpin-Task": "fix-login-bug",
"X-Lockpin-Budget-Usd": "0.50",
},
)
import OpenAI from "openai";
const client = new OpenAI({
// was https://api.meta.ai/v1
baseURL: "http://127.0.0.1:8787/v1",
apiKey: process.env.MODEL_API_KEY,
defaultHeaders: {
"X-Lockpin-Task": "fix-login-bug",
"X-Lockpin-Budget-Usd": "0.50",
},
});
curl http://127.0.0.1:8787/v1/responses \
-H "Authorization: Bearer $MODEL_API_KEY" \
-H "X-Lockpin-Task: fix-login-bug" \
-H "X-Lockpin-Budget-Usd: 0.50" \
-H "Content-Type: application/json" \
-d '{"model": "muse-spark-1.3", "input": "Fix the login bug"}'Lockpin runs where your agent runs and connects directly to your model provider. Your code and conversations never pass through us.
Meta, OpenAI, Anthropic, Google Gemini, xAI, DeepSeek, Mistral, Groq, Together, Fireworks and OpenRouter, with prices for 56 models built in, including cached input, cache writes and long-context rates. Add any other model, or an OpenAI-compatible server of your own, with one small file.
The spend cap never does. Trimming and project notes do, so both are off unless you turn them on. Trimming can also be switched per request.
Hardly. Far from the cap, Lockpin sizes each call itself and sends it straight on. Only near the cap does it ask the provider for an exact input count, where the provider offers one. The live meter shows how many milliseconds Lockpin adds to each call.
The call that would go over is stopped before it reaches the provider. Your agent gets HTTP 402 with the numbers, so it can save its work and stop cleanly. You can raise the budget with one header.
No. All of its logic is plain arithmetic and file snapshots, so it adds nothing to your bill.
Let your agents do their thing.
Give every task a limit you can live with.