اتصال OpenCode به 1ai؛ ارائهدهندهی سفارشی در opencode.json
OpenCode یک عامل متنباز برنامهنویسی است که در ترمینال، اپ دسکتاپ و ویرایشگر کار میکند: فایل میخواند و ویرایش میکند، دستور اجرا میکند و برای کارهای حساس اجازه میگیرد. OpenCode هر API سازگار با OpenAI را بهعنوان ارائهدهندهی سفارشی میپذیرد؛ پس با وان ای آی (1ai) و یک کلید به مدلهای چند سازنده دسترسی دارید، اعتبار را با پرداخت ریالی میخرید و برای کلید سقف مصرف میگذارید. در این راهنما فایل `opencode.json` آماده، انتخاب بستهی درست AI SDK و خطاهای رایج را میبینید.

چرا با 1ai
عامل ترمینالی با ابزار
OpenCode با فراخوانی ابزار فایل پیدا میکند، ویرایش میکند و دستور اجرا میکند؛ `chat/completions` در 1ai همین را با استریم پشتیبانی میکند.
چند مدل زیر یک ارائهدهنده
چند شناسهی 1ai را در یک ارائهدهنده تعریف کنید و با `/models` بین Claude، GPT، Qwen و DeepSeek جابهجا شوید.
مدل سبک برای کارهای جانبی
با `small_model` کارهای سبک مثل ساختن عنوان جلسه را به یک مدل ارزان بسپارید تا اعتبار برای کار اصلی بماند.
پرداخت ریالی
هزینهی هر درخواست به اندازهی توکنهایش از اعتبار 1ai کم میشود که با پرداخت ریالی شارژ میشود.
سقف مصرف برای هر کلید
برای کلید OpenCode سقف ماهانه، مدلهای مجاز و تاریخ انقضا بگذارید و مصرف را در پنل توسعهدهنده ببینید.
در چند قدم
- ۱
OpenCode را نصب کنید
با `curl -fsSL https://opencode.ai/install | bash` یا `npm install -g opencode-ai` نصبش کنید.
- ۲
کلید API بسازید
در پنل 1ai از بخش توسعهدهندگان ← کلیدها یک کلید با نام OpenCode و سقف ماهانه بسازید.
- ۳
کلید را با /connect ثبت کنید
در OpenCode دستور `/connect` را بزنید، گزینهی Other را انتخاب کنید، شناسهی `oneai` را بنویسید و کلید را بچسبانید.
- ۴
opencode.json را بسازید
ارائهدهندهی `oneai` را با baseURL و مدلها تعریف کنید، OpenCode را دوباره باز کنید و با `/models` مدل را انتخاب کنید.
مدلهای مناسب OpenCode (با پشتیبانی از ابزار)
همهی مدلهاGPT-6.1 Sol
پرچمدار اوپنایآی برای کارهای دقیق، تحلیلی و چندمرحلهای
Gemini 3.8 Flash
سریع، چندوجهی و با حافظهی متنی بسیار بلند
Claude Haiku 5.5
سریعترین کلود؛ در سهمیهی رایگان روزانه
سبک و ارزان؛ در سهمیهی رایگان روزانه
DeepSeek V4.1 Flash
سریع و بسیار ارزان؛ در سهمیهی رایگان روزانه
نمونه پرامپتها
پرامپت را کپی کنید، در 1ai بگذارید و جزئیات خودتان را جایگزین کنید.
برنامهریزی
Analyze this project and propose a plan to add [قابلیت موردنظر]. List the files to change and the tests to add. Do not edit anything yet.
این را با عامل Plan اجرا کنید تا فایلی تغییر نکند.
اجرای برنامه
Implement the plan above step by step. Run `[دستور تست، مثلاً npm test]` after each step and stop if a test fails.
بررسی یک فایل
@[مسیر فایل] Find possible null or undefined errors in this file and fix them with minimal changes. Explain each fix in one line.
راهنمای پروژه برای عامل
Create a short AGENTS.md for this repository: how to install, run and test it, and the coding conventions you can infer from the code.
دستور /init هم همین فایل را میسازد.
گزارش فارسی
با git log بررسی کن در ده commit آخر چه تغییرهایی داده شده و به فارسی خلاصه کن کدام بخشهای پروژه بیشترین تغییر را داشتهاند.
OpenCode چیست و برای اتصال به 1ai چه لازم دارید؟
OpenCode عامل برنامهنویسی متنباز است با دو عامل اصلی: Build برای اجرای تغییرها و Plan برای تحلیل و برنامهریزی بدون ویرایش کد؛ با کلید Tab بین این دو جابهجا میشوید. مدلها را از طریق AI SDK صدا میزند و هر API سازگار با OpenAI را میپذیرد. توضیح کلی API در صفحهی توسعهدهندگان آمده است.
پیشنیازها:
- OpenCode نصبشده و یک ترمینال امروزی
- حساب 1ai با اعتبار و یک کلید
sk-1ai-… - شناسهی مدلها با پیشوند سازنده، از مدلهای گفتگو
تنظیم opencode.json برای 1ai
فایل opencode.json را در ریشهی پروژه (یا برای همهی پروژهها در ~/.config/opencode/opencode.json) بسازید:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"oneai": {
"npm": "@ai-sdk/openai-compatible",
"name": "1ai",
"options": {
"baseURL": "https://1ai.ir/v1"
},
"models": {
"anthropic/claude-sonnet-5.5": { "name": "Claude Sonnet 5.5" },
"qwen/qwen3.8-max": { "name": "Qwen 3.8 Max" },
"deepseek/deepseek-v4.1-flash": { "name": "DeepSeek V4.1 Flash" }
}
}
},
"model": "oneai/anthropic/claude-sonnet-5.5",
"small_model": "oneai/deepseek/deepseek-v4.1-flash"
}npmباید@ai-sdk/openai-compatibleباشد که/v1/chat/completionsرا صدا میزند. بستهی@ai-sdk/openaiسراغ/v1/responsesمیرود که 1ai ندارد.- کلیدِ داخل
modelsهمان شناسهی 1ai است و مدل کامل به شکلoneai/<شناسه>نوشته میشود. - شناسهی ارائهدهنده (
oneai) باید با همان چیزی که در/connectنوشتید یکی باشد. - به جای
/connectمیتوانید درoptionsبنویسید"apiKey": "{env:ONEAI_API_KEY}"و کلید را در متغیر محیطی نگه دارید. - برای هر مدل میتوانید
limitباcontextوoutputبگذارید تا OpenCode بداند چقدر از context باقی مانده است؛ عددها را از صفحهی همان مدل بردارید.
طبق راهنمای مهاجرت OpenCode 2، نسخهی ۲ همین قالب نسخهی ۱ را هم میخواند.
کدام مدل برای OpenCode بهتر است؟
OpenCode بدون فراخوانی ابزار کار نمیکند، پس فقط مدلهای دارای tools را اضافه کنید:
| کار | Model ID پیشنهادی |
|---|---|
| عامل Build و تغییرهای چندفایلی | anthropic/claude-sonnet-5.5، openai/gpt-6.1-sol |
| کارهای طولانی و عاملمحور | qwen/qwen3.8-max، moonshotai/kimi-k3 |
| small_model و کارهای سبک | deepseek/deepseek-v4.1-flash، google/gemini-3.8-flash |
مقایسهی کلی خانوادهها در کدنویسی در برنامهنویسی با هوش مصنوعی آمده است.
خطاهای رایج OpenCode با 1ai و راهحل
- مدل در
/modelsدیده نمیشود: شناسه در بخشmodelsنیست یا فایل JSON خطای نگارشی دارد. OpenCode را دوباره باز کنید. - خطای اعتبارسنجی یا کلید پیدا نمیشود: با
opencode auth listببینید کلیدoneaiثبت شده است. - 404 با پیام Unknown endpoint: به جای
@ai-sdk/openai-compatibleبستهی@ai-sdk/openaiگذاشتهاید. - 404
model_not_found: پیشوند سازنده در کلیدmodelsجا افتاده است. - 401
invalid_api_key: کلید اشتباه، باطل یا منقضی است. - 402: اعتبار یا سقف ماهانهی کلید تمام شده است.
- 429
rate_limit_exceeded: سقف درخواست یا توکن در دقیقه پر شده؛ کمی صبر کنید و جلسههای همزمان را کم کنید. - عامل ابزار را صدا نمیزند یا وسط کار میماند: مدل را به یکی از مدلهای دارای tools عوض کنید.
چطور هزینهی OpenCode را کنترل کنیم؟
- اول با Plan برنامه بگیرید و بعد Build را اجرا کنید تا دور زدنهای بیحاصل کم شود.
small_modelرا روی یک مدل ارزان بگذارید.- برای موضوع تازه جلسهی تازه باز کنید تا تاریخچهی قبلی در هر درخواست فرستاده نشود.
- برای OpenCode کلید جدا با سقف ماهانه و فهرست مدلهای مجاز بسازید.
جزئیات در راهنمای کلیدها و کنترل هزینه آمده است. اگر ابزاری سادهتر و gitمحور میخواهید، راهنمای Aider را ببینید.
ابزارهای آماده
توضیح کد و رفع باگ
کد را بفهمید، خطایش را پیدا کنید و تمیزش کنید
ساخت عبارت باقاعده (Regex)
الگوی Regex با توضیح و نمونهی آزمون
ساخت کوئری SQL
درخواست فارسی، کوئری درست و توضیحدادهشده
دستیارهای مرتبط
برنامهنویس ارشد
نوشتن، مرور و اشکالزدایی کد با توضیح روشن
- «این کد را مرور کن و باگها و مشکلات امنیتیاش را بگو: »
- «یک API ساده برای مدیریت کارها با Node.js و Express بنویس»
سوالات متداول
آیا OpenCode با 1ai هزینه دارد؟
خود OpenCode متنباز است. هزینهی مدل به اندازهی توکنهای ورودی و خروجی هر درخواست از اعتبار 1ai کم میشود و اعتبار را با پرداخت ریالی میخرید. عاملها در یک کار چند درخواست پشت سر هم میفرستند، پس مصرفشان از یک پرسش ساده بیشتر است.
میتوانم ارائهدهندهی آمادهی OpenAI یا Anthropic را با کلید 1ai به کار ببرم؟
خیر. ارائهدهندهی Anthropic به API اختصاصی Anthropic و ارائهدهندهی OpenAI به Responses API وصل میشود و 1ai هیچکدام را ندارد. ارائهدهندهی سفارشی با @ai-sdk/openai-compatible همهی مدلها، از جمله Claude، را از مسیر Chat Completions میدهد.
کلیدی که با /connect وارد میکنم کجا ذخیره میشود؟
OpenCode کلیدها را در ~/.local/share/opencode/auth.json روی همان سیستم نگه میدارد، نه در فایل پروژه. اگر opencode.json را در مخزن commit میکنید، کلید را داخل آن ننویسید.
OpenCode 2 هم با این تنظیمات کار میکند؟
طبق راهنمای مهاجرت، نسخهی ۲ تنظیمات پشتیبانیشدهی نسخهی ۱ را میخواند. قالب بومی نسخهی ۲ کلید providers با package برابر @opencode/ai/providers/openai-compatible و settings.baseURL دارد؛ اگر به آن مهاجرت کردید، همان آدرس و شناسهها را به کار ببرید.
تنظیمات را برای یک پروژه بگذارم یا برای همه؟
اگر همهی پروژههایتان با 1ai کار میکنند، ارائهدهنده را در ~/.config/opencode/opencode.json بگذارید. فایل opencode.json داخل پروژه روی تنظیمات سراسری اعمال میشود و برای انتخاب مدل جدا در یک پروژه مناسب است.
OpenCode بدون اجازهی من فایل را تغییر میدهد؟
رفتار OpenCode را با تنظیم دسترسیها (permission) در opencode.json تعیین میکنید؛ میتوانید برای ویرایش فایل و اجرای دستورهای خاص، پرسیدن را اجباری کنید. برای شروع، کارها را با عامل Plan آغاز کنید که بهطور پیشفرض فایلهای کد را ویرایش نمیکند؛ اجرای دستورها در Plan هم تابع همان تنظیم دسترسیهاست.
چطور پیش از OpenCode مطمئن شوم کلید و آدرس درست است؟
در ترمینال curl https://1ai.ir/v1/models -H "Authorization: Bearer sk-1ai-..." را اجرا کنید. اگر فهرست مدلها برگشت، کلید و آدرس سالماند و مشکل در opencode.json است؛ نام بسته، شناسهی ارائهدهنده و کلیدهای models را دوباره بررسی کنید.
OpenCode فقط در ترمینال کار میکند؟
خیر. OpenCode علاوه بر رابط ترمینال، اپ دسکتاپ و افزونهی ویرایشگر هم دارد. ارائهدهندهی سفارشی 1ai در همهی آنها با همین opencode.json و همین شناسهها تعریف میشود.
مطالب مرتبط

