Connect Crush to NinjaTrader 8
Charm's open-source coding agent with a clean TUI. JSON config, type: "http", bearer auth.
Crush calling CrossTrade MCP tools against a live NinjaTrader 8 account. Run this yourself in 5 minutes →
Why pair Crush with CrossTrade MCP
Crush is Charm's entry in the CLI coding agent space. Clean TUI, multi-model, JSON config. No native OAuth — use a bearer token in headers.
~/.config/crush/crush.json with mcp.X.type: "http" (not "remote", not "streamable_http") What this combination unlocks
Beautiful TUI
Charm-quality terminal UI.
JSON config
Familiar shape, env var expansion via $VARNAME.
The connection chain
Crush │ OAuth-authorized tool call ▼ CrossTrade hosted MCP server (https://app.crosstrade.io/v1/api/mcp) │ ▼ CrossTrade Add-On running inside NT8 on your PC │ ▼ NinjaTrader 8
One URL, one consent screen, one read-only first prompt. The MCP server is hosted by CrossTrade; you don't run anything beyond NT8 + the CrossTrade Add-On.
Ready to set up Crush?
The full step-by-step setup lives on a dedicated page. Verified against Charm's current docs.
Copy-paste prompts that work today
Also consider
Common questions
Is Crush a good fit for trading?
Yes for users who appreciate a polished TUI and don't mind bearer-only auth. Crush is Charm's open-source coding agent — clean terminal UI, multi-model routing, JSON config. Good fit for terminal-first traders who want a CLI agent that looks pleasant.
Do I need Crush, or will OpenCode / Goose / Claude Code work?
All four work for CrossTrade. Crush's pitch is the Charm-quality TUI (visual polish). OpenCode wins on native OAuth + DCR. Goose wins on MCP-first design + safety defaults. Pick Crush if the UI matters to you.
Cost?
Free (FSL-1.1-MIT license). You pay the model provider directly. Crush has built-in integrations with subscription plans like Synthetic, GLM Coding Plan, Kimi Code, MiniMax Coding Plan.
Mac, Windows, and Linux?
All three. Install via brew, npm, go install, AUR, winget, or scoop.
Why type "http" instead of "remote" or "streamable_http"?
Crush's transport enum is "stdio", "http", "sse" — not OpenCode's "remote" or Goose's "streamable_http". Naming inconsistency across CLI agents is the #1 copy-paste error. Stick to "http" for Crush.
Does Crush support OAuth for remote MCP?
Not natively documented. Use a bearer token in headers. Get the token via another OAuth-capable client (Claude Code, OpenCode) and paste into Crush's config.
Crush vs OpenCode?
Both are multi-model CLI agents. Crush has the prettier UI (Charm's signature). OpenCode has native OAuth and broader provider coverage (75+ via Models.dev). If aesthetics matter, Crush. If OAuth and provider breadth matter, OpenCode.
Can I version-control my Crush trading config?
Yes — put .crush.json or crush.json in your strategies repo. Crush checks these before the global ~/.config/crush/crush.json. Useful for team-shared MCP server lists or strategy-specific tool restrictions.
Connect Crush to NinjaTrader 8 in 5 minutes
Free Sim101 walkthrough. Read-only first. Upgrade scope only when a real workflow needs it.