Documentation / Getting started
HELLO, POSSIBILITY.

Build something
without the limits.

One API key. Your choice of six models. Familiar APIs that fit right into your workflow.

Account creation and API key management are open. Model requests require an active membership. Open Membership to check checkout availability. Enabled checkout accepts USDT on BNB Smart Chain (BEP20); access begins after server verification, never from a return link.

Choose your endpoint

FormatEndpointAuthentication
Chat CompletionsPOST /v1/chat/completionsBearer API key
Stateless ResponsesPOST /v1/responsesBearer API key
MessagesPOST /v1/messagesx-api-key or Bearer
Model catalogGET /v1/modelsBearer API key

One address for the website and API.

The website, documentation and dashboard use https://manylane.chat. Connect API clients to the same host using the base for their protocol below. No separate API subdomain is required.

OpenAI-compatible base · Chat Completions and Responses
https://manylane.chat/v1
Anthropic-compatible base · Claude Code and Messages SDK
https://manylane.chat

The Messages SDK adds /v1/messages itself: its base must not end in /v1. Direct HTTP requests use the full endpoints listed above. The tool guides below already use the correct base for each client, including Cursor aliases.

Moving from the original Workers address? Change only your client's base URL; your API keys, account code and membership stay the same. The original Workers API address is retained for existing integrations. Website sessions are specific to each hostname, so sign in on this domain with your saved account code rather than creating another account. Download any conversation you want to keep before leaving an existing Playground tab.

One account code. Separate API keys.

Your account code signs you into the website. It is never accepted as an API key. In API keys, create a named key for each application. The full key is displayed once; copy it into your application's secret manager.

.env — server-side only
MANYLANE_API_KEY=vl_sk_your_generated_secret_key
Never put API keys in browser JavaScript, a public repository, a URL, or an error report. The server rejects revoked keys immediately. You can keep up to five active keys per account.

The website uses an HttpOnly session cookie. API routes use explicit API keys only, so a browser session cannot accidentally authorize third-party API requests.

YOUR WORKFLOW. YOUR MODELS.

Connect your favorite tools.

Setup guides for 13 tools, including separate OpenCode v1 and v2 recipes. Each guide identifies the configuration file or settings screen for Windows, macOS and Linux. Choose your model and terminal before copying. Cursor uses its dedicated Manylane aliases below.

Source-checked · September 16, 2026

Based on the official sources linked in each guide. These clients have not all been installed and tested against Manylane. Conditional guides identify narrower support; a valid API response does not certify every agent feature.

OpenAI-compatible basehttps://manylane.chat/v1
Anthropic SDK / Claude Code basehttps://manylane.chat
Use a key from API keys, never your VL- account code. An active membership is required for inference. Merge examples with existing settings; do not overwrite other providers or weaken your client’s permissions.
For terminal tools: set your API key privately

This prompt keeps the key out of the command text. The environment variable lasts for this terminal session and is inherited by programs launched from it. GUI credential fields require the actual key, not its variable name. Never share secret-bearing settings or logs.

Bash · private key prompt
read -r -s -p "Manylane API key: " MANYLANE_API_KEYprintf "\n"export MANYLANE_API_KEY
Finding files on Windows, macOS, Linux and WSL

Windows: paste the shown %USERPROFILE% or %APPDATA% path into File Explorer, not PowerShell. In PowerShell use $env:USERPROFILE or $env:APPDATA. Show file extensions and avoid saving settings.json.txt. Create a missing parent folder, then open/create the named file in a plain-text editor.

macOS: Finder → Go → Go to Folder (Cmd+Shift+G) accepts the ~/ paths below. Use a code editor or plain-text mode, not rich text. Choose Zsh for a zsh terminal; Bash’s read -p prompt is not portable to zsh. Linux: ~ is your home directory; show hidden files to find dot-directories and edit the named file.

WSL is a separate Linux installation: use its Linux home, shell and environment when the tool runs there, not the Windows file by default. The same applies to SSH, containers and remote editor extensions. Configure the machine/process that actually sends inference requests.

Back up existing settings privately and merge only the shown fields. Replace inert placeholders locally; preserve security settings. Do not paste private files into online validators or commit credentials. Terminal variables last for that session; a running desktop app or server does not automatically inherit them. Restart the relevant process after changing its environment.

14 guides
Claude CodeCLI · Messages · Conditional

Connect Claude Code

settings.json · Claude Code CLI user settings

Windows
%USERPROFILE%\.claude\settings.json
macOS
~/.claude/settings.json
Linux / WSL
~/.claude/settings.json

Scope & overrides. User-wide on this machine. CLAUDE_CONFIG_DIR changes the .claude directory. A private project override is <project>/.claude/settings.local.json; ignore it in Git before adding credentials. This is not ~/.claude.json, CLAUDE.md, or your editor’s settings.json.

Open & merge. Open or create the parent folder and settings.json in a plain-text editor. Merge the env object, retaining one value per key and preserving permissions, hooks and other settings. Use valid JSON without comments or trailing commas.

API key. Replace YOUR_MANYLANE_API_KEY privately: this example stores a plaintext token. JSON does not expand $MANYLANE_API_KEY. To keep the token outside the file, omit ANTHROPIC_AUTH_TOKEN from env and export it in the launching terminal instead. File env values take precedence over shell values.

