# Cherry Studio (/en/docs/cookbook/chat-clients/cherry-studio)











Connect Praxis to Cherry Studio and chat with every model through a single key—no code required.

Every step lists its **expected result**: follow along yourself, or hand this page to an AI assistant that can operate your computer and let it do the setup and verification for you.

## What you'll accomplish [#what-youll-accomplish]

* Use Praxis models directly inside Cherry Studio
* Done when: you send "Hello" to `deepseek-flash` and get a reply
* Time needed: **5 minutes** (excluding download and install)
* Protocols: OpenAI-compatible (this page) / Anthropic-compatible (see [Advanced](#advanced))

## Prerequisites [#prerequisites]

Confirm each item before you start:

* **A Praxis API key** (starting with `sk-praxis-`). If you don't have one, create it at [Console → API Keys](https://console.deepraxis.ai/keys&#x29;: click "Create Key"—the name is required, the validity defaults to 90 days (or pick permanent)—then copy it right away. You can also re-copy the full key any time from the "Copy" action on its row in the key list. New accounts ship with **$1 of free credit**. See [Quickstart](/en/docs/developers/model/quickstart) for the full flow.
* **Cherry Studio installed.** Download from the [official site](https://cherry-ai.com) (auto-matches your OS), or pick from [GitHub Releases](https://github.com/CherryHQ/cherry-studio/releases): Windows `-setup.exe` (installer) or `-portable.exe` (portable); macOS `.dmg` (x64 for Intel, arm64 for Apple silicon); Linux `.AppImage` (`chmod +x` after download, then run).
* **First launch**: pick your language (English is the default), and on the welcome page click "Set up later" to skip signing in.
* This page follows the v2.1.4 UI; menu locations may shift slightly between versions.

## Configure [#configure]

**Step 1: open model service settings**

Click the **gear icon "Settings" in the lower-left corner*&#x2A; of the main window, then &#x2A;*"Model Services"** in the left menu.

Expected: the provider list appears on the right (OpenAI, SiliconFlow, Z.ai Open Platform…).

<img alt="Settings entry: the lower-left gear opens Settings; choose Model Services in the left menu" src="__img0" />

**Step 2: add the provider—name, key, and base URL in one dialog**

Click &#x2A;*"Add Provider"** at the bottom of the provider list and fill three things in the "Add Custom Provider" dialog:

| Field                      | Value                                    |
| -------------------------- | ---------------------------------------- |
| Provider name (required)   | `Praxis` (display name, any label works) |
| API key                    | your key starting with `sk-praxis-`      |
| Endpoint → OpenAI base URL | `https://api.deepraxis.com/openai/v1`    |

The base URL &#x2A;*must end with `/v1`**—the dialog shows a live "Request path" preview; you should see `…/openai/v1/chat/completions`. Click "Add" when done.

Expected: a Praxis entry appears at the end of the provider list, with the key shown masked on its card.

<img alt="The Add Custom Provider dialog: name Praxis, key and OpenAI base URL filled, request-path preview below" src="__img1" />

**Step 3: add a model**

After the provider is added, Cherry Studio **automatically fetches the Praxis model catalog** and opens a "Select Models" dialog. Check `deepseek-flash`—the platform's sample model: cheap, fast, good at both Chinese and English—then click "Add Selected Models"; the app verifies and enables it automatically.

Expected: the model shows up in Praxis's model list with its enable switch on.

<img alt="The Select Models dialog: check deepseek-flash in the auto-fetched catalog" src="__img2" />

If the fetch fails or the list is empty, click &#x2A;*"Manually Add Model"** on the Praxis card and enter the model ID `deepseek-flash`; leave the rest empty.

## Verify [#verify]

Back on the chat page, open the **model picker at the top right**, switch to `deepseek-flash` under Praxis, and send "Hello".

Expected: a reply arrives within seconds—**a reply means you're connected**.

<img alt="The chat page with its first reply: the picker shows DeepSeek V4.1 Flash | Praxis" src="__img3" />

You can also verify from the command line. Set the variable first (copying the curl verbatim without it yields a 401):

```bash
export PRAXIS_API_KEY=sk-praxis-your-key
```

The commands below are written for macOS / Linux / WSL (bash). On Windows PowerShell: a reply in the app already means you're connected—feel free to skip; for the CLI route, run `$env:PRAXIS_API_KEY="your-key"` first and join the curl into a single line (dropping the trailing `\`).

```bash
curl https://api.deepraxis.com/openai/v1/chat/completions \
  -H "Authorization: Bearer $PRAXIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "deepseek-flash", "messages": [{"role": "user", "content": "Hello"}]}'
```

Expected: HTTP 200, with a reply in `choices[0].message.content` (a `reasoning` field may also appear—reasoning models include their chain of thought). `401` means a key problem; "model not found" means a typo in the model ID—see the FAQ below.

Finally, check [Console → Usage & Billing](https://console.deepraxis.ai/usage): the call you just made is already on the books—every call is billed and traceable.

## FAQ [#faq]

| Symptom                                                                             | Cause                               | Fix                                                                                                                                                                                                              |
| ----------------------------------------------------------------------------------- | ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Invalid token / 401                                                                 | Key copied incompletely, or revoked | Copy it again in full (mind the `sk-praxis-` prefix); if it still fails, create a new one in the [console](https://console.deepraxis.ai/keys)                                                                    |
| First message fails with "requires the local API Gateway bridge, which is disabled" | The local gateway is off by default | Click "Enable" in the prompt, then resend                                                                                                                                                                        |
| Model list fetch fails or is empty                                                  | Wrong API path                      | The address must be `https://api.deepraxis.com/openai/v1` (ending with `/v1`; check the request-path preview). Run the curl above to tell network from config; if fetching still fails, use "Manually Add Model" |
| "Model not found"                                                                   | Model ID doesn't match the catalog  | Copy the exact ID from [Console → Models](https://console.deepraxis.ai/models)                                                                                                                                   |
| Request timeout / no response                                                       | Local network                       | Retry from another network or via a proxy; if curl also times out, it's the network, not the config                                                                                                              |

## Advanced [#advanced]

* **How much did that chat cost?** [Console → Usage & Billing](https://console.deepraxis.ai/usage)—pay per call, no idle fees
* **Switch models**: check more models from the catalog any time and switch in the chat page. `deepseek-flash` is the rolling entry that always points at the latest Flash generation; use `deepseek-v4-flash` when you want a pinned snapshot
* **Use the Anthropic protocol**: fill the **Anthropic** base URL instead—`https://api.deepraxis.com/anthropic` (no `/v1`; the client appends `/v1/messages`, see the dialog's preview). Everything else is identical

## Related recipes [#related-recipes]

* [Chatbox](/en/docs/cookbook/chat-clients/chatbox) · [LobeHub](/en/docs/cookbook/chat-clients/lobehub) · [Open WebUI](/en/docs/cookbook/chat-clients/open-webui)
* Migrating from another service? See the [migration guide](/en/docs/cookbook/migration)
