Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions core/llm/autodetect.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ const PROVIDER_HANDLES_TEMPLATING: string[] = [
"vertexai",
"watsonx",
"nebius",
"dothoosh",
"relace",
"openrouter",
"clawrouter",
Expand Down Expand Up @@ -248,6 +249,7 @@ const PARALLEL_PROVIDERS: string[] = [
"sambanova",
"ovhcloud",
"nebius",
"dothoosh",
"vertexai",
"function-network",
"scaleway",
Expand Down
13 changes: 13 additions & 0 deletions core/llm/llms/DotHoosh.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { LLMOptions } from "../..";

import OpenAI from "./OpenAI";

class DotHoosh extends OpenAI {
static providerName = "dothoosh";
static defaultOptions: Partial<LLMOptions> = {
apiBase: "https://gateway.dothoosh.com/v1/",
useLegacyCompletionsEndpoint: false,
};
}

export default DotHoosh;
6 changes: 6 additions & 0 deletions core/llm/llms/OpenAI-compatible.vitest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ import FunctionNetwork from "./FunctionNetwork.js";
import NCompass from "./NCompass.js";
import LlamaStack from "./LlamaStack.js";
import Nebius from "./Nebius.js";
import DotHoosh from "./DotHoosh.js";
import OVHcloud from "./OVHcloud.js";

// Base OpenAI tests
Expand Down Expand Up @@ -453,6 +454,11 @@ createOpenAISubclassTests(Nebius, {
defaultApiBase: "https://api.studio.nebius.ai/v1/",
});

createOpenAISubclassTests(DotHoosh, {
providerName: "dothoosh",
defaultApiBase: "https://gateway.dothoosh.com/v1/",
});

createOpenAISubclassTests(OVHcloud, {
providerName: "ovhcloud",
defaultApiBase: "https://oai.endpoints.kepler.ai.cloud.ovh.net/v1/",
Expand Down
2 changes: 2 additions & 0 deletions core/llm/llms/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import CometAPI from "./CometAPI";
import DeepInfra from "./DeepInfra";
import Deepseek from "./Deepseek";
import Docker from "./Docker";
import DotHoosh from "./DotHoosh";
import Fireworks from "./Fireworks";
import Flowise from "./Flowise";
import FunctionNetwork from "./FunctionNetwork";
Expand Down Expand Up @@ -119,6 +120,7 @@ export const LLMClasses = [
Cerebras,
Asksage,
Nebius,
DotHoosh,
Nous,
Venice,
VertexAI,
Expand Down
74 changes: 74 additions & 0 deletions docs/customize/model-providers/more/dothoosh.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
---
title: "DotHoosh"
description: "Configure DotHoosh with Continue to access GPT, Gemini, DeepSeek, Kimi and Claude models through one Iranian AI gateway billed in Toman"
---

DotHoosh (دات‌هوش) is an Iranian AI gateway billed in Toman (IRT) from a prepaid wallet. One API key serves GPT, Gemini, DeepSeek and Kimi models through an OpenAI-compatible endpoint. Create a key at [gateway.dothoosh.com](https://gateway.dothoosh.com/api-keys).

## Chat Model

<Tabs>
<Tab title="YAML">
```yaml title="config.yaml"
name: My Config
version: 0.0.1
schema: v1

models:
- name: DeepSeek Flash
provider: dothoosh
model: deepseek-flash
apiKey: <YOUR_DOTHOOSH_API_KEY>
```
</Tab>
<Tab title="JSON">
```json title="config.json"
{
"models": [
{
"title": "DeepSeek Flash",
"provider": "dothoosh",
"model": "deepseek-flash",
"apiKey": "<YOUR_DOTHOOSH_API_KEY>"
}
]
}
```
</Tab>
</Tabs>

## Claude models

Claude is served on DotHoosh's Anthropic-compatible endpoint, so Claude models use the `anthropic` provider with the DotHoosh base URL:

<Tabs>
<Tab title="YAML">
```yaml title="config.yaml"
name: My Config
version: 0.0.1
schema: v1

models:
- name: Claude Sonnet 5.5
provider: anthropic
model: claude-sonnet-5-5
apiBase: https://gateway.dothoosh.com/anthropic/v1/
apiKey: <YOUR_DOTHOOSH_API_KEY>
```
</Tab>
<Tab title="JSON">
```json title="config.json"
{
"models": [
{
"title": "Claude Sonnet 5.5",
"provider": "anthropic",
"model": "claude-sonnet-5-5",
"apiBase": "https://gateway.dothoosh.com/anthropic/v1/",
"apiKey": "<YOUR_DOTHOOSH_API_KEY>"
}
]
}
```
</Tab>
</Tabs>
1 change: 1 addition & 0 deletions docs/customize/model-providers/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ Beyond the top-level providers, Continue supports many other options:
| [Watson x](/customize/model-providers/more/watsonx) | IBM's enterprise AI platform |
| [Sagemaker](/customize/model-providers/more/sagemaker) | AWS machine learning platform |
| [Nebius](/customize/model-providers/more/nebius) | Cloud-based machine learning platform |
| [DotHoosh](/customize/model-providers/more/dothoosh) | Iranian AI gateway billed in Toman |

## How to Choose a Model Provider

Expand Down
1 change: 1 addition & 0 deletions docs/docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@
"customize/model-providers/more/clawrouter",
"customize/model-providers/more/deepseek",
"customize/model-providers/more/deepinfra",
"customize/model-providers/more/dothoosh",
"customize/model-providers/more/groq",
"customize/model-providers/more/llamacpp",
"customize/model-providers/more/llamastack",
Expand Down
3 changes: 3 additions & 0 deletions extensions/vscode/config_schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,7 @@
"cerebras",
"askSage",
"nebius",
"dothoosh",
"vertexai",
"xAI",
"kindo",
Expand Down Expand Up @@ -276,6 +277,7 @@
"### Cerebras\nCerebras Inference uses specialized silicon to provides superfast inference. To get started, get your API keys from [their console](https://cloud.cerebras.ai/).",
"### Ask Sage\nAsk Sage is an agnostic hosted service that provides language models. To get started with Ask Sage:\n1. Obtain an API key from your account. For more information, visit [Ask Sage](https://docs.asksage.ai/).\n2. Paste the API key below.\n3. Select a model preset.\n> [Reference](https://docs.asksage.ai/)",
"### Nebius\nNebius AI platform is a cloud service for machine learning model inference and training. To get started, obtain an API key from the [Nebius console](https://console.nebius.ai/).",
"### DotHoosh\nDotHoosh (دات‌هوش) is an Iranian AI gateway billed in Toman from a prepaid wallet. One API key serves GPT, Gemini, DeepSeek and Kimi models through an OpenAI-compatible endpoint. To get started, create a key at [gateway.dothoosh.com](https://gateway.dothoosh.com/api-keys).",
"### Vertex AI\nVertex AI provides access to Google's foundation models and ML tools. To get started, enable the [Vertex AI API](https://console.cloud.google.com/marketplace/product/google/aiplatform.googleapis.com) and set up [Google Application Default Credentials](https://cloud.google.com/docs/authentication/provide-credentials-adc).",
"### xAI offers a world class developer tool set to build scalable applications powered by Grok. To get started, obtain an API key from [the x Console](https://console.x.ai/), and see the [docs](https://docs.x.ai/docs/)",
"### Secure AI management software that helps enterprises adopt and manage AI across their workforce. To get started, obtain an API key from [the Kindo console](https://app.kindo.ai/settings/api), and see the [website](https://app.kindo.ai//)",
Expand Down Expand Up @@ -532,6 +534,7 @@
"cloudflare",
"sambanova",
"nebius",
"dothoosh",
"xAI",
"kindo",
"scaleway",
Expand Down
Binary file added gui/public/logos/dothoosh.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
99 changes: 99 additions & 0 deletions gui/src/pages/AddNewModel/configs/models.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3327,4 +3327,103 @@ export const models: { [key: string]: ModelPackage } = {
icon: "inception.png",
isOpenSource: false,
},

// DotHoosh models
gpt61Sol: {
title: "GPT-6.1 Sol",
description: "OpenAI GPT-6.1 Sol, served through the DotHoosh gateway",
params: {
title: "GPT-6.1 Sol",
model: "gpt-6.1-sol",
contextLength: 272000,
},
icon: "dothoosh.png",
providerOptions: ["dothoosh"],
isOpenSource: false,
},
gpt6Luna: {
title: "GPT-6 Luna",
description: "OpenAI GPT-6 Luna, served through the DotHoosh gateway",
params: {
title: "GPT-6 Luna",
model: "gpt-6-luna",
contextLength: 272000,
},
icon: "dothoosh.png",
providerOptions: ["dothoosh"],
isOpenSource: false,
},
gemini4Argon: {
title: "Gemini 4 Argon",
description: "Google Gemini 4 Argon, served through the DotHoosh gateway",
params: {
title: "Gemini 4 Argon",
model: "gemini-4-argon",
contextLength: 1048576,
},
icon: "dothoosh.png",
providerOptions: ["dothoosh"],
isOpenSource: false,
},
gemini38Flash: {
title: "Gemini 3.8 Flash",
description: "Google Gemini 3.8 Flash, served through the DotHoosh gateway",
params: {
title: "Gemini 3.8 Flash",
model: "gemini-3.8-flash",
contextLength: 200000,
},
icon: "dothoosh.png",
providerOptions: ["dothoosh"],
isOpenSource: false,
},
deepseekV41Flash: {
title: "DeepSeek V4.1 Flash",
description: "DeepSeek V4.1 Flash, served through the DotHoosh gateway",
params: {
title: "DeepSeek V4.1 Flash",
model: "deepseek-flash",
contextLength: 1000000,
},
icon: "dothoosh.png",
providerOptions: ["dothoosh"],
isOpenSource: false,
},
deepseekV4Pro: {
title: "DeepSeek V4 Pro",
description: "DeepSeek V4 Pro, served through the DotHoosh gateway",
params: {
title: "DeepSeek V4 Pro",
model: "deepseek-v4-pro",
contextLength: 1000000,
},
icon: "dothoosh.png",
providerOptions: ["dothoosh"],
isOpenSource: false,
},
kimiK3: {
title: "Kimi K3",
description: "Moonshot AI Kimi K3, served through the DotHoosh gateway",
params: {
title: "Kimi K3",
model: "kimi-k3",
contextLength: 1048576,
},
icon: "dothoosh.png",
providerOptions: ["dothoosh"],
isOpenSource: false,
},
kimiK27Code: {
title: "Kimi K2.7 Code",
description:
"Moonshot AI Kimi K2.7 Code, served through the DotHoosh gateway",
params: {
title: "Kimi K2.7 Code",
model: "kimi-k2.7-code",
contextLength: 262144,
},
icon: "dothoosh.png",
providerOptions: ["dothoosh"],
isOpenSource: false,
},
};
34 changes: 34 additions & 0 deletions gui/src/pages/AddNewModel/configs/providers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1225,6 +1225,40 @@ To get started, [register](https://dataplatform.cloud.ibm.com/registration/stepo
],
apiKeyUrl: "https://studio.nebius.ai/settings/api-keys",
},
dothoosh: {
title: "DotHoosh (دات‌هوش)",
provider: "dothoosh",
refPage: "dothoosh",
description:
"Iranian AI gateway billed in Toman from a prepaid wallet — GPT, Gemini, DeepSeek and Kimi with one key",
longDescription: `DotHoosh is an Iranian AI gateway billed in Toman (IRT) from a prepaid wallet. To get started with DotHoosh:\n1. Create an API key at [gateway.dothoosh.com](https://gateway.dothoosh.com/api-keys)\n2. Paste below\n3. Select a model preset`,
params: {
apiKey: "",
},
collectInputFor: [
{
inputType: "text",
key: "apiKey",
label: "API Key",
placeholder: "Enter your DotHoosh API key",
required: true,
},
...completionParamsInputsConfigs,
],
icon: "dothoosh.png",
tags: [ModelProviderTags.RequiresApiKey],
packages: [
models.gpt61Sol,
models.gpt6Luna,
models.gemini4Argon,
models.gemini38Flash,
models.deepseekV41Flash,
models.deepseekV4Pro,
models.kimiK3,
models.kimiK27Code,
],
apiKeyUrl: "https://gateway.dothoosh.com/api-keys",
},
siliconflow: {
title: "SiliconFlow",
provider: "siliconflow",
Expand Down
1 change: 1 addition & 0 deletions packages/config-types/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ export const modelDescriptionSchema = z.object({
"azure",
"ovhcloud",
"nebius",
"dothoosh",
"scaleway",
"watsonx",
"minimax",
Expand Down
1 change: 1 addition & 0 deletions packages/openai-adapters/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ They are concerned with:
- [x] Cohere
- [x] DeepInfra
- [x] Deepseek
- [x] DotHoosh
- [ ] Flowise
- [x] Function Network
- [x] Gemini
Expand Down
2 changes: 2 additions & 0 deletions packages/openai-adapters/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,8 @@ export function constructLlmApi(config: LLMConfig): BaseLlmApi | undefined {
return openAICompatible("https://api.novita.ai/v3/openai", config);
case "nebius":
return openAICompatible("https://api.studio.nebius.ai/v1/", config);
case "dothoosh":
return openAICompatible("https://gateway.dothoosh.com/v1/", config);
case "function-network":
return openAICompatible("https://api.function.network/v1/", config);
case "tensorix":
Expand Down
1 change: 1 addition & 0 deletions packages/openai-adapters/src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ export const OpenAIConfigSchema = BasePlusConfig.extend({
z.literal("together"),
z.literal("novita"),
z.literal("nebius"),
z.literal("dothoosh"),
z.literal("function-network"),
z.literal("llama.cpp"),
z.literal("llamafile"),
Expand Down
Loading