Apply changes. Save, start a new claude session and check /status. VS Code needs its separate user-settings snippet below for the extension’s login check. The desktop app uses third-party inference configuration instead of this CLI gateway file.

  1. Set MANYLANE_API_KEY in this terminal using the private-key prompt above. Apply the gateway variables below, then launch the installed Claude Code CLI from the same terminal.
  2. Run /status and confirm the Manylane base URL and gateway credential. Choose the exact model ID with /model; keep helper and subagent models on the Manylane catalog.
  3. For persistent CLI setup, merge the settings.json example below at the user path shown above and replace the token privately. It applies without re-entering all routing variables each session. Choose either persistent settings or terminal variables; conflicting settings-file values win.
  4. For the Claude Code VS Code extension, open the command palette (Ctrl+Shift+P on Windows/Linux, Cmd+Shift+P on macOS), then Preferences: Open User Settings (JSON). Merge the separate claudeCode.environmentVariables example, not the CLI env object. Default VS Code paths: Windows %APPDATA%\Code\User\settings.json; macOS ~/Library/Application Support/Code/User/settings.json; Linux ~/.config/Code/User/settings.json. Profiles/remote windows can use different files: the palette opens the active one.
Claude Code · Bash · session-only alternative
export ANTHROPIC_BASE_URL="https://manylane.chat"export ANTHROPIC_AUTH_TOKEN="$MANYLANE_API_KEY"export ANTHROPIC_MODEL="qwen3.8-max-0902"export ANTHROPIC_DEFAULT_SONNET_MODEL="qwen3.8-max-0902"export ANTHROPIC_DEFAULT_OPUS_MODEL="qwen3.8-max-0902"export ANTHROPIC_DEFAULT_HAIKU_MODEL="qwen3.8-flash"export CLAUDE_CODE_SUBAGENT_MODEL="qwen3.8-max-0902"claude --model qwen3.8-max-0902
settings.json · persistent Claude Code CLI setup
{  "env": {    "ANTHROPIC_BASE_URL": "https://manylane.chat",    "ANTHROPIC_AUTH_TOKEN": "YOUR_MANYLANE_API_KEY",    "ANTHROPIC_MODEL": "qwen3.8-max-0902",    "ANTHROPIC_DEFAULT_SONNET_MODEL": "qwen3.8-max-0902",    "ANTHROPIC_DEFAULT_OPUS_MODEL": "qwen3.8-max-0902",    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "qwen3.8-flash",    "CLAUDE_CODE_SUBAGENT_MODEL": "qwen3.8-max-0902"  }}
VS Code user settings.json · extension only, not the CLI file
{  "claudeCode.environmentVariables": [    {      "name": "ANTHROPIC_BASE_URL",      "value": "https://manylane.chat"    },    {      "name": "ANTHROPIC_AUTH_TOKEN",      "value": "YOUR_MANYLANE_API_KEY"    },    {      "name": "ANTHROPIC_MODEL",      "value": "qwen3.8-max-0902"    },    {      "name": "ANTHROPIC_DEFAULT_SONNET_MODEL",      "value": "qwen3.8-max-0902"    },    {      "name": "ANTHROPIC_DEFAULT_OPUS_MODEL",      "value": "qwen3.8-max-0902"    },    {      "name": "ANTHROPIC_DEFAULT_HAIKU_MODEL",      "value": "qwen3.8-flash"    },    {      "name": "CLAUDE_CODE_SUBAGENT_MODEL",      "value": "qwen3.8-max-0902"    }  ]}
Compatibility notes

Conditional compatibility, not a Claude subscription. Manylane serves its six models, not Claude models. The base URL must NOT end in /v1. Beta tools, token-counting, advanced thinking and hosted Claude features are not guaranteed; /v1/messages/count_tokens is not implemented. A successful basic Messages request does not certify the entire Claude Code agent workflow.

Codex CLICLI · Responses · Conditional

Connect Codex CLI

config.toml · Codex user configuration

Windows
%USERPROFILE%\.codex\config.toml
macOS
~/.codex/config.toml
Linux / WSL
~/.codex/config.toml

Scope & overrides. User-wide. If CODEX_HOME is set, edit config.toml in that directory. Put provider and authentication settings here, not <project>/.codex/config.toml: current Codex ignores project-local provider keys.

Open & merge. Open or create config.toml in a plain-text editor. Merge root keys such as model and model_provider before the first [table]. Merge [model_providers.manylane] once. Avoid duplicate keys/tables and preserve sandbox, approval and other provider settings.

API key. env_key names MANYLANE_API_KEY, not the secret. Set that variable in the process launching Codex. No key belongs in this TOML example; do not edit auth.json by hand.

Apply changes. Start a new Codex CLI session from the terminal containing the variable; confirm provider/model with /status. Already-running IDE or desktop processes do not inherit a new terminal export.

  1. Set MANYLANE_API_KEY in the terminal. Merge this TOML into your user-level ~/.codex/config.toml (Windows: %USERPROFILE%\.codex\config.toml). Preserve your existing sandbox and approval settings.
  2. Start a new Codex CLI session from that terminal. Confirm Manylane and the exact selected model in /status before sending a small request.
  3. The provider configuration uses the Responses wire format. Manylane forces stateless responses; a client must resend history rather than depend on stored response IDs.
~/.codex/config.toml · merge with existing settings
model = "qwen3.8-max-0902"model_provider = "manylane"web_search = "disabled"model_supports_reasoning_summaries = false[model_providers.manylane]name = "Manylane"base_url = "https://manylane.chat/v1"env_key = "MANYLANE_API_KEY"wire_api = "responses"requires_openai_auth = falsesupports_websockets = false
Start a new CLI session
codex
Compatibility notes

Conditional compatibility: custom-provider configuration is documented, but current Codex builds can require capabilities beyond this gateway. Manylane accepts function tools only, not custom/freeform apply_patch or hosted tools, WebSockets, /responses/compact, or previous_response_id. Unsupported requests return an error; no undocumented flag is claimed to make every Codex workflow work. Use a Chat Completions client when its workflow needs fewer features.

OMP · Oh My PiCLI · Chat Completions

Connect OMP · Oh My Pi

