Files
public/opencode/README.md
T
ixoblakp 22938b01ca refactor: move OpenCode artifacts under opencode/
arka/public is the dump for all Arka downloads. Keep a root stub so the
old installer URL still works. Document in-OpenCode bash install.
2026-08-27 17:56:04 +03:00

238 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# OpenCode и модели Arka AI
Arka AI — OpenAI-совместимый API (`https://api.arka-ai.ru/v1`). В каталоге models.dev его нет, поэтому в свежем OpenCode провайдера **Arka-AI** и списка моделей нет, пока не поставить плагин.
Одна команда ставит плагин, skill и (по желанию) ключ. Каталог чат-моделей подтягивается сам (~116 из ~216; без TTS/картинок/видео/эмбеддингов). Снимок каталога обновляется каждый день в **05:00 по Москве**.
Нужен [API-ключ Arka AI](https://arka-ai.ru/docs/account/api-keys). Секрет ключа показывается **один раз** при создании.
---
## Быстрый старт
```bash
curl -fsSL https://git.arka-ai.ru/arka/public/raw/branch/main/opencode/install-arka-provider.sh | bash
```
Скрипт спросит `ARKA_API_KEY` (можно оставить пустым и задать позже).
Ключ и модель по умолчанию сразу:
```bash
curl -fsSL https://git.arka-ai.ru/arka/public/raw/branch/main/opencode/install-arka-provider.sh \
| bash -s -- --key "$ARKA_API_KEY" --set-default DeepSeek-V4-Pro
```
Дальше:
1. Откройте **новый терминал** (чтобы подхватился `export ARKA_API_KEY`).
2. Перезапустите OpenCode.
3. Команда `/models` — в списке должен быть провайдер **Arka-AI** и чат-модели.
Если OpenCode запущен из GUI / иконки / сокета, а не из login-shell, переменная из `~/.bashrc` до него может не дойти. Задайте `ARKA_API_KEY` в том окружении, откуда стартует OpenCode, или введите ключ в интерактивном приглашении установщика.
### Из уже открытого OpenCode
Отдельного магазина плагинов у OpenCode нет. Можно не выходить из CLI: попросите **текущую** модель (любую, не Arka) выполнить установщик через bash.
Вставьте в чат (подставьте свой ключ):
```
Поставь провайдер Arka AI для OpenCode. Не спрашивай ключ интерактивно.
Выполни одну команду и покажи вывод:
curl -fsSL https://git.arka-ai.ru/arka/public/raw/branch/main/opencode/install-arka-provider.sh | bash -s -- --key 'ARKA_API_KEY_HERE' --set-default DeepSeek-V4-Pro
После успеха напиши, что нужно полностью перезапустить OpenCode (конфиг не подхватывается на лету).
```
Что происходит:
1. Агент вызывает встроенный bash/shell.
2. OpenCode спросит разрешение на команду — нажмите Allow.
3. Скрипт пишет плагин, skill и ключ в `~/.config/opencode` (установщик сам по себе офлайн; `curl` только качает скрипт).
4. `--key` обязателен: приглашение «введите ключ» в неинтерактивном пайпе зависнет.
5. **Перезапустите OpenCode целиком** — плагин грузится только на старте. Затем `/models` → **Arka-AI**.
Пока сессия не перезапущена, разговор идёт на старой модели. Это нормально: установщик не требует Arka.
### Что ставится
| Куда | Что |
|------|-----|
| `~/.config/opencode/plugins/arka-ai.ts` | Плагин провайдера **Arka-AI** |
| `~/.config/opencode/skills/arka-provider/SKILL.md` | Skill: как обновить каталог и сменить модель |
| `~/.bashrc` (или первый из `.zshrc` / `.profile`) | `export ARKA_API_KEY=…`, если ключ передали |
| `~/.config/opencode/opencode.json` | Только при `--set-default`: `"model": "Arka-AI/<id>"`. Существующий конфиг **не затирается**. |
Установщик **офлайн** и идемпотентный: сеть не трогает, повторный запуск перезаписывает плагин и skill каноническими копиями.
`python3` нужен только с `--set-default`. Отдельный `bun` на машине не нужен — у OpenCode свой runtime.
### Модель по умолчанию
Идентификаторы — как в каталоге, с префиксом провайдера:
```json
{
"model": "Arka-AI/DeepSeek-V4-Pro"
}
```
Примеры: `Arka-AI/DeepSeek-V4-Pro`, `Arka-AI/qwen3.8-max`, `Arka-AI/kimi-k3`, `Arka-AI/MiniMax-M3`, `Arka-AI/GLM-5.3`, `Arka-AI/deepseek-v4-flash-0731`.
Их всегда оставляем в списке, даже если фильтр чат-моделей их бы отсёк.
### Обновить каталог
```bash
rm -f ~/.cache/opencode/arka-ai-models.json
```
Перезапустите OpenCode. Плагин сначала берёт публичный снимок
`https://git.arka-ai.ru/arka/public/raw/branch/main/opencode/catalog.json`
(без ключа), при ошибке — живой `https://api.arka-ai.ru/v1/models`. Локальный кэш живёт 24 часа. Конфиг OpenCode на лету не перечитывается.
Список моделей (ключ не нужен):
```bash
curl -sS https://git.arka-ai.ru/arka/public/raw/branch/main/opencode/catalog.json | python3 -m json.tool
```
Вызовы моделей идут на `https://api.arka-ai.ru/v1` с `ARKA_API_KEY`.
### Если что-то не так
| Симптом | Что проверить |
|---------|----------------|
| После `/models` нет Arka-AI | Есть ли `~/.config/opencode/plugins/arka-ai.ts`; экспортирован ли `ARKA_API_KEY` **в процессе OpenCode**; открыт ли новый шелл |
| Каталог не меняется | `rm -f ~/.cache/opencode/arka-ai-models.json` и рестарт |
| Ошибка импорта плагина | Снова запустить установщик — он вернёт канонический файл |
| `curl` отдаёт HTML, не скрипт | Нужен путь `/raw/branch/main/…`, не страница репозитория |
---
# OpenCode and Arka AI models
Arka AI is an OpenAI-compatible API at `https://api.arka-ai.ru/v1`. It is not in models.dev, so a fresh OpenCode install has no **Arka-AI** provider until you add the plugin.
One command installs the plugin, a companion skill, and (optionally) your API key. The chat catalog loads on OpenCode start (~116 of ~216 models; TTS, image, video, and embeddings are filtered out). The published catalog snapshot refreshes daily at **05:00 Europe/Moscow**.
You need an [Arka AI API key](https://arka-ai.ru/docs/account/api-keys). The secret is shown **once** at creation.
## Quick start
```bash
curl -fsSL https://git.arka-ai.ru/arka/public/raw/branch/main/opencode/install-arka-provider.sh | bash
```
The script prompts for `ARKA_API_KEY` (blank is allowed; set it later).
Key and default model in one go:
```bash
curl -fsSL https://git.arka-ai.ru/arka/public/raw/branch/main/opencode/install-arka-provider.sh \
| bash -s -- --key "$ARKA_API_KEY" --set-default DeepSeek-V4-Pro
```
Then:
1. Open a **new shell** so `export ARKA_API_KEY` is picked up.
2. Restart OpenCode.
3. Run `/models` — you should see provider **Arka-AI** and the chat models.
If OpenCode is started from a GUI, dock icon, or socket rather than a login shell, `~/.bashrc` may not reach it. Set `ARKA_API_KEY` in that process environment, or type it at the installer prompt.
### From inside OpenCode
OpenCode has no plugin store. You do not have to leave the CLI: ask the **current** model (any provider, not Arka) to run the installer via bash.
Paste this (put your real key in):
```
Install the Arka AI OpenCode provider. Do not prompt for the key.
Run this exact command and show the output:
curl -fsSL https://git.arka-ai.ru/arka/public/raw/branch/main/opencode/install-arka-provider.sh | bash -s -- --key 'ARKA_API_KEY_HERE' --set-default DeepSeek-V4-Pro
When it succeeds, tell me I must fully restart OpenCode (config is not hot-reloaded).
```
What happens:
1. The agent uses the built-in bash/shell tool.
2. OpenCode asks permission — Allow the command.
3. The script writes the plugin, skill, and key under `~/.config/opencode` (the installer itself is offline; `curl` only fetches the script).
4. `--key` is required: the interactive key prompt hangs in a non-interactive pipe.
5. **Fully restart OpenCode** — plugins load only at startup. Then `/models` → **Arka-AI**.
Until you restart, this session keeps the old model. That is expected: the installer does not need Arka.
### What the installer writes
| Path | Role |
|------|------|
| `~/.config/opencode/plugins/arka-ai.ts` | **Arka-AI** provider plugin |
| `~/.config/opencode/skills/arka-provider/SKILL.md` | How to refresh the catalog and change the default model |
| `~/.bashrc` (else first existing `.zshrc` / `.profile`) | `export ARKA_API_KEY=…` when a key is given |
| `~/.config/opencode/opencode.json` | Only with `--set-default`: `"model": "Arka-AI/<id>"`. An existing config is **not** replaced. |
The installer is **offline** and idempotent: no network calls; re-running overwrites plugin and skill with the canonical copies.
`python3` is required **only** with `--set-default`. You do not need `bun` on the host — OpenCode ships its own runtime.
### Default model
Use catalog ids with the provider prefix:
```json
{
"model": "Arka-AI/DeepSeek-V4-Pro"
}
```
Examples: `Arka-AI/DeepSeek-V4-Pro`, `Arka-AI/qwen3.8-max`, `Arka-AI/kimi-k3`, `Arka-AI/MiniMax-M3`, `Arka-AI/GLM-5.3`, `Arka-AI/deepseek-v4-flash-0731`.
Those ids stay visible even if the chat filter would drop them.
### Refresh the catalog
```bash
rm -f ~/.cache/opencode/arka-ai-models.json
```
Restart OpenCode. The plugin fetches the public snapshot
`https://git.arka-ai.ru/arka/public/raw/branch/main/opencode/catalog.json`
(no key), then falls back to live `https://api.arka-ai.ru/v1/models`. Local cache TTL is 24 hours. OpenCode does not hot-reload config.
Inspect the published list (no key):
```bash
curl -sS https://git.arka-ai.ru/arka/public/raw/branch/main/opencode/catalog.json | python3 -m json.tool
```
Inference still uses `ARKA_API_KEY` against `https://api.arka-ai.ru/v1`.
### Troubleshooting
| Symptom | Check |
|---------|--------|
| No Arka-AI after `/models` | `~/.config/opencode/plugins/arka-ai.ts` exists; `ARKA_API_KEY` is set **in the OpenCode process**; you opened a new shell |
| Models look stale | `rm -f ~/.cache/opencode/arka-ai-models.json` and restart |
| Plugin import error | Re-run the installer to restore the canonical file |
| `curl` returns HTML | Use `/raw/branch/main/…`, not the repo page |
---
## Files in this folder
| File | Role |
|------|------|
| `install-arka-provider.sh` | Self-contained installer (the one-liner) |
| `plugins/arka-ai.ts` | Plugin source (embedded in the installer) |
| `skills/arka-provider/SKILL.md` | Skill source (embedded in the installer) |
| `catalog.json` | Filtered chat catalog, refreshed daily at 05:00 Europe/Moscow |
| `README.md` | This page — copy into arka-ai.ru «агентные помощники» / agentic helpers |
This directory is `opencode/` inside the public dump [arka/public](https://git.arka-ai.ru/arka/public).