هرمز در ویرایشگر شما

هرمز با قالب سیمیِ سازگار با OpenAI صحبت می‌کند؛ پس هر ویرایشگری که قابلیت «کلید خودتان» یا endpoint سفارشی دارد می‌تواند مستقیم از کلید ng-... شما استفاده کند. آدرس ویرایشگر را روی https://api.hormouz.net/v1 بگذارید و مدل‌ها را با شناسهٔ کامل vendor/name انتخاب کنید (مثل openai/gpt-4o-mini). GET /v1/models همهٔ مدل‌های چت را فهرست می‌کند. این راهنما VS Code، ZCode، Cursor، Cline، ویرایشگرهای JetBrains، opencode و Neovim را گام‌به‌گام پوشش می‌دهد.

VS Code (Copilot Chat، کلید خودتان)

با چت، ویرایش و حالت Agent کار می‌کند. به اشتراک Copilot نیازی نیست. تنها قابلیتی که روی زیرساخت خود Copilot می‌ماند تکمیل خودکار (Tab) است. محدودیت VS Code برای همهٔ ارائه‌دهنده‌های سفارشی.

به VS Code نسخهٔ ژوئن ۲۰۲۶ به بعد (نسخه‌های قدیمی‌تر گزینهٔ «Custom Endpoint» را ندارند) و افزونهٔ GitHub Copilot Chat نیاز دارید.

قدم ۱. مدیریت مدل‌ها را باز کنید. Command Palette را باز کنید (Cmd+Shift+P) و Chat: Manage Language Models را اجرا کنید. روی + Add Models… (بالا سمت راست) کلیک کنید.

صفحهٔ Language Models در VS Code با دکمهٔ آبی Add Models در گوشهٔ بالا

قدم ۲. ارائه‌دهندهٔ «Custom Endpoint» را انتخاب کنید. در فهرست بازشو Custom Endpoint (گزینهٔ سازگار با OpenAI) را بردارید. گزینهٔ «OpenAI» را انتخاب نکنید. آن گزینه فقط به سرورهای خود OpenAI وصل می‌شود. اگر «Custom Endpoint» در فهرست نیست، VS Code را به‌روزرسانی کنید.

فهرست ارائه‌دهنده‌ها در Add Models با گزینهٔ Custom Endpoint در پایین

قدم ۳. کلید API را وارد و مدل‌ها را تعریف کنید. VS Code اول کلید را می‌پرسد (به‌صورت امن ذخیره می‌شود)، بعد فایل chatLanguageModels.json را با یک قالب خالی باز می‌کند. برای هر مدل یک ورودی بنویسید. url آدرس کامل chat-completions است و برای همهٔ مدل‌ها یکسان؛ id شناسهٔ دقیق مدل هرمز است (vendor/name):

{
    "name": "Hormouz",
    "vendor": "customendpoint",
    "apiKey": "${input:chat.lm.secret.XXXXXXXX}",
    "apiType": "chat-completions",
    "models": [
        {
            "id": "anthropic/claude-sonnet-5",
            "name": "Claude Sonnet 5 (Hormouz)",
            "url": "https://api.hormouz.net/v1/chat/completions",
            "toolCalling": true,
            "vision": true,
            "maxInputTokens": 1000000,
            "maxOutputTokens": 16000
        },
        {
            "id": "z-ai/glm-5.2",
            "name": "GLM 5.2 (Hormouz)",
            "url": "https://api.hormouz.net/v1/chat/completions",
            "toolCalling": true,
            "vision": false,
            "maxInputTokens": 1000000,
            "maxOutputTokens": 16000
        },
        {
            "id": "moonshotai/kimi-k2.7-code",
            "name": "Kimi K2.7 Code (Hormouz)",
            "url": "https://api.hormouz.net/v1/chat/completions",
            "toolCalling": true,
            "vision": true,
            "maxInputTokens": 256000,
            "maxOutputTokens": 16000
        },
        {
            "id": "minimax/minimax-m3",
            "name": "MiniMax M3 (Hormouz)",
            "url": "https://api.hormouz.net/v1/chat/completions",
            "toolCalling": true,
            "vision": true,
            "maxInputTokens": 1000000,
            "maxOutputTokens": 16000
        },
        {
            "id": "xiaomi/mimo-v2.5",
            "name": "MiMo v2.5 (Hormouz)",
            "url": "https://api.hormouz.net/v1/chat/completions",
            "toolCalling": true,
            "vision": true,
            "maxInputTokens": 1000000,
            "maxOutputTokens": 16000
        },
        {
            "id": "openai/gpt-4o-mini",
            "name": "GPT-4o mini (Hormouz)",
            "url": "https://api.hormouz.net/v1/chat/completions",
            "toolCalling": true,
            "vision": true,
            "maxInputTokens": 128000,
            "maxOutputTokens": 16000
        }
    ]
}