models.yml · OMP model registry

Windows
%USERPROFILE%\.omp\agent\models.yml
macOS
~/.omp/agent/models.yml
Linux / WSL
~/.omp/agent/models.yml

Scope & overrides. User-level agent configuration. models.yml takes precedence over models.yaml: edit the active file rather than maintaining both. A custom agent/config directory must follow your actual OMP invocation.

Open & merge. Open or create models.yml. Merge manylane under the existing providers mapping. Use spaces for YAML indentation, not tabs. Preserve other providers; do not create a second providers key.

API key. apiKey: MANYLANE_API_KEY uses OMP’s documented environment-name lookup. Set the variable before startup; otherwise the name can be interpreted as a literal credential.

Apply changes. Save, restart omp from the same terminal and choose manylane/model explicitly. Check /model and any helper model roles.

  1. Set MANYLANE_API_KEY. Merge the YAML into ~/.omp/agent/models.yml (Windows: %USERPROFILE%\.omp\agent\models.yml). The current default is YAML, not models.json.
  2. Start OMP with the explicit manylane/model selector below. Run /model to inspect the provider; set any small/background model roles to a Manylane model too.
  3. The apiKey value is an environment-variable name. Ensure it is set, otherwise OMP may treat the name itself as a literal credential.
~/.omp/agent/models.yml
providers:  manylane:    baseUrl: https://manylane.chat/v1    apiKey: MANYLANE_API_KEY    api: openai-completions    authHeader: true    remoteCompaction:      enabled: false    models:      - id: qwen3.8-max-0902        name: Manylane qwen3.8-max-0902        input: [text]        reasoning: false        cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }
Select the exact provider/model
omp --model manylane/qwen3.8-max-0902
Compatibility notes

The zero prices disable misleading per-token estimates; membership is still paid. No context-window size or advanced capability is invented here. Add another catalog ID as a new models entry when needed. Do not select pi-native transport or remote compaction: those routes are not Manylane APIs.

OpenCode · v1 configCLI · Chat Completions

Connect OpenCode · v1 config

opencode.json / opencode.jsonc · OpenCode configuration

Windows
%USERPROFILE%\.config\opencode\opencode.jsonc
macOS
~/.config/opencode/opencode.jsonc
Linux / WSL
~/.config/opencode/opencode.jsonc

Scope & overrides. Default user-wide home-relative location. A project-root opencode.json or opencode.jsonc can override it. Edit your active file rather than maintaining both extensions. Custom paths and managed settings can take precedence.

Open & merge. Open or create the file in a plain-text editor and merge the provider/npm/options recipe into the existing object. Do not mix v1 and v2 schemas. JSONC permits comments; JSON does not. In v1, OPENCODE_CONFIG can select another file; follow the installed version’s guide for overrides.

API key. Use /connect with provider ID manylane and paste the key into its prompt. The saved auth.json is application-managed secret storage, not the provider config. Never commit it.

Apply changes. Restart the OpenCode process sending model requests, including a separately running server. Select manylane/model in a new session.

  1. Check your OpenCode version first. This recipe uses the v1 provider/npm/options schema; do not mix it with the v2 recipe below.
  2. Merge this configuration into opencode.json. In OpenCode, run /connect, choose Other, use provider ID manylane, and enter your Manylane API key.
  3. Run /models and choose manylane plus an exact catalog model. Use the same provider for small/background tasks where your client exposes that setting.
opencode.json · v1
{  "$schema": "https://opencode.ai/config.json",  "model": "manylane/qwen3.8-max-0902",  "provider": {    "manylane": {      "npm": "@ai-sdk/openai-compatible",      "name": "Manylane",      "options": {        "baseURL": "https://manylane.chat/v1"      },      "models": {        "kimi-k3": {          "name": "Kimi K3"        },        "qwen3.8-max-0902": {          "name": "Qwen 3.8 Max"        },        "qwen3.8-flash": {          "name": "Qwen 3.8 Flash"        },        "deepseek-v4-pro-0813": {          "name": "DeepSeek V4 Pro"        },        "deepseek-v4.1-flash": {          "name": "DeepSeek V4.1 Flash"        },        "glm-5.3": {          "name": "GLM 5.3"        }      }    }  }}
Compatibility notes

This adapter uses /chat/completions. The @ai-sdk/openai adapter can use a different wire format. Credentials saved by /connect are local secrets; do not commit auth.json. Agent and native tool behavior still depends on the selected model.

OpenCode · v2 configCLI · Chat Completions

Connect OpenCode · v2 config

opencode.json / opencode.jsonc · OpenCode configuration

Windows
%USERPROFILE%\.config\opencode\opencode.jsonc
macOS
~/.config/opencode/opencode.jsonc
Linux / WSL
~/.config/opencode/opencode.jsonc

Scope & overrides. Default user-wide home-relative location. A project-root opencode.json or opencode.jsonc can override it. Edit your active file rather than maintaining both extensions. Custom paths and managed settings can take precedence.

Open & merge. Open or create the file in a plain-text editor and merge the providers/package/settings recipe into the existing object. Do not mix v1 and v2 schemas. JSONC permits comments; JSON does not. In v1, OPENCODE_CONFIG can select another file; follow the installed version’s guide for overrides.

API key. The env array names MANYLANE_API_KEY. Set it in the server process environment. A desktop frontend does not transfer a variable from an unrelated terminal; no shell expansion in JSON is assumed.

Apply changes. Restart the OpenCode process sending model requests, including a separately running server. Select manylane/model in a new session.

  1. Use this only with a build using the documented v2 providers/package/settings schema. Set MANYLANE_API_KEY in the environment of the OpenCode server process.
  2. Merge into opencode.jsonc, then restart that process and select manylane with the chosen catalog ID.
  3. A desktop frontend and a separately running server may not share terminal variables. Configure the secret where the requests originate.