استفاده از API سازگار با OpenAI در 1ai: راهنمای عملی با Python، Node.js و cURL
چطور پروژهای را که با کتابخانهی OpenAI نوشته شده، فقط با تغییر آدرس پایه و کلید به 1ai وصل کنید؛ با نمونه کد Python، Node.js و cURL، استریم، فهرست مدلها و مدیریت خطا.

کلید API در 1ai: امنیت، محدودیتها و کنترل هزینه
چطور کلیدهای API را امن نگه دارید و هزینه را مهار کنید: مدلهای مجاز، سقف اعتبار ماهانه، محدودیت نرخ، تاریخ انقضا، کلیدهای تیمی و گزارش مصرف.

مقایسه ChatGPT، Claude و Gemini: کدام مدل برای چه کاری؟
سه خانوادهی مطرح مدلهای زبانی، یعنی GPT از OpenAI، Claude از Anthropic و Gemini از گوگل، هر کدام کجا میدرخشند و چطور برای کار خودتان بهترین را انتخاب کنید.

مدل زبانی بزرگ (LLM) چیست؟ راهنمای کاربردی برای فارسی
LLM موتور بسیاری از دستیارهای هوش مصنوعی است. با مثالهای ساده، سازوکار آن، تفاوت مدلهای باز و بسته و روش انتخاب مدل مناسب برای متن و کارهای فارسی را بشناسید.
صفحههای مرتبط
همهی امکاناتاتصال Aider
Aider را با دو متغیر محیطی به 1ai وصل کنید و در ترمینال، روی مخزن git خودتان، با Claude، GPT، DeepSeek و Qwen کد بنویسید و commit بگیرید.
اتصال Cline
افزونهی Cline را با گزینهی OpenAI Compatible به 1ai وصل کنید و با Claude، GPT، Gemini و DeepSeek از یک کلید و با پرداخت ریالی کدنویسی کنید.
اتصال Continue
Continue را با چند خط config.yaml به API سازگار با OpenAI در 1ai وصل کنید و برای چت، ویرایش، Agent و تکمیل خودکار مدل جداگانه بگذارید.
اتصال OpenCode به 1ai؛ ارائهدهندهی سفارشی در opencode.json
OpenCode را با یک ارائهدهندهی سفارشی در opencode.json به 1ai وصل کنید و در ترمینال با Claude، GPT، Qwen و DeepSeek از یک کلید کدنویسی کنید.
ساخت کلید API