مقدار apiKey تولیدشده را دست نزنید. toolCalling/vision برای هر مدل، اگر مطمئن نیستید، GET /v1/models برای هر مدل supports_tools و supports_vision را گزارش می‌دهد. بعد از ذخیره، گروه Hormouz با همهٔ مدل‌ها نمایش داده می‌شود:

مدیریت مدل‌ها در VS Code با گروه Hormouz شامل Claude Sonnet 5، GLM 5.2، Kimi K2.7 Code، MiniMax M3، MiMo v2.5 و GPT-4o mini

قدم ۴. مدل را انتخاب کنید و چت کنید. پنل Copilot Chat را باز کنید، از انتخابگر مدل پایین صفحه مدل هرمز را بردارید. حالت Ask بلافاصله کار می‌کند.

انتخابگر مدل چت در VS Code با مدل‌های هرمز

قدم ۵. یک تنظیم اضافه برای حالت Agent. حالت Agent از یک مدل کوچک «utility» هم استفاده می‌کند. بدون اشتراک Copilot اولین درخواست Agent با این خطا می‌خورد: "No utility model is configured for 'copilot-utility-small' while the selected main agent model is BYOK."

پیام خطای نبود مدل utility در چت VS Code

یک بار برای همیشه: Settings (Cmd+,) → جست‌وجوی utility → مقدار Chat: Byok Utility Model Default را از None به Main Agent Model تغییر دهید. از این به بعد جریان‌های utility هم از همان مدل هرمزِ انتخابی شما می‌گذرند. هر نوبتِ Agent ممکن است بیش از یک درخواست API بفرستد که طبیعی است.

تنظیم Chat: Byok Utility Model Default با گزینهٔ Main Agent Model

ZCode

ZCode یک ویرایشگر دسکتاپ agent-محور است که ارائه‌دهندهٔ سفارشی سازگار با OpenAI را به‌صورت بومی پشتیبانی می‌کند. هم چت و هم حالت Agent. درخواست‌ها مستقیم از دستگاه شما به هرمز می‌روند.

قدم ۱. افزودن ارائه‌دهنده. تنظیمات (چرخ‌دندهٔ پایین‌چپ) → Model settings → Add provider:

  • Name: Hormouz
  • Base URL: https://api.hormouz.net/v1
  • API format: Chat completions (/chat/completions)
  • API key: کلید ng-... شما

سپس با + Add model برای هر مدل یک ورودی بسازید. شناسهٔ کامل vendor/name و پنجرهٔ متن آن (مثل z-ai/glm-5.2 مقدار 1000000، anthropic/claude-sonnet-5 مقدار 1000000، openai/gpt-4o-mini مقدار 128000). ذخیره کنید، ارائه‌دهنده Enabled می‌شود.

تنظیمات مدل ZCode با ارائه‌دهندهٔ سفارشی Hormouz فعال، آدرس پایه و فهرست مدل‌ها

قدم ۲. ارائه‌دهندهٔ داخلی Z.ai را غیرفعال کنید (اگر حساب Z.ai ندارید لازم است). Agent در ZCode هنگام شروع سعی می‌کند پلن داخلی Z.ai/GLM را mount کند. اگر آن پلن فعال ولی متصل‌نشده باشد، کل Agent با این خطا می‌خورد: «Model config is missing. Create ~/.zcode/cli/config.json …» (provider=glm). راه‌حل: Model settings → Z.ai → Connection mode → API key و کلید را خالی بگذارید. Z.ai به حالت Disabled می‌رود و Agent به ارائه‌دهندهٔ Hormouz شما می‌رسد.

ارائه‌دهندهٔ داخلی Z.ai در ZCode پس از تغییر Connection mode به API key بدون کلید، در حالت Disabled

قدم ۳. استفاده. بازگشت به workspace → یک چت باز کنید → از انتخابگر، مدل هرمز را بردارید → پیام بفرستید. حالت Agent هم کار می‌کند: فایل می‌خواند، دستور اجرا می‌کند و ویرایش می‌کند.

Agent در ZCode با مدل anthropic/claude-sonnet-5 از طریق ارائه‌دهندهٔ Hormouz در حال پاسخ

Cursor