opencode.jsonc · v2
{  "$schema": "https://opencode.ai/config.json",  "model": "manylane/qwen3.8-max-0902",  "providers": {    "manylane": {      "env": [        "MANYLANE_API_KEY"      ],      "package": "@opencode/ai/providers/openai-compatible",      "settings": {        "baseURL": "https://manylane.chat/v1"      },      "models": {        "kimi-k3": {          "modelID": "kimi-k3"        },        "qwen3.8-max-0902": {          "modelID": "qwen3.8-max-0902"        },        "qwen3.8-flash": {          "modelID": "qwen3.8-flash"        },        "deepseek-v4-pro-0813": {          "modelID": "deepseek-v4-pro-0813"        },        "deepseek-v4.1-flash": {          "modelID": "deepseek-v4.1-flash"        },        "glm-5.3": {          "modelID": "glm-5.3"        }      }    }  }}
Compatibility notes

v1 fields are not interchangeable with v2 fields. Begin with text and standard function tools; do not route native hosted tools, embedding models, or remote Responses compaction to Manylane.

ClineEditor · Chat Completions

Connect Cline

Where to configure · application-managed provider settings

Windows
VS Code → Cline sidebar → Settings → API Provider → OpenAI Compatible
macOS
VS Code → Cline sidebar → Settings → API Provider → OpenAI Compatible
Linux / WSL
VS Code → Cline sidebar → Settings → API Provider → OpenAI Compatible

Scope & overrides. Per editor/profile. Configure Plan and Act when they use separate settings. In remote/WSL workspaces configure the extension instance used there.

Open & merge. Use this provider form rather than inventing a settings.json entry or editing an internal database. Add a connection/profile and preserve the other providers.

API key. Paste the actual Manylane API key into the private key field. A variable name such as $MANYLANE_API_KEY is not expanded by a GUI field. Do not share secret-bearing settings exports.

Apply changes. Save the provider and start a new task; reload the editor window if the old connection remains selected.

  1. Open the Cline settings panel and select OpenAI Compatible, not an OpenAI account-login provider.
  2. Enter the connection fields below. Configure both Plan and Act profiles when they use separate settings.
  3. Save, select the exact model and send a small text request. Check the Manylane usage log to confirm routing.
Cline connection fields
Provider: OpenAI CompatibleBase URL: https://manylane.chat/v1API key: YOUR_MANYLANE_API_KEYModel ID: qwen3.8-max-0902
Compatibility notes

Start with text chat and a small, reversible coding task. Enable image, reasoning, or tool capabilities only after verifying that exact model. Tool-side token prices are estimates, not your Manylane membership bill.

Roo CodeEditor · Chat Completions

Connect Roo Code

Where to configure · application-managed provider settings

Windows
VS Code → Roo Code sidebar → Settings → API Provider → OpenAI Compatible
macOS
VS Code → Roo Code sidebar → Settings → API Provider → OpenAI Compatible
Linux / WSL
VS Code → Roo Code sidebar → Settings → API Provider → OpenAI Compatible

Scope & overrides. Per Roo configuration profile. Select that profile in the mode you use. A remote workspace may run a separate extension instance.

Open & merge. Use this provider form rather than inventing a settings.json entry or editing an internal database. Add a connection/profile and preserve the other providers.

API key. Paste the actual Manylane API key into the private key field. A variable name such as $MANYLANE_API_KEY is not expanded by a GUI field. Do not share secret-bearing settings exports.

Apply changes. Save and select the profile, then start a new task. Use Developer: Reload Window only if needed.

  1. Open Roo Code settings and select OpenAI Compatible in your configuration profile.
  2. Enter the URL, key and exact model below, save the profile and select it for the mode you use.
  3. Try a small task that calls a tool after basic text succeeds; tool support is a separate check.
Roo Code connection fields
Provider: OpenAI CompatibleBase URL: https://manylane.chat/v1API key: YOUR_MANYLANE_API_KEYModel ID: qwen3.8-max-0902
Compatibility notes

Roo Code requires native tool calling; a text-only model response is not sufficient and there is no XML-tool fallback in the current documented version. Start with text chat and a small, reversible coding task. Enable image, reasoning, or tool capabilities only after verifying that exact model. Tool-side token prices are estimates, not your Manylane membership bill.

Kilo CodeEditor · Chat Completions

Connect Kilo Code

Where to configure · application-managed provider settings

Windows
Kilo Settings → Providers → Custom provider → OpenAI Compatible
macOS
Kilo Settings → Providers → Custom provider → OpenAI Compatible
Linux / WSL
Kilo Settings → Providers → Custom provider → OpenAI Compatible

Scope & overrides. Per installation/profile. Earlier extensions expose API Provider in sidebar settings; use the supported GUI for your version.

Open & merge. Use this provider form rather than inventing a settings.json entry or editing an internal database. Add a connection/profile and preserve the other providers.

API key. Paste the actual Manylane API key into the private key field. A variable name such as $MANYLANE_API_KEY is not expanded by a GUI field. Do not share secret-bearing settings exports.

Apply changes. Save, select the provider/model and begin a new conversation. Reload the application if its configuration is stale.

  1. Open Settings → Providers → Custom provider. Set provider ID manylane and display name Manylane.
  2. Choose OpenAI Compatible as the Provider API. Enter the URL/key below and fetch or manually add catalog models.
  3. Save the provider and select it in the model picker. Earlier extension versions may call this the API Provider setting.
Kilo Code custom provider
Provider ID: manylaneDisplay name: ManylaneProvider: OpenAI CompatibleBase URL: https://manylane.chat/v1API key: YOUR_MANYLANE_API_KEYModel ID: qwen3.8-max-0902
Compatibility notes

