One command halts all order flow. Nothing passes until you re-arm it yourself.
BLOCK sell 1 RTY. kill_switch is armed.
PitBridge is a local-first bridge that lets AI agents work in NinjaTrader 8 without bypassing your risk rules.
Example decisions: ALLOW buy 2 MES, all rules pass. BLOCK buy 10 MES, size 10 exceeds max_contracts_per_order 2.
An AI agent that can place orders can also place the wrong one. A size typo, a stale context window, a tool call fired twice. On a prop evaluation account, one oversized order can end weeks of work. Telling the model to be careful is a prompt. A limit the software cannot cross is a control.
14:02:11 order.intent buy 2 MES agent=claude-desktop 14:02:11 guardrail.eval max_contracts_per_order ok (2 <= 2) 14:02:11 order.allow routed to NT8 Sim101 14:07:36 order.intent buy 10 MES agent=claude-desktop 14:07:36 guardrail.eval max_contracts_per_order fail (10 > 2) 14:07:36 order.block size 10 exceeds max_contracts_per_order 2
Example log with example config values.
The agent proposes. PitBridge checks. Only permitted orders reach the platform.
One daemon on your machine. The agent talks to localhost, never to a cloud order relay. If the daemon is down, no orders pass. That is the point.
Limits live in a config file the agent cannot edit. Every order is checked before it reaches NinjaTrader 8, and every block states its reason.
Rule presets modeled on common prop firm limits: daily loss, position size, trading hours. You set the values. PitBridge enforces them.
Your agent proposes an order over MCP or the local REST API. The daemon receives it on localhost, runs it through the guardrail engine, and only then talks to NinjaTrader 8. Allowed orders route to your account. Blocked orders stop at the engine and the reason is logged. PitBridge cloud never sits in this path. It can receive telemetry if you opt in. It can never carry an order.
Every rule is enforced in the daemon, outside the model. Each card shows a real decision format.
One command halts all order flow. Nothing passes until you re-arm it yourself.
BLOCK sell 1 RTY. kill_switch is armed.
Caps contracts per order. Oversized orders never reach the platform.
BLOCK buy 5 MNQ. limit is 2.
When your configured daily loss is hit, new orders are refused for the rest of the day.
BLOCK buy 1 ES. daily loss 512 >= limit 500.
Orders are accepted only inside the window you define.
BLOCK buy 1 CL at 03:12. window is 09:30-16:00.
The agent trades only the instruments you listed. Everything else is refused.
BLOCK buy 1 6E. not in allowlist.
Caps orders per minute so a looping agent cannot spray the book.
BLOCK order 7 in 60s. limit is 6.
Live accounts require your explicit confirmation. Sim is the default.
WARN live order held. confirm to send.
NinjaTrader runs on Windows. Your agent tooling probably lives on a Mac. PitBridge is built for that split: the daemon runs on macOS, Windows, or Linux, and pairs with a small add-on inside NinjaTrader 8 over your local network. One machine or two, the rule is the same: orders move only between machines you own.
The daemon and the guardrail engine go open source. Audit the decision logic, run it fully offline, and file an issue when we are wrong. Paid tiers add convenience. Safety is never behind a paywall.
Read the docsPitBridge never tells you what to trade. It has no opinion on the market.
No entries, no exits, no edge. You bring the strategy and the agent. PitBridge enforces the limits.
Guardrails cap damage. They do not create returns, and they cannot guarantee you pass an evaluation.
PitBridge enforces the limits you configure. Reading and following your prop firm's rules stays your job.
Orders never route through our servers. If pitbridge.com disappears tomorrow, your bridge keeps running.
Tell us your platform and we email you when your setup is supported. Nothing else.