پشتیبانی Cursor از endpoint سفارشی محدودترینِ این سه است. به دلایلی سمت خود Cursor: هر درخواست را از سرورهای ابری خود Cursor عبور می‌دهد (نه مستقیم از دستگاه شما)؛ از میانهٔ ۲۰۲۶ قابلیت‌های Agent و Edit برای کلیدهای سفارشی مسدود شده‌اند. endpoint سفارشی فقط پنل Ask/Chat را تغذیه می‌کند؛ و یک باگ شناخته‌شده هست که با روشن بودن Override ممکن است مدل‌های خود Cursor از کار بیفتند تا آن را خاموش کنید.

توصیه: از افزونهٔ Cline (یا Continue) داخل خود Cursor استفاده کنید. Cursor افزونه‌های VS Code را اجرا می‌کند؛ Cline و Continue مستقیم از دستگاه شما به هرمز وصل می‌شوند، حلقهٔ کامل Agent را پشتیبانی می‌کنند و هر سه محدودیت بالا را دور می‌زنند:

  1. پنل Extensions → نصب Cline (یا Continue).
  2. در تنظیمات ارائه‌دهندهٔ افزونه، OpenAI Compatible را انتخاب کنید.
  3. Base URL برابر https://api.hormouz.net/v1، کلید ng-...، شناسهٔ مدل vendor/name (مثلاً anthropic/claude-sonnet-5).

مسیر بومی Cursor (فقط پنل چت): Cursor Settings → Models → Override OpenAI Base URL = https://api.hormouz.net/v1 → کلید را در فیلد OpenAI API Key بگذارید (برچسبش OpenAI است ولی کلید به همان آدرسی که تنظیم کردید می‌رود) → + Add Model → شناسهٔ دقیق مدل هرمز → Verify. اگر Verify موفق شد، مدل را در پنل چت (Cmd+L) انتخاب کنید. وقتی مدل‌های خود Cursor را می‌خواهید، Override را خاموش کنید.

Cline (هر ویرایشگر VS Code)

Cline یک افزونه است، نه ویرایشگر؛ پس در VS Code، Cursor و هر نسخهٔ مبتنی بر VS Code یکسان کار می‌کند. درخواست‌ها مستقیم از دستگاه شما به هرمز می‌رود و حلقهٔ کامل عامل را اجرا می‌کند. اگر پشتیبانی خودِ ویرایشگرتان از endpoint سفارشی محدود است، کوتاه‌ترین راه همین است.

قدم ۱. نصب. در پنل Extensions عبارت Cline را جست‌وجو کنید. راه‌های دیگر نصب در cline.bot آمده است.

قدم ۲. اتصال به هرمز. پنل تنظیمات Cline (آیکون چرخ‌دنده) را باز کنید و این مقادیر را بگذارید:

  • API Provider: OpenAI Compatible
  • Base URL: https://api.hormouz.net/v1
  • API Key: کلید ng-... شما
  • Model: شناسهٔ کامل vendor/name، مثلاً anthropic/claude-sonnet-5

گزینهٔ سادهٔ OpenAI را انتخاب نکنید؛ آن به سرورهای خود OpenAI وصل است و Base URL شما را نادیده می‌گیرد.

ویرایشگرهای JetBrains (AI Assistant)

در همهٔ ویرایشگرهای JetBrains از طریق افزونهٔ AI Assistant کار می‌کند: IntelliJ IDEA، PyCharm، GoLand، WebStorm، Rider و بقیه. در فهرست ارائه‌دهنده‌های AI Assistant، گزینهٔ OpenAI-compatible در کنار OpenAI و Anthropic آمده است.

قدم ۱. نصب AI Assistant. از Settings به Plugins و Marketplace بروید و AI Assistant را نصب کنید. بعد از نصب، ویرایشگر را دوباره باز کنید.

قدم ۲. افزودن هرمز. در Settings به Tools و بعد AI Assistant بروید و در بخش ارائه‌دهنده‌های بیرونی، OpenAI-compatible را انتخاب کنید:

  • URL: https://api.hormouz.net/v1
  • API Key: کلید ng-... شما

خودِ AI Assistant فهرست مدل‌ها را از endpoint می‌خواند؛ پس به‌محض پذیرفته‌شدن اتصال، شناسه‌ها پر می‌شوند. اگر فهرست خالی ماند، اول Base URL را بررسی کنید: باید دقیقاً به /v1 ختم شود و اسلش انتهایی نداشته باشد.

opencode (ترمینال)

