Cherry Studio on Windows: connect your API and check which model is responding

When I configure an application to use an API, I want to be able to relate each setting to what it will do next: the address indicates the destination, the key allows access to the service, and the model determines which option will receive the task. Having that relationship clear helps both when starting out and when fixing an error.

In this guide I’m going to walk through installing Cherry Studio and connecting a provider compatible with OpenAI. We’ll do it from the interface, without preparing a project or writing code to send requests. At the end I propose a brief exercise with rules you can check on your own.

Cherry Studio is a tool with some history among desktop clients for AI. Its official repository was created in May 2024, so it has accumulated more than two years of development as of this article’s date. It allows you to chat with different models and offers other features, such as agents and knowledge bases.

As of October 30, 2026, the most recent stable version is v2.1.8, released on October 26, 2026. This current version serves as the reference for this guide. You can check its files in the official version release.

The screenshots keep the original interface in Chinese; I explain the controls in English next to each image. They do not include a screen with the version number, so the reference to v2.1.8 comes from the official release and not from identifying the version by its appearance.

Preparing the client and service access

First download the program from the official Cherry Studio page. For a typical Windows PC with Intel or AMD, choose x64. If you’re using Windows on an ARM device, choose ARM64. You can check your system type in Settings → System → About, within Windows.

The x64 installer for the reference version is called:

Cherry-Studio-2.1.8-win-x64-setup.exe

Run the file, follow the wizard, and open Cherry Studio. For this walkthrough I’m using the package that contains setup in the name; portable identifies the portable alternative. If you’re reading this later, check the version in the latest official GitHub release.

You also need an API key. It can be the official API from a model provider or a compatible service you already use. I usually use Crazyrouter, so I’ll use it as an example. If you prefer another provider, use its key, address, and the API format it specifies.

Cherry Studio provides the interface. The connected provider manages access to the models and records API usage. Installing the application does not by itself grant access to all models that might appear in a catalog.

Creating a recognizable connection

In Cherry Studio, open settings with the gear icon in the lower left corner.

Go to the model services section and look for the button to add a provider, located below the list.

If you don’t have the key yet, in the Crazyrouter panel open API Keys and press Create API Key. You’ll first need an account for your chosen service. A name like cherry-studio helps identify the intended use of that key.

Copy the full key with the copy control. The abbreviated version with asterisks doesn’t work as a credential, and your account password doesn’t belong in this field either. If you share screenshots of your configuration, hide the entire key.

In the custom provider dialog, fill in these fields:

Field Value in this example
Provider name Crazyrouter
API Key The full key from the panel
OpenAI endpoint address https://api.crazyrouter.com

OpenAI identifies the compatible API format here. To connect to Crazyrouter you must keep a Crazyrouter key. An Anthropic endpoint also appears, but in this tutorial we use the format compatible with OpenAI for a normal conversation.

Checking the route that Cherry Studio builds

In this field we enter the root address:

https://api.crazyrouter.com

Below it should show the request path:

https://api.crazyrouter.com/v1/chat/completions

In this configuration the client adds the standard path. If you paste a complete address in a field that already adds that part, you can end up with an incorrect URL. Check especially that /v1 isn’t repeated.

The Cherry Studio integration documentation describes this way of entering the address. It’s not advisable to apply the rule to any SDK or provider: for another connection, consult its instructions and the path the client generates.

When the data is complete, add the provider.

Adding models and deciding if you want a separate check

The list in the screenshot contains 168 models. Check the ones you want and press the button to add the selected models, at the bottom right. If they’re already in that list, you don’t need to type their identifiers one by one.

You can search by name or filter by task type. The number 168 corresponds to this screenshot; the catalog may change. To start with text, the catalog of conversation models lets you review options, though you should choose one your key has access to.

The next window shows the model integration, validation, and provider activation completed. If it appears during the process, press the finish button.

On the provider page there’s also an independent connection check. It lets you select a model and start the check.

This additional manual check is optional. It makes API calls and generates usage charges according to the provider’s billing rules. Checking all models can involve multiple calls.

You can review one if you need to diagnose the connection. You can also go directly to chat after adding the models and activating the provider. Sending a normal message also uses the API.

Separating saved settings from chat selection

Default model settings are useful for assigning different tasks. The assistant’s default model is used when the assistant doesn’t have another model assigned.

The quick model intervenes in tasks like naming conversations and extracting words for searches. Translation and image models correspond to their respective functions. The official documentation on default models explains these differences. You don’t need to change all options to send your first message.

To choose the model for a conversation, open the chat and press its name at the top. Look for Crazyrouter and select the model you just added.

This is the place I’d review before sending the task. That a model is saved, or that another has passed a check, doesn’t confirm which option is selected in the current conversation.

A first task with easy-to-check conditions

To verify a response without relying on external lookup, I propose converting an import rule into a case table. This is an exercise prepared for you to test; it does not represent an API test executed for this article.

Evaluate these fictional files according to import rules:
- Only .csv extension is allowed, case-insensitive.
- 1 to 100 rows of data are allowed, both limits included.
- The stated amount already excludes the header.
​
Files:
A.csv: 100 rows
B.csv: 101 rows
C.txt: 20 rows
D.CSV: 30 rows
E.csv: 0 rows
​
Return a table with file, accepted or rejected, and reason.
Apply only these rules. Don't invent file contents.
Then indicate how many are accepted and how many are rejected.

The reference is obtained from the conditions: A and D are accepted; B exceeds the maximum, C has another extension, and E doesn’t meet the minimum. In total there are two accepted and three rejected. This is a control solution deduced from the statement, not a recorded output from a model.

It’s worth checking the limits: 100 is allowed, 0 is not, and .CSV should be treated the same as .csv. A response can present an impeccable table and still misinterpret one of those points.

If you get an error before getting text, start with the related setting:

Symptom What to check
Authentication error, like 401 Full key, validity, and spaces added when copying
Path or 404 error Endpoint, API format, and generated path
Model rejected Model availability and key permissions
Model missing in chat Confirmation of its addition and provider activated
Check passes, conversation fails Whether you’ve selected the same model in both places

These are starting points for investigation, not universal diagnoses for each error. Change one thing at a time so you can relate the result to the change.

Adding search and tools when the task requires it

The previous exercise only needs text. If you later need to look up information on the web, distinguish search from the ability to control a browser. The next screenshot shows browser control permissions.

To search for information before answering, check the service in web search settings and enable search from the chat input area. Check search activity and the sources of that response to know if it was used. The official web search guide details these options. A normal text conversation doesn’t need permission to control the browser.

Other sections allow you to configure MCP, skills, document processing, OCR, and the quick assistant.

I would add them when a specific task requires them. To start, knowing which service receives the request, which model is selected, and how to verify the response already allows you to work with an understandable configuration.

If you need to install or update the client, use the official Cherry Studio download.