Start with text chat and a small, reversible coding task. Enable image, reasoning, or tool capabilities only after verifying that exact model. Tool-side token prices are estimates, not your Manylane membership bill.

ContinueEditor · Chat Completions

Connect Continue

config.yaml · Continue Local Config

Windows
%USERPROFILE%\.continue\config.yaml
macOS
~/.continue/config.yaml
Linux / WSL
~/.continue/config.yaml

Scope & overrides. User-level Local Config, not your editor’s settings.json or the deprecated Continue config.json. Use the cog beside Local Config in Continue’s config selector to locate the active file.

Open & merge. Keep the existing name/version/schema header and append the Manylane entry to models. Do not add a second models key. An empty file may use the complete header in the example.

API key. Replace the placeholder in your private YAML, or use Continue’s documented secrets. The shown apiKey is literal: ordinary $MANYLANE_API_KEY text is not a shell lookup. Keep secret-bearing files and exports private.

Apply changes. Save: Continue refreshes Local Config. Select Manylane for Chat/Edit. Use Developer: Reload Window if an old configuration remains active.

  1. Open Continue’s local config.yaml from its configuration menu. Merge this model entry rather than overwriting other models.
  2. Replace the placeholder privately. Keep the configuration out of source control, or use Continue’s documented secret mechanism.
  3. Reload the configuration and select Manylane for Chat/Edit. Configure embeddings and autocomplete separately, using services that support those APIs.
Continue config.yaml
name: Manylaneversion: 1.0.0schema: v1models:  - name: Manylane qwen3.8-max-0902    provider: openai    model: qwen3.8-max-0902    apiBase: https://manylane.chat/v1    apiKey: YOUR_MANYLANE_API_KEY    roles: [chat, edit, apply]    useResponsesApi: false    useLegacyCompletionsEndpoint: false
Compatibility notes

Manylane does not expose embeddings, reranking or legacy /completions endpoints. Do not assign this connection to those roles. Add tool_use only after checking native tool behavior; a capability flag does not add server support.

AiderCLI · Chat Completions

Connect Aider

.aider.conf.yml · Aider persistent options

Windows
%USERPROFILE%\.aider.conf.yml
macOS
~/.aider.conf.yml
Linux / WSL
~/.aider.conf.yml

Scope & overrides. Aider loads home, repository-root and current-directory .aider.conf.yml in that order; later values win. --config <file> loads only the selected file. This recipe uses the home file.

Open & merge. Open or create .aider.conf.yml. Merge model and openai-api-base as top-level YAML keys, keeping your existing editing and Git preferences. Keep helper/editor models within your intended provider.

API key. Supply OPENAI_API_KEY through the launching environment. A private .env may store its literal value for persistence; exclude it from Git. Do not expect shell substitution inside YAML.

Apply changes. Restart aider from the intended repository with the key variable set and check its startup model. Project config or command-line flags can override the home file.

  1. Set MANYLANE_API_KEY using the private prompt, then set Aider’s OpenAI-compatible variables below.
  2. Run Aider from the intended repository. The openai/ prefix is Aider’s provider selector; the model ID after it remains unchanged.
  3. Check its startup model and test a small change. Keep normal edit approvals and review the diff.
Aider · Bash
export OPENAI_API_BASE="https://manylane.chat/v1"export OPENAI_API_KEY="$MANYLANE_API_KEY"aider --model openai/qwen3.8-max-0902
.aider.conf.yml · persistent model/base; key stays in the environment
model: openai/qwen3.8-max-0902openai-api-base: https://manylane.chat/v1
Compatibility notes

Aider may warn about unfamiliar models or missing context/pricing metadata. Such a warning is not proof of API failure. Do not invent context limits or silently redirect to a different provider; test an appropriate edit format for the chosen model.

CursorEditor · Version-dependent · Conditional

Connect Cursor

Where to configure · application-managed provider settings

Windows
Cursor Settings → Models (or Models & API Keys) → OpenAI API Key / Override OpenAI Base URL
macOS
Cursor Settings → Models (or Models & API Keys) → OpenAI API Key / Override OpenAI Base URL
Linux / WSL
Cursor Settings → Models (or Models & API Keys) → OpenAI API Key / Override OpenAI Base URL

Scope & overrides. Cursor application settings, not .cursor/rules, mcp.json, cli-config.json or the editor’s general settings.json. The recipe does not modify internal state files.

Open & merge. Set the URL override before enabling the Manylane key. Add the distinct manylane-… IDs below instead of canonical names that can collide with built-in models. Do not rename them to GPT or Claude models.

API key. Paste the actual Manylane API key into the private key field. A variable name such as $MANYLANE_API_KEY is not expanded by a GUI field. Do not share secret-bearing settings exports.

Apply changes. Save/verify the URL and key, use Add Custom Model for the Manylane alias, enable it and select that exact alias in a new Chat. Reload Cursor if its configuration is stale.

  1. Open Cursor Settings → Models and inspect API-key settings. Only continue if your installed build offers an OpenAI-compatible base-URL override and a custom model entry.
  2. Set and enable Override OpenAI Base URL first, using the /v1 base below. Then enter your Manylane API key in the OpenAI API Key field. Without the URL override, do not submit a Manylane key to the official OpenAI connection.
  3. Click Add Custom Model and enter the selected manylane-… alias below, not its canonical ID. Enable that entry and select it explicitly in a new Chat instead of Auto. Add other aliases one at a time as needed.
  4. Verify a small Chat request and inspect Manylane Usage. The alias avoids built-in-name collisions but cannot enable a mode/model blocked by Cursor. If validation sends an unsupported built-in model, do not substitute another model silently; use a compatible extension such as Cline or Continue.
