Skip to main content
Step Code supports subscription login, API keys, cloud platforms, and OpenAI / Anthropic / Google-compatible endpoints through models.json, including Ollama, vLLM, and LM Studio.

Connection methods

Credential priority, from highest to lowest, is CLI --api-key, saved auth.json, environment variables, then the custom provider key in models.json. auth.json uses 0600 permissions.

Subscription login

Choose Step Plan for an account on platform.stepfun.com, or Step Plan Oversea for an account on platform.stepfun.ai. OAuth credentials refresh through the login flow. Use /logout to clear the corresponding credentials. Choosing another channel does not automatically use your subscription quota. Available models and allowances depend on the account. See Step Plan. The login picker also offers Claude Pro/Max, ChatGPT Plus/Pro (Codex), GitHub Copilot, and xAI. Follow each platform’s terms and account permissions.

API key providers

For example, configure Anthropic in Bash or Zsh:
Replace the placeholder with that provider’s key. A Step key cannot be used for another provider. Keys saved with /login live in ~/.stepcode/auth.json; do not commit this file. See Environment variables for runtime environment variables.

Cloud platforms

Deployment names, available regions, and IAM permissions are managed by the cloud platform. Confirm access to the target model before selecting it in Step Code.

Custom models (models.json)

Edit ~/.stepcode/models.json, then reopen /model to load changes. This example connects to local Ollama:
Prepare these models in Ollama first. ollama is a nonempty apiKey placeholder. Local services without authentication still require this field to appear in /model; authenticated remote services require real credentials. Model fields include id, name, reasoning, contextWindow, maxTokens, cost, thinkingLevelMap, and samplingParams. id is required. contextWindow defaults to 128,000 and maxTokens to 16,384; override them to match model specifications. samplingParams merges sampling parameters into OpenAI-compatible requests and may override named request fields. Do not add unsupported fields. Setting only baseUrl overrides a built-in provider’s endpoint; models updates matching IDs and adds new ones. Ollama / vLLM / SGLang often need supportsDeveloperRole = false and supportsReasoningEffort = false in compat. See FAQ for model loading and login troubleshooting.

Switching models

  • /model opens the picker; Ctrl+S saves the startup default.
  • Ctrl+P cycles enabledModels; see Keyboard shortcuts for reverse cycling.
  • Use step --provider <provider> --model <model-ID> on the command line.
  • /thinking or /effort changes thinking level; available levels and effective behavior depend on the model.
See Configuration files for default model settings.