OpenCode ã¯ãã¿ãŒããã«ã§åäœãããªãŒãã³ ããã°ã©ãã³ã° ãšãŒãžã§ã³ãã§ãããããžã§ã¯ã ãã¡ã€ã«ã®èªã¿åããã³ãŒãã®ç·šéãã³ãã³ããšãã¹ãã®å®è¡ããªããžããªã®æ€çŽ¢ãgit ãšã®é£æºãè¡ããŸãã 1 ã€ã®ã¢ãã« ãããã€ããŒã«é¢é£ä»ããããŠããªããããã»ãŒãã¹ãŠã® OpenAI äºæãµãŒãã¹ã«æ¥ç¶ã§ããŸãã
FreeLLMAPI ã¯ãOpenAI äºæã® /v1 ã¢ãã¬ã¹ã®äžã«æ°åã® AI ãããã€ããŒããç¡æãã©ã³ãåéãããªãŒãã³ãªã»ã«ããã¹ã ã«ãŒã¿ãŒã§ãã 30 åã®ããŒã30 åã®å¶éãããã³ãªã¯ãšã¹ãã倱æããå¯èœæ§ããã 30 åã®å Žæã®ä»£ããã«ã1 ã€ã®ããŒã«ã« ã²ãŒããŠã§ã€ãš 1 ã€ã®çµ±åããŒããããŸããã«ãŒã¿ãŒèªäœãå©çšå¯èœãªã¢ãã«ãéžæãããšã©ãŒ 429 ãŸã㯠5xx ãçºçããå Žåã¯æ¬¡ã®ã¢ãã«ã«åãæ¿ãããªã¯ãšã¹ããç¡ææéã®å²ãåœãŠãè¶ ããªãããã«ããŸãã
ãã®æçš¿ã§ã¯ãFreeLLMAPI ã®ã€ã³ã¹ããŒã«ããããã€ããŒã®è¿œå ãã²ãŒããŠã§ã€ã® OpenCode ãžã®æ¥ç¶ã«ã€ããŠèª¬æããŸãã
å¿ èŠãªãã®
æ©èœããã«ã¯æ¬¡ã® 4 ã€ã®ãã®ãå¿ èŠã§ãã
- OpenCode ãã€ã³ã¹ããŒã«ãããŠããŸãã ãšãŒãžã§ã³ãããŸã ã€ã³ã¹ããŒã«ãããŠããªãå Žåã¯ãOpenCode ãš DeepSeek ã«é¢ããå¥ã®ã¡ã¢ã§ã€ã³ã¹ããŒã«æé ã«ã€ããŠèª¬æããŸããã
- FreeLLMAPI ãå®è¡ãããŠããŸãã æãç°¡åãªæ¹æ³ã¯ããã¹ã¯ããã ã¢ããªã±ãŒã·ã§ã³ãŸã㯠Docker ã³ã³ãããã€ã³ã¹ããŒã«ããããšã§ãã
- Node.js 20.18 以éã ããã¯ãOpenCode ãæ§æãã CLI ãžã§ãã¬ãŒã¿ãŒã«å¿ èŠã§ãã OpenCode èªäœã¯ Node ãªãã§ã€ã³ã¹ããŒã«ã§ããŸãã
- å°ãªããšã 1 ã€ã®ãããã€ãã®ããŒã Google AI StudioãGroqãCerebrasãMistralãOpenRouterãNVIDIAãHuggingFace ããã³ã«ã¿ãã°ã®ãã®ä»ã®ãµãŒãã¹ã®ç¡æãã©ã³ãé©ããŠããŸãã
FreeLLMAPI ã®ã€ã³ã¹ããŒã«
ãããžã§ã¯ãã«ã¯è€æ°ã®ã€ã³ã¹ããŒã« ãã¹ããããŸããã䜿çšã®ã·ã¹ãã ã«ãšã£ãŠãã䟿å©ãªãã®ãéžæããŠãã ããã
ãã¹ã¯ããã ã¢ããªã±ãŒã·ã§ã³
Windows ãš macOS ã®æãç°¡åãªãªãã·ã§ã³ã¯ããªãªãŒã¹ ããŒãžã«ããæ¢è£œã®ã€ã³ã¹ããŒã©ãŒã§ãã Windows ã§ã¯ .exeãmacOS ã§ã¯ Apple Silicon ãŸã㯠Intel ã®å Žå㯠.dmg ã§ããã¢ããªã±ãŒã·ã§ã³ã¯ãã¬ã€å ã«ååšããã«ãŒã¿ãŒãšã³ã³ãããŒã« ããã«ãããŒã«ã«ã§èµ·åããŸãã
ãã¹ã¯ããã ããŒãžã§ã³ã«ã¯ãã¹ã¯ãŒãã¯å¿ èŠãããŸãããããã«ã¯é衚瀺ã®ããŒã«ã« ã¢ã«ãŠã³ããä»ããŠç¬èªã«ãã°ã€ã³ããŸããå¿ èŠãªèªèšŒæ å ±ã¯ããã¬ã€ ãããã¢ãã ãŠã£ã³ããŠãŸã㯠[ããŒ] ããŒãž ããããŒããã®çµ±åããŒã®ã¿ã§ãã
ã¢ããªã±ãŒã·ã§ã³ ããŒã¿ã¯ 1 ã€ã®ãã£ã¬ã¯ããªã«ãããŸãã
- Windows â %APPDATA%\FreeLLMAPI\
- macOS â ~/Library/Application Support/FreeLLMAPI/
- Linux â ~/.config/FreeLLMAPI/
Docker
Docker ããã§ã«ã€ã³ã¹ããŒã«ãããŠããå Žåã¯ã1 ã€ã®ã³ãã³ãã§ãµãŒããŒãèµ·åãããŸããã¹ã¯ãªãã㯠~/freellmapi ãã£ã¬ã¯ããªãäœæããæå·åããŒãçæããã€ã¡ãŒãžãããŠã³ããŒãããŠã³ã³ãããèµ·åããŸãã
curl -fsSL https://freellmapi.co/install.sh | bash
ã¹ã¯ãªãããå床å®è¡ããŠãå®å šã§ãã.env ãã¡ã€ã«ãšæå·åããŒãä¿åãããã³ã³ãããŒãææ°ããŒãžã§ã³ã«æŽæ°ãããŸãã Windows ã§ã¯ããã®ã¡ãœãã㯠WSL ãŸãã¯ä»»æã® bash ç°å¢ã§æ©èœããŸãã
èµ·ååŸã次ã®å Žæã§ããã«ãéããŸãã
http://localhost:3001
ãµãŒããŒãã€ã³ã¹ããŒã«ããã«ã¯ãé»åã¡ãŒã«ãšãã¹ã¯ãŒãã䜿çšããŠã¢ã«ãŠã³ããäœæããå¿ èŠããããŸãããã¹ã¯ãŒããå¿ããå Žåããªã»ãã ã³ãŒããã³ã³ãã ãã°ã«åºåãããŸãã
docker compose logs -f freellmapi
Docker Compose
æ§æã git ã«ä¿æããèµ·åãæåã§ç®¡çãããå Žåã¯ãéåžžã® Compose ã§ååã§ãã macOS ããã³ Linux ã®å Žå:
git clone https://github.com/tashfeenahmed/freellmapi.git
cd freellmapi
ENCRYPTION_KEY="$(openssl rand -hex 32)"
printf "ENCRYPTION_KEY=%s\nPORT=3001\n" "$ENCRYPTION_KEY" > .env
docker compose up -d
Windows PowerShell ã®å Žå:
git clone https://github.com/tashfeenahmed/freellmapi.git
cd freellmapi
$Bytes = New-Object Byte[] 32
[Security.Cryptography.RandomNumberGenerator]::Create().GetBytes($Bytes)
$ENCRYPTION_KEY = -join ($Bytes | ForEach-Object { "{0:x2}" -f $_ })
"ENCRYPTION_KEY=$ENCRYPTION_KEY`nPORT=3001" | Out-File -Encoding utf8 .env
docker compose up -d
ENCRYPTION_KEY ããŒã¯å¿ é ã§ããSQLite ããŒã¿ããŒã¹å ã®ãããã€ã㌠ããŒãæå·åããããã«äœ¿çšãããŸãããã®å Žã§å€æŽããããšã¯ã§ããŸãããå€ãã·ãŒã¯ã¬ããã¯åŸ©å·åãããªããªããŸããããŒããŒã·ã§ã³ã®å Žåããããžã§ã¯ãã«ã¯å¥ã®ã³ãã³ãrotate-encryption-keyããããŸãã
ãœãŒã¹ããå®è¡
éçºãŸãã¯ãããã°ã®å ŽåãNode.js ãéããŠãããžã§ã¯ããå®è¡ã§ããŸãã
git clone https://github.com/tashfeenahmed/freellmapi.git
cd freellmapi
npm install
ENCRYPTION_KEY="$(node -e 'console.log(require("crypto").randomBytes(32).toString("hex"))')"
printf "ENCRYPTION_KEY=%s\nPORT=3001\n" "$ENCRYPTION_KEY" > .env
npm run dev
ãã®ã¢ãŒãã§ã¯ãAPI ãšããã«ã¯ããŒã 3001 ã§èµ·åãããVite ã€ã³ã¿ãŒãã§ã€ã¹ã¯ 5173 ã§èµ·åãããŸãã
ååèµ·åããŒãšãããã€ã㌠ããŒ
ããã«ãéãã[ããŒ] ããŒãžã«ç§»åããŠã䜿çšãããµãŒãã¹ã®ããŒã远å ããŸããåãããã€ããŒã®ã€ã³ã¿ãŒãã§ã€ã¹ã«ã¯ãç»é²ãžã®ãªã³ã¯ãšããŒãååŸããå Žæã®ãã³ããå«ãŸããŠããŸãã Google AI Studio ã Groq ãªã©ã1 ã€ã 2 ã€ããå§ããã ãã§ååã§ãã
远å ããããšãããŒã¯ãã«ã¹ãã§ãã¯ãåããŸãããããã€ããŒããšã©ãŒã§å¿çããå ŽåãããŒã¯ãªã¹ãã«æ®ããŸãããç°åžžãšããŠããŒã¯ãããŸããå床ãã§ãã¯ããããåé€ããããšãã§ããŸãã
次ã«ãã¢ãã« ããŒãžã«ç§»åããŠãå©çšå¯èœãªã¢ãã«ã確èªããå¿ èŠããããŸããããã§ã¯ãã«ãŒãã£ã³ã°æŠç¥ãšãã©ãŒã«ãã㯠ãã§ãŒã³ (ãšã©ãŒãå¶éãçºçããå Žåã«ã«ãŒã¿ãŒãé²ããã§ãŒã³) ã®é åºãèšå®ã§ããŸãã èªå ã¢ãã«ã¯ãã«ãŒã¿ãŒèªäœã«ãã£ãŠéžæãè¡ãããããšãæå³ããŸããããã«å ããŠãauto:fastãauto:smart ãªã©ã®ãªãã·ã§ã³ããç¹å®ã®ã¿ã¹ã¯çšã®ååä»ããããã¡ã€ã«ãå©çšã§ããŸãã
ãã§ãŒã³å ã«ããŒã«ããµããŒãããã¢ãã«ããããã©ããã確èªããããšãéèŠã§ãã OpenCodeã¯ããŒã«åŒã³åºããç©æ¥µçã«å©çšããŠããããã®æ©èœãç¡ãã¢ãã«ã§ã¯ãã¡ã€ã«ã®èªã¿èŸŒã¿ãã³ãã³ãã®å®è¡ãæ£åžžã«è¡ããŸããã
çµ±åããŒã¯ãã㌠ããŒãžããŸãã¯ãã¹ã¯ããã ã¢ããªã±ãŒã·ã§ã³ã®ãã¬ã€ã§ååŸãããŸãããã¬ãã£ãã¯ã¹ãä»ããæååã®ããã«èŠããŸãã
freellmapi-...
OpenCode ã§ç€ºãããã®ã¯ãåã ã®ãããã€ããŒã®ããŒã§ã¯ãªãããã®ããŒã§ãã
OpenCode ã«æ¥ç¶
FreeLLMAPI ã«ã¯ãå®è¡äžã®ã²ãŒããŠã§ã€ããã¢ãã« ãã£ã¬ã¯ããªãèªã¿åããæ¢åã®æ§æã®ããã¯ã¢ãã ã³ããŒãäœæããããã«ãããã€ããŒãæ éã«è¿œå ããæ§æãžã§ãã¬ãŒã¿ãŒããããŸãã
ãŸãã¯ç°å¢å€æ°ã«çµ±äžããŒãèšå®ããŸãããããžã§ãã¬ãŒã¿ãŒã¯åå¥ã®ãã©ã°ã®ä»£ããã«ãããèªã¿åããããã·ãŒã¯ã¬ããã¯ã³ãã³ãå±¥æŽã«æ®ããŸããã
macOS ããã³ Linux ã®å Žå:
export FREELLMAPI_API_KEY=freellmapi-YOUR_KEY
Windows PowerShell ã®å Žå:
$env:FREELLMAPI_API_KEY="freellmapi-YOUR_KEY"
ã§ã¯ãæ£ç¢ºã«äœãèšé²ãããããèŠãŠã¿ãŸãããã
npx freellmapi setup-opencode --url http://localhost:3001 --dry-run
diff ã«åé¡ããªãå Žåã¯ããã©ã°ãæå®ããã«ã³ãã³ããç¹°ãè¿ããŸãã
npx freellmapi setup-opencode --url http://localhost:3001
ãžã§ãã¬ãŒã¿ãŒã¯ã°ããŒãã«ãª OpenCode æ§æãæžã蟌ã¿ãŸãã
~/.config/opencode/opencode.json
freellmapi ãããã€ããŒã¯ã@ai-sdk/openai-compatibility ããã±ãŒãžãããŒã¹ ã¢ãã¬ã¹ http://localhost:3001/v1ãããã³ã©ã€ã ã«ã¿ãã°ããã®ã¢ãã«ã®ããããšãšãã«è¡šç€ºãããŸããããã©ã«ãã®ã¢ãã«ã¯freellmapi/autoã«ãªããŸãã
ããŒèªäœã¯ãã¡ã€ã«ã«ã¯å«ãŸããŸãããæ§æã«ã¯çœ®æ {env:FREELLMAPI_API_KEY} ãå«ãŸããŠããŸãããããã£ãŠã倿°ã¯ãšãŒãžã§ã³ãã®èµ·åæã«èšå®ããããŸãŸã«ããå¿ èŠããããŸãã
opencode
ãã®æ¹æ³ã¯ãã·ãŒã¯ã¬ãããæ§æå ã«ä¿åããããgit å ã«ãä¿åãããªãããã䟿å©ã§ãã CI ããã³ 1 åéãã®å®è¡ã®å Žåãããã¯ããŒããã¡ã€ã«ã«ä¿åãããããæ£ç¢ºã§ãã
æåèšå®
ãžã§ãã¬ãŒã¿ãŒãå®è¡ããããªãå Žåã¯ãopencode.json ã«ãããã€ããŒãæåã§èšè¿°ããããšãã§ããŸããæå°ã®ãªãã·ã§ã³ã¯æ¬¡ã®ããã«ãªããŸãã
{
"$schema": "https://opencode.ai/config.json",
"model": "freellmapi/auto",
"provider": {
"freellmapi": {
"npm": "@ai-sdk/openai-compatible",
"name": "FreeLLMAPI",
"options": {
"baseURL": "http://localhost:3001/v1",
"apiKey": "{env:FREELLMAPI_API_KEY}"
},
"models": {
"auto": {
"name": "FreeLLMAPI Auto Router",
"limit": { "context": 1048576, "output": 65536 }
}
}
}
}
}
æäžäœã®ã¢ãã« ãã£ãŒã«ãã¯éèŠã§ããããããªããšãOpenCode ã¯åŒãç¶ã以åã®ã¢ãã«ã䜿çšããããæ°èŠã€ã³ã¹ããŒã«ã§äœãéžæãããªãå¯èœæ§ããããŸããã³ã³ããã¹ããšåºåå¶éãçºæããã®ã§ã¯ãªããã²ãŒããŠã§ã€å¿çããååŸããããšããå§ãããŸãã
curl http://localhost:3001/v1/models
æåã§åãæ¿ããå¿ èŠãããå Žåã¯ãç¹å®ã®èå¥åãã¢ãã« ãªã¹ãã«è¿œå ã§ããŸãããã ããæ¥åžžã®äœæ¥ã§ã¯èªåã§ååã§ããã«ãŒã¿ãŒèªäœãã©ã€ã ã¢ãã«ãéžæããå¶éã«éãããšåãæ¿ããŸãã
äœ¿çšæ¹æ³
ãªãŒãã³ã³ãŒããèµ·åãããšãããªãã¿ã®ã³ãã³ãã§ã¢ãã«ã®ãªã¹ããéããŸãã
/models
FreeLLMAPI ãããã€ããŒãšèªåã¢ãã«ãå«ãŸããŸãããã®åŸã¯éåžžã©ããäœæ¥ãé²ã¿ãŸããã¿ã¹ã¯ã説æãã@ ã§ãã¡ã€ã«ãæå®ããTab ããŒã§èšç»ã¢ãŒããåãæ¿ãã/undo ã³ãã³ãã§ç·šéå 容ãããŒã«ããã¯ããŸããæ°ãããããžã§ã¯ãã®å Žåã/init ãå®è¡ããŠãšãŒãžã§ã³ãã« AGENTS.md ãäœæããããšäŸ¿å©ã§ãã
ããã€ãã®å®è·µçãªãã³ã:
- ã«ãŒãã£ã³ã°ã ã«ãŒãã³ã®å Žåã¯ãèªåã®ãŸãŸã«ããŸããé床ãå¿ èŠãªå Žåã¯ãå質ã auto:smart ãŸãã¯ã«ã¿ãã°ã®ç¹å®ã®åŒ·åãªã¢ãã«ã§ããã°ãauto:fast ã詊ããŠãã ããã
- 蚺æ åã²ãŒããŠã§ã€ã®å¿çã«ã¯ãå®éã«ãªã¯ãšã¹ããåŠçãããããã€ããŒãšã¢ãã«ã®ååãå«ã X-Routed-Via ããããŒãå«ãŸããŠããŸããã«ãŒã¿ãŒãã¿ã¹ã¯ãéä¿¡ããå Žæã衚瀺ãããŸãã
- åæã [åæ] ããŒãžã®ããã«ã«ã¯ããªã¯ãšã¹ãã®éãæåãp50/p95 é å»¶ããããã€ããŒããšã®ããŒã¯ã³æ¶è²»éã衚瀺ãããŸãã
- 察話ã®ç¶ç¶æ§ã äŒè©±ã®éäžã§ã¢ãã«ãåãæ¿ããå Žåãã²ãŒããŠã§ã€ã¯ã³ã³ããã¹ãã®è»¢éã«é¢ããçãã¡ã¢ã远å ã§ããŸãã倿° FREELLMAPI_CONTEXT_HANDOFF=on_model_switch ã«ãã£ãŠæå¹ã«ãªããŸãã
OpenCode ãã³ã³ãããŒå ã§å®è¡ãããFreeLLMAPI ããã¹ãäžã§å®è¡ãããŠããå Žåãlocalhost ã¯ã³ã³ãããŒèªäœãæããŸãããã®å Žåãhost.docker.internal ãŸãã¯ããŒã¹ URL ã®ã³ã³ãããŒããã¢ã¯ã»ã¹ã§ããå¥ã®ã¢ãã¬ã¹ã䜿çšããå¿ èŠããããŸãã
泚æãã¹ãããš
FreeLLMAPI ã¯ææã¢ãã«ã®ä»£æ¿åã§ã¯ãªããSLA ã®ãããµãŒãã¹ã§ããããŸãããããã¯ãç¡æãã©ã³ã 1 ã€ã®ãã¡ããšããã²ãŒããŠã§ã€ã«ãã³ãã«ããæ¹æ³ã§ãããããã£ãŠãããã€ãã®å¶éããããŸãã
- å質ã¯å€åããŸãã ç¡ææéãçµäºãã1 æ¥ãããã®å²ãåœãŠéã䜿ãæãããå§ãã倿¹é ãã«ãã«ãŒã¿ãŒã¯æ§èœã®äœãã¢ãã«ã«åãæ¿ããå¯èœæ§ããããŸããå²ãåœãŠã¯éåžžãUTC ã®åå 0 æã«ãªã»ãããããŸãã
- ã¬ã€ãã³ã·ã¯å€åããŸãã ãããã€ããŒããšã«å¯Ÿå¿ãç°ãªããããããã¯ã¢ãã ã¢ãã«ã«åãæ¿ãããšããªã¯ãšã¹ãã«èããæéããããå ŽåããããŸãã
- ãã©ãã°ã·ãã ã¢ãã«ã¯ãããŸããã åªããã¢ãã«ã¯ãããŸãããããããšã³ãã§ã¯ãããŸãããç¡æãã©ã³ã§å©çšã§ããŸããè€éãªã¢ãŒããã¯ãã£ã®å Žåãããã¯æ€èšãã䟡å€ããããŸãã
- ã²ãŒããŠã§ã€ã¯å®è¡ãããŠããå¿ èŠããããŸãã ã¢ããªã±ãŒã·ã§ã³ãŸãã¯ã³ã³ããã忢ããŠããå ŽåãOpenCode ã¯å¿çãåãåããŸããããã¬ã€å ã®ã¢ããªã±ãŒã·ã§ã³ãèªåèµ·åããããã³ã³ãã ããªã·ãŒãåèµ·åãããšããã®åé¡ã¯è§£æ±ºããŸãã
- ãããžã§ã¯ã㯠1 人ã®ãŠãŒã¶ãŒåãã«èšèšãããŠããŸãã ãããã€ã㌠ããŒã¯ããŒã«ã«ã«ä¿åãããæå·åãããŠããŸãããè€æ°äººã§ããã«ãå ±æããããšã¯ããã®ããŒã«ã®ã·ããªãªã§ã¯ãããŸãããçµ±åããŒãš .env ã¯ãéåžžã®ã·ãŒã¯ã¬ãããšåãæ¹æ³ã§ä¿è·ããå¿ èŠããããŸãã
ãããŠããã 1 ã€ã®ãã¥ã¢ã³ã¹ããããŸããã¢ãã« ã«ã¿ãã°ã¯èªåçã«æŽæ°ãããŸãããç¡æã€ã³ã¹ããŒã«ã§ã¯ã«ã¿ãã°ã®ã¹ãããã·ã§ãããçŽ 30 æ¥é ããŠåä¿¡ãããŸãããã¬ãã¢ã ææãã©ã³ã§ã¯ã¢ããããŒããé«éåãããŸããããããžã§ã¯ãã«æ £ããå¿ èŠã¯ãããŸãããã«ãŒã¿ãŒèªäœã¯ç¡æã§ãªãŒãã³ãªãŸãŸã§ãã
ãªã³ã¯
https://github.com/tashfeenahmed/freellmapi
https://freellmapi.co/
https://freellmapi.co/models
https://github.com/tashfeenahmed/freellmapi/releases/latest
https://github.com/tashfeenahmed/freellmapi/blob/main/docs/en/install/01-install.md
https://github.com/tashfeenahmed/freellmapi/blob/main/docs/en/clients/01-agent-clients.md
https://github.com/tashfeenahmed/freellmapi/blob/main/cli/README.md
https://opencode.ai/
https://opencode.ai/docs/
https://opencode.ai/docs/providers/
ãœãŒã¹
https://github.com/tashfeenahmed/freellmapi
https://github.com/tashfeenahmed/freellmapi/blob/main/README.ru.md
https://github.com/tashfeenahmed/freellmapi/blob/main/docs/en/install/01-install.md
https://github.com/tashfeenahmed/freellmapi/blob/main/docs/en/clients/01-agent-clients.md
https://github.com/tashfeenahmed/freellmapi/blob/main/docs/en/clients/02-supported-agents.md
https://github.com/tashfeenahmed/freellmapi/blob/main/cli/README.md
https://opencode.ai/docs/providers/