Cursor custom model · selected Manylane alias
OpenAI Base URL: https://manylane.chat/v1OpenAI API Key: YOUR_MANYLANE_API_KEYCustom Model ID: manylane-qwen3.8-max-0902Actual model: qwen3.8-max-0902
All Cursor custom IDs · add each as a separate model
manylane-kimi-k3manylane-qwen3.8-max-0902manylane-qwen3.8-flashmanylane-deepseek-v4-pro-0813manylane-deepseek-v4.1-flashmanylane-glm-5.3

Cursor alias → actual model

Custom Model ID in CursorActual model
manylane-kimi-k3kimi-k3
manylane-qwen3.8-max-0902qwen3.8-max-0902
manylane-qwen3.8-flashqwen3.8-flash
manylane-deepseek-v4-pro-0813deepseek-v4-pro-0813
manylane-deepseek-v4.1-flashdeepseek-v4.1-flash
manylane-glm-5.3glm-5.3

Exact, case-sensitive mappings; no automatic substitution. All three inference endpoints accept these aliases. Responses and streaming model metadata echo the requested alias; the X-Manylane-Model response header identifies the actual model. Usage, exports, filters and service health stay grouped under that actual model, including input/output/cache details.

Authenticated GET /v1/models?client=cursor lists these six aliases with canonical_model metadata. The default /v1/models still returns the original six IDs for existing clients. Keep the query out of Cursor’s base URL and add aliases manually.

Compatibility notes

Conditional, not certified in the Cursor client. These are Manylane routing aliases, not OpenAI/Claude models and not extra models. They work on Manylane’s standard endpoints; they do not add Cursor Tab, proprietary Agent request translation, or Cursor CLI custom-provider support. Cursor can reject a model or mode before contacting Manylane. Its server must reach your public HTTPS URL; localhost is unsuitable. Cursor’s own plan terms still apply.

Open WebUIChat · Chat Completions

Connect Open WebUI

Where to configure · application-managed provider settings

Windows
Browser → Admin Panel → Settings → Connections → OpenAI → Add connection
macOS
Browser → Admin Panel → Settings → Connections → OpenAI → Add connection
Linux / WSL
Browser → Admin Panel → Settings → Connections → OpenAI → Add connection

Scope & overrides. Server-managed connection, shared according to your access controls. There is no config file to edit on the browser’s Windows/macOS/Linux device for this recipe.

Open & merge. Use this provider form rather than inventing a settings.json entry or editing an internal database. Add a connection/profile and preserve the other providers.

API key. Paste the actual Manylane API key into the private key field. A variable name such as $MANYLANE_API_KEY is not expanded by a GUI field. Do not share secret-bearing settings exports.

Apply changes. Save, refresh the model list and start a new chat. Check connection access controls and title/task model selections.

  1. Open Settings → Admin → Connections and add an OpenAI API connection.
  2. Enter the Manylane base URL and key. Fetch models, or add the exact ID to the Model IDs allowlist, then save.
  3. Choose Manylane in a new conversation. Set title/helper tasks to a catalog model or turn those optional requests off.
Open WebUI connection
Connection type: ExternalURL: https://manylane.chat/v1API key: YOUR_MANYLANE_API_KEYModel ID: qwen3.8-max-0902
Compatibility notes

This config covers text chat, not an embeddings, speech, images or file-storage service. A shared administrator connection shares its Manylane membership and concurrency allowance with users of that connection. Review who can use it.

LibreChatChat · Chat Completions

Connect LibreChat

librechat.yaml + .env · LibreChat server configuration

Windows
<LibreChat folder>\librechat.yaml and <LibreChat folder>\.env
macOS
<LibreChat folder>/librechat.yaml and <LibreChat folder>/.env
Linux / WSL
<LibreChat folder>/librechat.yaml and <LibreChat folder>/.env

Scope & overrides. Installation root on the server, not the browser device or your home directory. CONFIG_PATH may specify another YAML path. Docker uses Linux paths inside the container even on Windows/macOS.

Open & merge. Open or create librechat.yaml beside .env; append Manylane to endpoints.custom while preserving the schema version and other settings. For a new file, start from the bundled librechat.example.yaml. Our endpoint example is a fragment, not a replacement file.

API key. Put the literal MANYLANE_API_KEY in the private server .env or secret environment. LibreChat explicitly expands ${MANYLANE_API_KEY} in YAML. With Docker, pass the variable into the API container: Compose .env interpolation alone is not environment injection.

Apply changes. For Docker, mount the existing YAML at /app/librechat.yaml using the override fragment below, then run docker compose up -d api. For local installs restart the backend. Never paste private config into public YAML validators.

  1. Set MANYLANE_API_KEY in LibreChat’s server environment or private .env, never a public config file.
  2. Merge this custom endpoint into librechat.yaml, preserve the file’s existing version/settings, and restart the LibreChat server.
  3. Select the Manylane endpoint and exact model in a new chat. This example disables automatic title generation to avoid a hidden non-catalog model request.
librechat.yaml · custom endpoint fragment
endpoints:  custom:    - name: Manylane      apiKey: '${MANYLANE_API_KEY}'      baseURL: 'https://manylane.chat/v1'      models:        default: ['qwen3.8-max-0902']        fetch: true      titleConvo: false      modelDisplayLabel: Manylane
.env · private file on the LibreChat server
MANYLANE_API_KEY=YOUR_MANYLANE_API_KEY
docker-compose.override.yml · merge into the existing api service
services:  api:    environment:      MANYLANE_API_KEY: ${MANYLANE_API_KEY}    volumes:      - type: bind        source: ./librechat.yaml        target: /app/librechat.yaml        read_only: true
Compatibility notes

