SSOTA
← Blog

June 19, 2026

How to Run Kimi K2.7 Code in the opencode Desktop App (via Sota)

The opencode desktop app gives you a window, with chat on one side and your file tree and diffs on the other, instead of a terminal. It's in beta, and unlike the terminal it can add a custom model provider entirely through a form, so pointing it at Kimi K2.7 Code through Sota is a matter of filling in a few fields rather than editing config. Routing through Sota also puts inference on Cloudflare's network instead of Moonshot's China endpoint, at flat monthly pricing.

This guide covers the desktop app. If you work mostly in a terminal, the CLI guide is the one you want.

What you need

  • The opencode desktop app (from opencode.ai)
  • A Sota account (free, no card)
  • A Sota API key

Step 1: Get a Sota API key

In the Sota dashboard, open API Keys and create one, naming it opencode-desktop so it's easy to find. Copy the key (it starts with sk-sota-); Sota shows it once, so save it before closing the dialog.

Step 2: Open the custom provider form

In the desktop app, open Settings and go to Providers. Find the Custom provider row in the list, described as "Add an OpenAI-compatible provider by base URL," and click Connect. That opens the form for Sota's details.

Step 3: Fill in the fields

Here's exactly what goes in each field:

  • Provider ID: sota. Lowercase, no spaces. opencode's internal name for the provider.
  • Display name: Sota. The label you'll see in the model picker.
  • Base URL: https://trysota.xyspace.dev/v1. Keep the /v1; opencode appends the rest of the path itself.
  • API key: paste your sk-sota-… key.
  • Models: add one model row. Set its ID to kimi-k2.7-code and its Name to Kimi K2.7 Code. The ID is what Sota expects; the Name is the picker label.
  • Headers: leave empty. Sota authenticates with the API key alone.

If you want GLM-5.2 available too, add a second model row now: ID glm-5.2, Name GLM-5.2. There's a note on when to use which below.

Submit the form. opencode stores the provider settings and your key together, with no config file to edit afterward.

Step 4: Select Kimi K2.7 Code

Find the model selector near the chat input; it shows whatever model is current. Click it, open the Sota provider, and choose Kimi K2.7 Code. It stays selected across conversations until you switch.

Now open a real project and give it a task with some reach, like a refactor that crosses several files. As the agent works, the diff viewer shows each proposed change and the file tree highlights what it's editing, and you approve edits before they're written. That approve-as-you-go view is the whole point of using the desktop app.

Kimi K2.7 Code vs GLM-5.2 on Sota

Both models Sota serves are long-context coders, so they both hold up across opencode's longer runs. The difference is pace versus capability.

Kimi K2.7 Code is the faster of the two. Its quicker responses make the back-and-forth of agentic coding feel snappier, and for most day-to-day work that speed is worth more than the last increment of model quality. It's a strong default.

GLM-5.2 is the more capable model when you want to push harder. It ranks above Kimi on coding leaderboards like Design Arena and costs more to run, and it's the one to reach for on the tasks where you want the strongest possible output and can spare a little speed to get it. If you added it as a second model row in Step 3, switching is one click in the picker; otherwise reopen the provider from Settings → Providers and add it. The model comparison covers the trade-off in more depth.

Why the desktop app suits this work

The diff-first workflow matters more as the model gets more capable. When an agent can confidently rewrite a dozen files, you want a gate between "the model decided" and "the change is on disk." The desktop app's review step is that gate: every edit shows up as a diff you approve, and the file tree keeps the blast radius visible. For a sprawling refactor, that's a calmer way to work than watching changes fly past in a terminal.

Troubleshooting

There's no Custom provider row. The custom-provider form is a newer addition and the desktop app is in beta. Update to the latest version if it's missing.

The provider saves but messages error out. Reopen the provider settings and confirm the Base URL is exactly https://trysota.xyspace.dev/v1 with no trailing slash, and that the key pasted in full. Keys start with sk-sota-.

The picker is empty under Sota. You saved the provider without a model row. Reopen it from Settings → Providers and add a model with ID kimi-k2.7-code.

A long refactor stalls or truncates. Update opencode; the desktop build is beta and changes often. Sota normalizes Kimi's responses to the standard shape, but an old client can choke on them.

Why route through Sota

Moonshot runs Kimi's native inference in China. For teams with data-residency rules, that decides the matter before the model's quality even enters the conversation. Sota serves Kimi K2.7 Code from Cloudflare's network (US, UK, Germany, Japan, Australia), so the code you hand the agent stays on infrastructure you can stand behind. And since the desktop app tends to get used for the big, long-running jobs that rack up tokens, Sota's flat pricing ($25 Starter, $125 Pro, with per-user ceilings) keeps those sessions from turning into a surprise bill.

Get started with Sota and run Kimi K2.7 Code in the opencode desktop app today.