opencode یک عامل ترمینالی است، نه ویرایشگر؛ پس کنار هر چیزی که الان استفاده می‌کنید اجرا می‌شود. روی macOS، لینوکس و ویندوز کار می‌کند و ارائه‌دهندهٔ سفارشی در فایل تنظیماتش تعریف می‌شود.

قدم ۱. نصب. روی macOS یا لینوکس:

curl -fsSL https://opencode.ai/install | bash

روی ویندوز اول Node.js (نسخهٔ LTS) را نصب کنید، بعد این را در PowerShell اجرا کنید. scoop install opencode و choco install opencode هم کار می‌کنند:

npm install -g opencode-ai

ترمینال را ببندید و دوباره باز کنید، بعد نصب را با opencode --version چک کنید.

قدم ۲. ساختن فایل تنظیمات. opencode فایل ~/.config/opencode/opencode.json را می‌خواند. روی macOS یا لینوکس:

mkdir -p ~/.config/opencode
nano ~/.config/opencode/opencode.json

روی ویندوز همین پوشه زیر پروفایل کاربری شماست. در PowerShell:

New-Item -ItemType Directory -Force "$HOME\.config\opencode"
notepad "$HOME\.config\opencode\opencode.json"

اگر هرمز را فقط برای یک پروژه می‌خواهید، به‌جای آن یک فایل opencode.json در ریشهٔ همان پروژه بگذارید.

قدم ۳. چسباندن تنظیمات و وارد کردن کلید. به‌جای ng-your-key-here کلیدتان را از بخش API Keys داشبورد بگذارید. model مدلی است که opencode با آن شروع می‌کند. small_model کارهای پس‌زمینه مثل نام‌گذاری جلسه‌ها را انجام می‌دهد؛ آن را هم روی یک مدل هرمز بگذارید تا این درخواست‌ها هم با کلید خودتان برود.

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "hormouz": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Hormouz",
      "options": {
        "baseURL": "https://api.hormouz.net/v1",
        "apiKey": "ng-your-key-here"
      },
      "models": {
        "z-ai/glm-5.2": {
          "name": "GLM 5.2",
          "tool_call": true,
          "limit": { "context": 1048576, "output": 16000 }
        },
        "moonshotai/kimi-k2.7-code": {
          "name": "Kimi K2.7 Code",
          "tool_call": true,
          "limit": { "context": 262144, "output": 16000 }
        },
        "anthropic/claude-sonnet-5": {
          "name": "Claude Sonnet 5",
          "tool_call": true,
          "limit": { "context": 1000000, "output": 16000 }
        }
      }
    }
  },
  "model": "hormouz/z-ai/glm-5.2",
  "small_model": "hormouz/z-ai/glm-5.2"
}

فایل opencode.json در nano با ارائه‌دهندهٔ هرمز، سه مدل و جای کلید API که هایلایت شده

فایل را ذخیره کنید. چون کلیدتان داخل آن است، روی macOS یا لینوکس دسترسی‌اش را فقط به خودتان محدود کنید: chmod 600 ~/.config/opencode/opencode.json.

قدم ۴. تست اتصال. در هر پوشه‌ای:

opencode run "Say hello"

اگر جواب گرفتید، کلید، آدرس و مدل همه درست کار می‌کنند.

ترمینالی که در آن opencode run "Say hello in one short sentence" یک سلام کوتاه برمی‌گرداند

قدم ۵. اجرای opencode در پروژه. به پوشهٔ پروژه بروید و opencode را اجرا کنید. خط زیر کادر پیام، مدل فعال را با کلمهٔ Hormouz کنارش نشان می‌دهد.

cd my-project
opencode

صفحهٔ شروع opencode در ~/my-project با عبارت «Build · GLM 5.2 Hormouz» زیر کادر پیام

قدم ۶. عوض کردن مدل. داخل opencode عبارت /models را تایپ کنید. مدل‌های هرمز با همان name که به آن‌ها داده‌اید، بعد از مدل‌های رایگان خود opencode نشان داده می‌شوند. برای اضافه کردن مدل، یک ورودی زیر models با شناسهٔ دقیق از GET /v1/models (همراه با ~ اول نام‌های مستعار) و طول context از همان فهرست بنویسید.

فهرست انتخاب مدل در opencode که Claude Sonnet 5، GLM 5.2 و Kimi K2.7 Code را بعد از مدل‌های رایگان داخلی نشان می‌دهد