Manylane’s key belongs on the LibreChat server for this setup. File/RAG/embedding features need separate configuration and are not enabled by adding a chat endpoint. A shared server key shares one membership and its limits.

Cherry StudioChat · Chat Completions · Conditional

Connect Cherry Studio

Where to configure · application-managed provider settings

Windows
Cherry Studio → Settings → Model Provider → Add → OpenAI-compatible
macOS
Cherry Studio → Settings → Model Provider → Add → OpenAI-compatible
Linux / WSL
Cherry Studio → Settings → Model Provider → Add → OpenAI-compatible

Scope & overrides. Per desktop installation. Labels vary by release; use its settings screen, not internal JSON/database files. Configure each device separately.

Open & merge. Use this provider form rather than inventing a settings.json entry or editing an internal database. Add a connection/profile and preserve the other providers.

API key. Paste the actual Manylane API key into the private key field. A variable name such as $MANYLANE_API_KEY is not expanded by a GUI field. Do not share secret-bearing settings exports.

Apply changes. Save and enable the provider, add/select the model and start a new conversation. Restart the app if its model list is stale.

  1. In your installed Cherry Studio version, open model-provider settings and add a custom OpenAI-compatible provider named Manylane.
  2. Enter your Manylane key and configure the API host so the resulting request URL is exactly the Chat Completions URL below. Versions can append /v1 automatically: do not duplicate it.
  3. Add the exact model ID, enable the provider, and select it in a new text conversation. Verify the resulting request in Manylane Usage.
Cherry Studio connection targets
Provider: OpenAI-compatible custom providerAPI key: YOUR_MANYLANE_API_KEYModel ID: qwen3.8-max-0902Expected POST URL: https://manylane.chat/v1/chat/completionsExpected catalog URL: https://manylane.chat/v1/models
Compatibility notes

Version-dependent setup. The official project confirms multi-provider support; exact settings labels and URL normalization must be checked in your installed version. Knowledge-base embeddings, drawing, speech and advanced agent functions are separate capabilities, not automatically included.

Connection checklist & common errors
  1. Verify the API key with the model-catalog request below. It checks authentication without generating model output.
  2. Send a short prompt with an exact catalog ID. HTTP 402 means membership is inactive; 401 means the credential is missing, invalid or revoked.
  3. A 404 on /v1/v1 or /chat/completions/chat/completions indicates a duplicated URL suffix. Use the correct base, not a full endpoint, unless your client explicitly requests one.
  4. For 400 errors, inspect the requested feature: only standard function tools and stateless Responses are supported. Hosted tools, stored response history, /responses/compact, /messages/count_tokens, embeddings and image generation are not implemented.
  5. For 429, reduce parallel agent/helper requests and honor Retry-After. A client’s helper calls share the account-wide concurrency limit.
  6. Check your actual request in Usage & activity. Token estimates and cost displays inside a client are not your membership bill.
Model-catalog connection check
curl "https://manylane.chat/v1/models" \  -H "Authorization: Bearer $MANYLANE_API_KEY"
MEMBERSHIP & PAYMENTS

Your plan, your pace.

Membership is $5 for 24 hours, $10 for 7 days, or $30 for 30 days. Every plan includes the same catalog and unlimited requests over the membership period, subject to the disclosed technical and acceptable-use limits. There are no automatic renewals.

Open Membership, select your plan, accept the purchase terms, then prepare a checkout. When payments are enabled, the server returns a unique order, the exact USDT quote and expiry, and a secure checkout link. Send USDT on BNB Smart Chain (BEP20) only. Never send funds while checkout is disabled or use an address from an unsolicited message.

Use a blockchain withdrawal, not Binance Pay or a Binance internal transfer. The full quoted amount must arrive after any withdrawal fees. Ethereum (ERC20), Tron (TRC20), and Base are not valid networks for a USDT/BEP20 quote. Account registration remains code-only: no email, personal name, or connected exchange account is required by Manylane.

Selecting a plan does not charge you. Returning from checkout, a wallet screenshot, or a transaction submitted for confirmation does not activate a plan. Manylane checks the payment service directly and activates each verified paid order once. Existing membership time is preserved: a new period starts at your current expiry if it is still in the future.

The page checks open orders while visible and online; server checks continue independently. For a partial payment, check the remaining balance in the original checkout before sending more. Do not resend the original amount. Expired, late, refunded, or reversed payments may require operator review. Keep your order ID for support, never share your account code, and read the purchase terms before paying.

Exact model IDs

Use these IDs exactly. Manylane never silently substitutes another model. Catalog inclusion is separate from live availability; check service status and test the capabilities your application needs.

ModelAPI identifier
Kimi K3kimi-k3
Qwen 3.8 Maxqwen3.8-max-0902
Qwen 3.8 Flashqwen3.8-flash
DeepSeek V4 Prodeepseek-v4-pro-0813
DeepSeek V4.1 Flashdeepseek-v4.1-flash
GLM 5.3glm-5.3

Chat Completions

POST

Use a non-empty messages array with a model ID. Standard text messages, streaming, and function tools are forwarded to the selected model. Model support for images, structured output, reasoning settings, and tools can differ.

example.ts
import OpenAI from 'openai';const client = new OpenAI({  apiKey: process.env.MANYLANE_API_KEY,  baseURL: 'https://manylane.chat/v1',});const response = await client.chat.completions.create({  model: 'qwen3.8-max-0902',  messages: [{ role: 'user', content: 'Think bigger.' }],});console.log(response.choices[0].message.content);

Responses

POST

Send a string or input-item array in input. This release supports stateless text responses, streaming, and function tools. Keep conversation history in your application and resend it in input.

