Watch an agent get stopped.

$ npx @thsky-21/thskyshield-demo

An agent loops, overspends, and gets stopped — about four seconds, no signup, no API key.

What you'll see

The whole run, exactly as it prints.

$ npx @thsky-21/thskyshield-demo
Thskyshield — runaway agent demo
An agent gets stuck in a retry loop. Watch it get killed.
Budget ceiling $0.05
Iteration limit 50
Loop gate 20 identical prompts
Timeout 300s
Model gpt-4o (500 in / 200 out per step)
No account, no API key, no network — the governance engine
runs locally in this process. Prices are the real registry.
────────────────────────────────────────────────────────────────
step 01 allowed cost $0.003250 total $0.003250 █░░░░░░░░░░░ 7%
step 02 allowed cost $0.003250 total $0.006500 ██░░░░░░░░░░ 13%
↳ loop detector: identical prompt ×2 of 20
step 03 allowed cost $0.003250 total $0.009750 ██░░░░░░░░░░ 20%
↳ loop detector: identical prompt ×3 of 20
step 04 allowed cost $0.003250 total $0.013000 ███░░░░░░░░░ 26%
↳ loop detector: identical prompt ×4 of 20
step 05 allowed cost $0.003250 total $0.016250 ████░░░░░░░░ 33%
↳ loop detector: identical prompt ×5 of 20
step 06 allowed cost $0.003250 total $0.019500 █████░░░░░░░ 39%
↳ loop detector: identical prompt ×6 of 20
step 07 allowed cost $0.003250 total $0.022750 █████░░░░░░░ 46%
↳ loop detector: identical prompt ×7 of 20
step 08 allowed cost $0.003250 total $0.026000 ██████░░░░░░ 52%
↳ loop detector: identical prompt ×8 of 20
step 09 allowed cost $0.003250 total $0.029250 ███████░░░░░ 59%
↳ loop detector: identical prompt ×9 of 20
step 10 allowed cost $0.003250 total $0.032500 ████████░░░░ 65%
↳ loop detector: identical prompt ×10 of 20
step 11 allowed cost $0.003250 total $0.035750 █████████░░░ 72%
↳ loop detector: identical prompt ×11 of 20
step 12 allowed cost $0.003250 total $0.039000 █████████░░░ 78%
↳ loop detector: identical prompt ×12 of 20
step 13 allowed cost $0.003250 total $0.042250 ██████████░░ 85%
↳ loop detector: identical prompt ×13 of 20
step 14 allowed cost $0.003250 total $0.045500 ███████████░ 91%
↳ loop detector: identical prompt ×14 of 20
step 15 allowed cost $0.003250 total $0.048750 ████████████ 98%
↳ loop detector: identical prompt ×15 of 20
────────────────────────────────────────────────────────────────
KILLED step 16budget ceiling reached
The step was denied before the model was called. $0.048750 of $0.05 spent — the ceiling held.
Total spend $0.048750 of $0.05
Steps allowed 15
Killed by budget
Time to kill 3524 ms from run start
Prevented unbounded spend — at $0.003250 per step, forever
────────────────────────────────────────────────────────────────
This agent asked the same question 15 times and never got
anywhere. Nothing in it was going to stop — no retry cap, no
convergence check, no notion of its own cost. The ceiling was
the only thing that did.
See this for your own agents — thskyshield.com/start (free, no infra).

A real capture of the published package, not a mock-up. The model call is simulated so the demo needs no LLM key, but the prices come from the same registry this product bills against and the decision around each call is the real one. Your own run will differ in one place only: the milliseconds.

What the four seconds prove.

Cost is tracked per step

Every step is priced before it runs — $0.003250 for 500 in / 200 out on gpt-4o, from the same registry that prices production runs. You watch the total climb line by line, from $0.003250 at step 01 to $0.048750 by step 15.

The loop is caught by prompt fingerprint

The prompt is hashed locally — the text itself is never stored or sent. The same fingerprint comes back every step, and the counter climbs from ×2 at step 02 to ×15 at step 15, against a gate of 20. It never reaches the gate: the money runs out first, which is what a real runaway usually looks like.

The run is stopped before the next call fires

Step 16 was denied before the model was called — not logged after the fact. The run ended at $0.048750 against a $0.05 ceiling. Under it, not over it, because the step that would have crossed the line never ran.

Now point it at your own agents.

That was a local simulation. Point it at your own agents and the same engine runs in observe mode — it records what it would do and totals what that would have saved, without touching your runs.

Already ran it? Wrap your own loop in about five minutes →