Open source · MIT

Your Cursor models,
in OpenCode.

Model Ferry is a loopback-only bridge that syncs Cursor's full model catalog into OpenCode as native variants, including Cursor's reasoning, effort, context, and fast presets.

install
# install the bridge, sign in, and launch it
curl -fsSL https://ferry.designxdevelop.com/install.sh | bash

Uses your Cursor subscription. Cursor usage limits apply. Then pick the Cursor provider in OpenCode and choose a model.

Features

Cursor's catalog, native in OpenCode.

Point it at your Cursor account. Models and variants show up in the picker.

Full catalog sync

Every model and parameter combination available to your Cursor account, discovered through the Cursor Agent SDK and refreshed on a schedule.

Native variants

Cursor's exact thinking, reasoning, effort, context, and fast presets appear as OpenCode variants, switchable from the picker or --variant.

Zero-credential setup

A one-time browser sign-in mints a 90-day key. The bridge renews it automatically before it lapses, so you never handle API keys.

Background launch agent

Starts at login via launchd, so you never see a Keychain unlock prompt after a restart.

Loopback only

The HTTP API binds to 127.0.0.1 and requires a local bearer token. Nothing else on your network can reach it.

Function tools

The bridge exposes OpenCode function tools to Cursor agents through a temporary MCP server and returns the results to OpenCode for execution.

How it works

Up and running in three steps.

01

Install

One command (or a manual clone plus npm install and npm run setup). The bridge installs a launchd agent and adds a cursorapi provider to OpenCode. Your default model stays untouched.

02

Sign in

A browser opens to Cursor. Complete the sign-in and Model Ferry mints a 90-day API key that renews automatically before it expires. Set CURSOR_API_KEY to skip the browser.

03

Pick Cursor in OpenCode

Choose the Cursor provider, select any model, and use the variant picker to switch between thinking, effort, and fast presets.

Install

One command to your first run.

terminal
# install the bridge, sign in, and launch it
curl -fsSL https://ferry.designxdevelop.com/install.sh | bash

Clones the repo to ~/.modelferry, installs dependencies, and runs setup. Setup signs you in with Cursor and adds the cursorapi provider to OpenCode. Your default model stays untouched.

Uses your Cursor subscriptionEvery request runs through your own Cursor account. Your Cursor usage limits, model eligibility, and account terms apply exactly as they would in the Cursor app.

Manual setup

terminal
# clone, install, and sign in
git clone https://github.com/designxdevelop/model-ferry.git
cd model-ferry
npm install
npm run setup
usage
opencode run -m cursorapi/composer-2.5 \
  --variant high-standard "Explain this repository"

Works with the Cursor Agent SDK and the standard OpenAI-compatible chat API.Read the README for the full CLI and catalog-refresh commands.

FAQ

Frequently asked questions.

Do I need a Cursor subscription?

The catalog reflects what your Cursor account can use. Cursor subscription limits, model eligibility, and usage accounting still apply. Model Ferry only makes those models selectable in OpenCode.

Where is my Cursor credential stored?

Model Ferry stores nothing. The browser sign-in mints a 90-day API key that the Cursor SDK keeps in ~/.cursor/sdk/auth.json, readable only by your user. It auto-renews before expiry. Set CURSOR_API_KEY to skip the browser flow.

Is Model Ferry affiliated with Cursor or Anysphere?

No. Model Ferry is an independent open-source project built on Cursor's public Agent SDK. Cursor is a trademark of Anysphere, Inc., and all trademarks belong to their respective owners.

Which clients does it support?

OpenCode is the reference client, but the bridge speaks the standard OpenAI-compatible chat API over a loopback HTTP server, so any local client that supports custom providers can point at it.

Is anything sent off my machine?

Only your model prompts. As with any Cursor agent run, prompts and tool activity are sent to Cursor's servers (Anysphere) for model inference. The Cursor SDK client and agent loop run locally. The bridge has no telemetry or analytics, and the local HTTP API binds to 127.0.0.1.

What if the default port is taken?

The bridge scans the next 19 ports, binds the first free one, and records the resolved port in its config so the OpenCode provider, onboarding page, and CLI all agree.

Bring your Cursor models to OpenCode.

Open source, MIT licensed. The bridge runs on your machine, and prompts go to Cursor for model inference.