example.ts
import OpenAI from 'openai';const client = new OpenAI({  apiKey: process.env.MANYLANE_API_KEY,  baseURL: 'https://manylane.chat/v1',});const response = await client.responses.create({  model: 'qwen3.8-max-0902',  input: 'Think bigger.',  store: false,});console.log(response.output_text);
Manylane enforces store: false. previous_response_id, shared conversations, background jobs, hosted file/vector-store IDs, and built-in hosted tools are not supported. This keeps one account from accessing another account's hosted resources.

Messages

POST

Use the Anthropic SDK with your Manylane origin as baseURL. Include max_tokens and messages. System instructions belong in the top-level system field. We preserve the native Messages response and event formats.

example.ts
import Anthropic from '@anthropic-ai/sdk';const client = new Anthropic({  apiKey: process.env.MANYLANE_API_KEY,  baseURL: 'https://manylane.chat',});const message = await client.messages.create({  model: 'qwen3.8-max-0902',  max_tokens: 1024,  messages: [{ role: 'user', content: 'Think bigger.' }],});console.log(message.content);

Compatible protocol does not mean access to Claude models. Choose one of the six catalog IDs above. Send anthropic-version: 2023-06-01 when using HTTP directly.

Stream, don't wait.

Set stream: true to receive Server-Sent Events. Streaming is incremental, not a buffered response disguised as streaming. Closing the client stream cancels the upstream request and releases the account's concurrency slot.

stream.ts
const stream = await client.chat.completions.create({  model: 'qwen3.8-flash',  messages: [{ role: 'user', content: 'Hello.' }],  stream: true,});for await (const chunk of stream) {  process.stdout.write(chunk.choices[0]?.delta?.content ?? '');}

For Chat Completions we request final usage metadata automatically. Token counts appear in the dashboard when the model reports them; missing usage is marked as unreported, not estimated. An HTTP 200 can still be followed by an SSE error, so check event errors and the terminal event.

KNOW WHAT YOUR REQUEST USED.

Input, output and cache tokens.

The dashboard shows model-reported usage, not an estimate or a per-token bill. Open Usage & activity to view the breakdown by period and model, or expand an individual request.

MetricMeaning
Input tokensReported input total, including reported cache reads and writes once. Messages base input is normalized with its separate cache counters.
Output tokensThe model-reported output counter, which may include reasoning when the model includes it in that counter. Not an extra inferred token count.
Cache readInput tokens reported as reused from prompt cache. Already part of input; do not add them again.
Cache writeInput tokens explicitly reported as written to prompt cache. Cache misses alone do not prove a cache write.
Total tokensInput + output. Missing fields contribute only a known subtotal, not a complete usage claim.
Cache-read rateCache-read tokens / input tokens, using only the same requests that report both counters. No matched input means no rate.
Unknown is not zero. A dash means a field was not reported or was not collected. A displayed 0 is a reported zero. Older requests retain their saved counts but are marked legacy; missing historical cache detail cannot be reconstructed.
Illustrative dashboard record · not a model guarantee
{  "input_tokens": 100,  "output_tokens": 20,  "cache_read_tokens": 60,  "cache_write_tokens": 10,  "input_tokens_reported": 1,  "output_tokens_reported": 1}

In this example, total usage is 120, not 190. A cache-read rate of 60% applies to the known input. Coverage counts show how many attempts actually reported each field, including partial or interrupted requests.

API field mapping

FormatRead / write counters inside usageInput normalization
Chat Completionsprompt_tokens_details.cached_tokens
prompt_tokens_details.cache_write_tokens
Also accepts a reported prompt_cache_hit_tokens alias.
prompt_tokens already includes cache subsets.
Responsesinput_tokens_details.cached_tokens
input_tokens_details.cache_write_tokens
input_tokens already includes cache subsets.
Messagescache_read_input_tokens
cache_creation_input_tokens
Base input_tokens + reported reads + reported writes.

Raw inference responses keep their native protocol schema. Normalization is for Manylane’s usage ledger. Streaming usage events replace cumulative counters instead of adding them repeatedly. A disconnected stream can have partial counts and is not recorded as a successful completion.

CSV exports append the four detail/reporting columns; missing fields are empty cells. JSON exports use null. Per-field reporting flags are 1 for reported, 0 for missing, and null for legacy records. No model is promised to expose cache metadata, a specific hit rate, or a particular cache lifetime.

Unlimited requests. Clear boundaries.

There is no per-day request count or membership token budget. Technical limits keep access usable: 2 simultaneous requests per account, a 1 MiB request body, a five-minute request deadline, one completion per request, and the selected model's context and output limits.

HTTPMeaningWhat to do
400Invalid parameters or unsupported featureCheck the payload and model capabilities.
401Missing, invalid, or revoked API keyUse an active key, not your account code.
402No active membershipCheck your membership and expiry time.
404Unknown model or endpointUse an exact catalog ID and documented route.
413Request body too largeKeep the JSON body within 1 MiB.
429Concurrency or temporary capacity limitHonor Retry-After and use exponential backoff with jitter.
502 / 503Model or service unavailableRetry later or choose another model.
504Request deadline exceededShorten the request and retry.

Every response includes an X-Request-ID for troubleshooting. Errors intentionally omit provider credentials and internal diagnostics. Failed or interrupted inference attempts remain visible in your request log.

Useful insights, without a transcript.

Manylane stores request metadata: model, protocol, status, reported token counts, timestamps, and duration. It does not store your prompts or generated text in its application database. Your content is sent to a third-party inference service to generate a response; its processing policies apply.

Playground conversations live only in the current browser tab. API keys and account codes are stored as cryptographic hashes. Request metadata is retained for up to 90 days, with daily cleanup. You can export metadata or delete your account in Settings.

Read the privacy notice
Built for familiar SDKsCreate your API key