fusionkit
Tools

Cursor

Run the Cursor CLI or the Cursor IDE backed by a fused model panel.

fusionkit cursor launches the Cursor CLI (cursor-agent) with the fused panel as its model backend. Cursor connects through a bundled Cursorkit bridge that translates its protocol to the gateway's OpenAI Chat surface.

cd your-git-repo
fusionkit cursor

Anything after the tool name is forwarded to cursor-agent.

Prerequisites

  • A logged-in cursor-agent CLI on your PATH. Install it from cursor.com/cli. Cursorkit ships inside the npm package, so there is nothing else to check out.
  • Fusion v4 and RouteKit router config. Provider credential environment names live only in .routekit/router.yaml.

fusionkit doctor verifies both before you launch.

How the wiring works

The launcher starts the bundled Cursorkit bridge with its model backend pointed at the fusion gateway, then runs:

cursor-agent --endpoint http://127.0.0.1:<bridge-port> --model fusion-panel

The bridge exposes the default fused model and every other named ensemble.

The Cursor IDE (--ide)

To use fusion from the Cursor desktop app instead of the CLI:

fusionkit cursor --ide

This drives Cursorkit's desktop launcher, which starts a local TLS proxy and opens an isolated Cursor window on your repo, pre-wired to the gateway. Pick the fused model in the Agent model picker. Your normal Cursor profile, its settings, and its built-in models are untouched; the isolated window adds the fusion models additively. No public tunnel and no Settings changes are needed. Leave the fusionkit process running while you use the window.

Custom OpenAI endpoint (BYOK)

When you point Cursor's own Settings at a public RouteKit (or FusionKit) gateway instead of using --ide, set:

FieldValue
Override OpenAI Base URLhttps://<host>/v1/cursor
Model nameroutekit/<served-id>, optionally followed by a discovered reasoning effort such as :high
OpenAI API Keythe gateway bearer token

Cursor routes BYOK by model-name prefix (claude-* → Anthropic key, gemini-* → Google key). The /v1/cursor mirror namespaces every id under routekit/ so pasted names always use the OpenAI key and the base-URL override. The endpoint must be publicly reachable: Cursor's backend, not the desktop, makes the request. See Troubleshooting.

Cursor does not expose its reasoning-effort control for custom OpenAI-compatible endpoints. Without a suffix, RouteKit sends no explicit effort and the upstream model applies its provider default. For a model whose catalog metadata advertises low, medium, and high, RouteKit mirrors these as separate model names:

routekit/openai/gpt-5.5
routekit/openai/gpt-5.5:low
routekit/openai/gpt-5.5:medium
routekit/openai/gpt-5.5:high

Selecting the last name routes to openai/gpt-5.5 and sends reasoning_effort: "high". RouteKit only accepts efforts advertised for that model; the suffix is not forwarded as part of the provider model id.

Sub-agents

Cursor reads agent definitions from the repo's .cursor/agents/ directory, so the launcher scaffolds one Markdown file per named ensemble there. These are real, commit-worthy files; existing files are never overwritten, so your edits win. Pass --no-subagents to skip the scaffolding.

Caveats

  • Only the agent chat/plan panel uses the fused model. Composer, inline edit, apply, and autocomplete stay on Cursor's own backend.
  • Direct and single-model mode belongs to RouteKit; FusionKit has no --direct.