Charm · MCP · NinjaTrader 8

Connect Crush to NinjaTrader 8

Charm's open-source coding agent with a clean TUI. JSON config, type: "http", bearer auth.

See it in action
crush · crosstrade mcp · sim101

Crush calling CrossTrade MCP tools against a live NinjaTrader 8 account. Run this yourself in 5 minutes →

Why Crush

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.

Transport ~/.config/crush/crush.json with mcp.X.type: "http" (not "remote", not "streamable_http")
Highlights

What this combination unlocks

Beautiful TUI

Charm-quality terminal UI.

JSON config

Familiar shape, env var expansion via $VARNAME.

How it works

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.

Open setup instructions →
Example prompts

Copy-paste prompts that work today

Account check ListAccounts. One-line status per account.
FAQ

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.