For AI-written bots · the execution boundary

Your AI wrote the bot. Titan is the cage.

Claude and ChatGPT will happily generate a trading bot with no position caps, no loss limits, and no idea what a market hour is. Titan runs outside your bot’s code — 26 safety checks between the signal and your broker that no hallucination can comment out. Works with Alpaca today.

Cage your bot Read the live run →
The structural problem

Ask an LLM to add risk checks to your bot and it will. Ask it next week to “fix the strategy — it’s missing entries” and it will edit the same file, and the risk checks are just lines of code in that file. Safety that lives where the strategy lives is safety the next prompt can remove.

The cage is a change of address: your bot POSTs signals to Titan instead of orders to your broker. There is no quantity field in the signal — sizing is computed inside the gate from limits you set. The checks run on Titan’s infrastructure; the cloud has no order-submission code at all (a static test fails the build if anyone adds one).

- api.submit_order(symbol=sym, qty=qty, side="buy", ...)
+ requests.post(".../api/public/v1/signal", headers={"X-Titan-Agent-Key": KEY},
+     json={"symbol": sym, "side": "BUY", "close": price, "atr": atr})
The live run

We ran a Claude-written momentum bot through the cage on June 12, 2026, during market hours. The cooldown caught its immediate re-entry, the live quote exposed its fantasy price, and its fourth trade of the day died at the operator’s cap. One of the receipts:

The full run — the generated code, every block with its trace ID, and a Deploy Gate replay showing what a loosened limit would have let through — is written up at /notes/cage.

What Titan does not claim

Titan proves what your strategy said, when it said it, and what the safety checks decided. It does not prove you made money.

Titan caps the blow-up. It does not make your strategy good. Titan does not hold funds, does not store broker credentials, and does not submit orders — execution stays in your hands, on your machine. Works with Alpaca today.