خطای «Missing Authorization header» یعنی apiKey خالی است یا هنوز همان متن نمونه است. اگر بعد از نصب دستور opencode پیدا نشد، یک ترمینال تازه باز کنید. روی ویندوز اگر PowerShell گفت اجرای اسکریپت غیرفعال است، یک بار Set-ExecutionPolicy -Scope CurrentUser RemoteSigned را اجرا کنید و دوباره امتحان کنید.

Neovim (CodeCompanion)

Neovim به‌خودی‌خود کلاینت هوش مصنوعی ندارد؛ پس این کار با یک افزونه انجام می‌شود. افزونهٔ codecompanion.nvim آداپتور openai_compatible دارد و همین برای هرمز کافی است.

آداپتور را هرجا که مدیر افزونه‌تان تنظیمات را نگه می‌دارد اضافه کنید:

require("codecompanion").setup({
  adapters = {
    http = {
      hormouz = function()
        return require("codecompanion.adapters").extend("openai_compatible", {
          env = {
            url = "https://api.hormouz.net",
            api_key = "HORMOUZ_API_KEY",
            chat_url = "/v1/chat/completions",
          },
        })
      end,
    },
  },
  strategies = {
    chat = { adapter = "hormouz" },
    inline = { adapter = "hormouz" },
  },
})

دو نکته اینجا با بقیهٔ ویرایشگرهای این صفحه فرق دارد. مقدار url فقط دامنه است و /v1 ندارد، چون خودِ chat_url آن مسیر را می‌آورد؛ اگر /v1 را در هر دو بگذارید نتیجه /v1/v1/chat/completions و خطای ۴۰۴ است. و api_key نام یک متغیر محیطی است، نه خودِ کلید؛ پس HORMOUZ_API_KEY را در شل خود تعریف کنید.

عیب‌یابی (همهٔ ویرایشگرها)

علامتعلت محتملراه‌حل
فهرست مدل‌ها لود نمی‌شودآدرس پایه اشتباه استدقیقاً https://api.hormouz.net/v1
خطای 401کلید اشتباه یا عوض‌شدهکلید را در داشبورد چک کنید؛ بدنهٔ خطا "type":"authentication_error" دارد
«Model not found»نام خالی مدلشناسهٔ کامل vendor/name از GET /v1/models
402 با کد INSUFFICIENT_CREDITSموجودی تمام شدهشارژ کنید؛ خودِ پیام خطا لینک صفحهٔ پرداخت را دارد و بدنه "type":"insufficient_quota"
429 با "type":"rate_limit_error"رگبار درخواست موازیبا backoff دوباره بفرستید (SDKهای OpenAI خودکار انجام می‌دهند)
فقط داخل IDE تایم‌اوت می‌شود (curl کار می‌کند)ترافیک IDE از VPN/پروکسی با خروجی خارجی می‌گذردapi.hormouz.net را از تونل خارج کنید

هر پاسخ خطای هرمز JSON است به شکل {"error":{"code","message","status","type"}}. فیلد type با قرارداد OpenAI هم‌خوان است تا ابزارهای مبتنی بر SDK خطا را درست دسته‌بندی کنند. فهرست کامل: خطاها.

سوالات متداول

کدام ویرایشگرها با هرمز کار می‌کنند؟

هر ابزاری که آدرس پایهٔ سازگار با OpenAI بپذیرد. این راهنما VS Code (کلید خودتان در Copilot)، ZCode، پنل چت Cursor، Cline، JetBrains AI Assistant، opencode و Neovim را قدم‌به‌قدم توضیح می‌دهد؛ Continue و Zed هم به همین شکل کار می‌کنند. آدرس پایه را https://api.hormouz.net/v1 بگذارید و کلید ng-... خود را وارد کنید (تنها استثنا Neovim است که آدرس را بدون /v1 می‌گیرد).

برای VS Code به اشتراک GitHub Copilot نیاز دارم؟

نه. مدل‌های با کلید خودتان بدون اشتراک Copilot کار می‌کنند, چت، ویرایش و حالت Agent همه روی کلید هرمز اجرا می‌شوند. فقط تکمیل خودکار Tab روی سرویس خود Copilot می‌ماند.

چرا نام مدلی که خودم تایپ کردم خطا می‌دهد؟

شناسهٔ کامل vendor/name را به کار ببرید (مثلاً openai/gpt-4o-mini نه gpt-4o-mini). کاتالوگ GET /v1/models شناسه‌های دقیق را نشان می‌دهد. نام‌های خالیِ رایج خودکار اصلاح می‌شوند، ولی شناسهٔ کامل همیشه کار می‌کند.

به‌روزرسانی: 2026-10-13