Перейти к основному содержанию
OpenCode использует формат конфигурации JSON и поддерживает конфигурацию как на системном уровне (глобальную), так и на уровне проекта (локальную).

Файлы конфигурации

Конфигурация на системном уровне

Расположение: ~/.config/opencode/opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "anthropic": {
      "options": {
        "apiKey": "{env:MEGALLM_API_KEY}",
        "baseURL": "https://ai.megallm.io/v1"
      }
    }
  },
  "autoupdate": true,
  "tools": {
    "bash": true,
    "edit": true,
    "write": true,
    "read": true
  }
}
CLI автоматически получает доступные модели из MegaLLM и добавляет их в секцию provider.anthropic.models.

Конфигурация на уровне проекта

Расположение: ./opencode.json (в корне проекта)
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "anthropic": {
      "options": {
        "apiKey": "{env:MEGALLM_API_KEY}",
        "baseURL": "https://ai.megallm.io/v1"
      }
    }
  },
  "tools": {
    "bash": true,
    "edit": true,
    "write": true,
    "read": true
  }
}
Используйте конфигурацию на уровне проекта для настройки параметров для каждого проекта, сохраняя глобальные значения по умолчанию. Синтаксис {env:MEGALLM_API_KEY} ссылается на переменную окружения.

Ручная настройка

Ручная настройка на системном уровне

# 1. Создайте каталог
mkdir -p ~/.config/opencode

# 2. Создайте файл конфигурации
cat > ~/.config/opencode/opencode.json << 'EOF'
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "anthropic": {
      "options": {
        "apiKey": "{env:MEGALLM_API_KEY}",
        "baseURL": "https://ai.megallm.io/v1"
      }
    }
  },
  "autoupdate": true,
  "tools": {
    "bash": true,
    "edit": true,
    "write": true,
    "read": true
  }
}
EOF

# 3. Установите переменную окружения
echo 'export MEGALLM_API_KEY="your-api-key"' >> ~/.bashrc
source ~/.bashrc

# 4. Проверка
cat ~/.config/opencode/opencode.json | jq .

Ручная настройка на уровне проекта

# 1. Перейдите в проект
cd ~/projects/my-project

# 2. Создайте файл конфигурации
cat > opencode.json << 'EOF'
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "anthropic": {
      "options": {
        "apiKey": "{env:MEGALLM_API_KEY}",
        "baseURL": "https://ai.megallm.io/v1"
      }
    }
  },
  "tools": {
    "bash": true,
    "edit": true,
    "write": true,
    "read": true
  }
}
EOF

# 3. Установите переменную окружения (если еще не установлена)
echo 'export MEGALLM_API_KEY="your-api-key"' >> ~/.bashrc
source ~/.bashrc

# 4. Добавьте в .gitignore
echo "opencode.json" >> .gitignore

Приоритет конфигурации

OpenCode загружает конфигурацию в следующем порядке (от высшего к низшему приоритету):
1

Переменные окружения

Переменная окружения MEGALLM_API_KEY (на которую ссылаются через {env:MEGALLM_API_KEY} в конфигурации)
2

Конфигурация на уровне проекта

./opencode.json в текущем каталоге
3

Конфигурация на системном уровне

~/.config/opencode/opencode.json в домашнем каталоге

Параметры конфигурации

Настройки провайдера

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "anthropic": {
      "models": {
        "gpt-5": {
          "id": "gpt-5",
          "name": "GPT-5 (Via MegaLLM)"
        },
        "claude-sonnet-4": {
          "id": "claude-sonnet-4",
          "name": "Claude Sonnet 4 (Via MegaLLM)"
        }
      },
      "options": {
        "apiKey": "{env:MEGALLM_API_KEY}",
        "baseURL": "https://ai.megallm.io/v1"
      }
    }
  }
}
CLI автоматически получает и заполняет объект models из API MegaLLM. Вы также можете вручную добавить или переопределить определенные модели.

Настройки инструментов

{
  "tools": {
    "bash": true,
    "edit": true,
    "write": true,
    "read": true
  },
  "autoupdate": true
}
Доступные модели:
  • gpt-5 - Последняя модель GPT
  • gpt-4 - GPT-4
  • claude-opus-4-1-20250805 - Claude Opus
  • claude-sonnet-4 - Claude Sonnet
  • gemini-2.5-pro - Gemini Pro
  • Смотрите Каталог моделей для полного списка

Полный пример

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "anthropic": {
      "models": {
        "gpt-5": {
          "id": "gpt-5",
          "name": "GPT-5 (Via MegaLLM)"
        },
        "gpt-4": {
          "id": "gpt-4",
          "name": "GPT-4 (Via MegaLLM)"
        },
        "claude-sonnet-4": {
          "id": "claude-sonnet-4",
          "name": "Claude Sonnet 4 (Via MegaLLM)"
        }
      },
      "options": {
        "apiKey": "{env:MEGALLM_API_KEY}",
        "baseURL": "https://ai.megallm.io/v1"
      }
    }
  },
  "autoupdate": true,
  "tools": {
    "bash": true,
    "edit": true,
    "write": true,
    "read": true
  }
}

Конфигурация для команды

Для командных проектов используйте переменные окружения, чтобы хранить API-ключи вне системы контроля версий: Общая конфигурация (opencode.json - коммитится в git):
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "anthropic": {
      "options": {
        "apiKey": "{env:MEGALLM_API_KEY}",
        "baseURL": "https://ai.megallm.io/v1"
      }
    }
  },
  "autoupdate": true,
  "tools": {
    "bash": true,
    "edit": true,
    "write": true,
    "read": true
  }
}
Добавьте в .gitignore:
opencode.json
Инструкции по настройке для команды (README.md):
# Настройка OpenCode

## Требования
1. Получите API-ключ MegaLLM на https://megallm.io/dashboard
2. Установите OpenCode: `npm install -g opencode-ai`

## Настройка
Установите переменную окружения MEGALLM_API_KEY:
```bash
export MEGALLM_API_KEY="your-api-key-here"
Добавьте в конфигурацию вашей оболочки (~/.bashrc или ~/.zshrc), чтобы сделать это постоянным.

## Переменные окружения

MegaLLM CLI устанавливает переменную окружения `MEGALLM_API_KEY` для OpenCode:

```bash
# Устанавливается CLI автоматически
export MEGALLM_API_KEY="sk-mega-your-api-key-here"
На эту переменную окружения ссылаются в конфигурации OpenCode, используя {env:MEGALLM_API_KEY}. Добавьте в конфигурацию вашей оболочки:
# ~/.bashrc или ~/.zshrc
export MEGALLM_API_KEY="sk-mega-your-api-key-here"

Проверка переменных окружения

echo $MEGALLM_API_KEY
# Вывод: sk-mega-your-api-key-here

Проверка

Проверка файлов конфигурации

# Системная конфигурация
cat ~/.config/opencode/opencode.json | jq .

# Конфигурация проекта
cat opencode.json | jq .
cat opencode.local.json | jq .

# Проверка прав доступа к файлам
ls -la ~/.config/opencode/opencode.json
ls -la opencode.json

Проверка синтаксиса JSON

# Проверка JSON
jq . ~/.config/opencode/opencode.json

# Должен показать отформатированный JSON или ошибку, если невалидный

Тест подключения к API

# Тест с MEGALLM_API_KEY
curl -H "Authorization: Bearer $MEGALLM_API_KEY" \
     -H "Content-Type: application/json" \
     https://ai.megallm.io/v1/models

# Должен вернуть список доступных моделей

Тест OpenCode

# Запуск OpenCode
opencode

# Проверка версии
opencode --version

# Тест с файлом
echo "console.log('test')" > test.js
opencode test.js

Устранение неполадок

Проверьте расположение файлов:
# Системная конфигурация
ls -la ~/.config/opencode/opencode.json

# Конфигурация проекта
ls -la opencode.json
Проверьте синтаксис JSON:
jq . ~/.config/opencode/opencode.json
# Должен показать отформатированный JSON
Проверьте, что вы в правильном каталоге:
pwd
# Должен быть ваш каталог проекта для конфигурации на уровне проекта
Проверьте переменную окружения:
echo $MEGALLM_API_KEY
Если пусто, установите:
export MEGALLM_API_KEY="your-api-key"
echo 'export MEGALLM_API_KEY="your-api-key"' >> ~/.bashrc
source ~/.bashrc
Проверьте формат ключа:
  • Должен начинаться с sk-mega-
  • Как минимум 20 символов
  • Без лишних пробелов или кавычек
Протестируйте ключ:
curl -H "Authorization: Bearer $MEGALLM_API_KEY" \
     -H "Content-Type: application/json" \
     https://ai.megallm.io/v1/models
Проверьте конфигурацию:
jq '.provider.anthropic.options.baseURL' ~/.config/opencode/opencode.json
# Должно показать: "https://ai.megallm.io/v1"
Распространенные ошибки:
{
  "provider": {
    "anthropic": {
      "options": {
        "baseURL": "https://ai.megallm.io/v1"  // <Icon icon="check" /> Правильно
        // "baseURL": "https://ai.megallm.io/v1/"  // <Icon icon="xmark" /> Неправильно (завершающий слэш)
        // "baseURL": "https://ai.megallm.io"  // <Icon icon="xmark" /> Неправильно (отсутствует /v1)
      }
    }
  }
}
Проверьте наличие конфигурации проекта:
ls -la opencode.json
Убедитесь в правильной структуре JSON: Конфигурация проекта должна использовать ту же структуру, что и системная конфигурация с provider.anthropic.options.
Распространенные ошибки JSON:
// <Icon icon="xmark" /> Неправильно - завершающая запятая
{
  "provider": {
    "anthropic": {
      "options": {
        "apiKey": "{env:MEGALLM_API_KEY}",
      }
    }
  }
}

// <Icon icon="check" /> Правильно
{
  "provider": {
    "anthropic": {
      "options": {
        "apiKey": "{env:MEGALLM_API_KEY}"
      }
    }
  }
}

// <Icon icon="xmark" /> Неправильно - одинарные кавычки
{
  'provider': {
    'anthropic': {
      'options': {
        'apiKey': '{env:MEGALLM_API_KEY}'
      }
    }
  }
}

// <Icon icon="check" /> Правильно - двойные кавычки
{
  "provider": {
    "anthropic": {
      "options": {
        "apiKey": "{env:MEGALLM_API_KEY}"
      }
    }
  }
}
Проверка:
jq . ~/.config/opencode/opencode.json
# Покажет ошибку, если невалидный

Лучшие практики

Используйте локальную конфигурацию для API-ключей

Храните API-ключи в opencode.local.json и добавьте в .gitignore

Делитесь базовой конфигурацией

Коммитьте opencode.json без API-ключей для согласованности команды

Настройки, специфичные для проекта

Используйте конфигурацию на уровне проекта для контекста и настроек, специфичных для проекта

Проверяйте JSON

Всегда проверяйте синтаксис JSON после ручных правок

Расширенное использование

Несколько профилей

# Создайте разные профили
cat > ~/.config/opencode/opencode.dev.json << 'EOF'
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "anthropic": {
      "options": {
        "apiKey": "{env:MEGALLM_API_KEY_DEV}",
        "baseURL": "https://ai.megallm.io/v1"
      }
    }
  }
}
EOF

cat > ~/.config/opencode/opencode.prod.json << 'EOF'
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "anthropic": {
      "options": {
        "apiKey": "{env:MEGALLM_API_KEY_PROD}",
        "baseURL": "https://ai.megallm.io/v1"
      }
    }
  }
}
EOF

# Установите переменные окружения
export MEGALLM_API_KEY_DEV="sk-mega-dev-key"
export MEGALLM_API_KEY_PROD="sk-mega-prod-key"

# Переключение профилей
alias opencode-dev='cp ~/.config/opencode/opencode.dev.json ~/.config/opencode/opencode.json && opencode'
alias opencode-prod='cp ~/.config/opencode/opencode.prod.json ~/.config/opencode/opencode.json && opencode'

Конфигурация CI/CD

# Пример GitHub Actions
- name: Configure OpenCode
  env:
    MEGALLM_API_KEY: ${{ secrets.MEGALLM_API_KEY }}
  run: |
    mkdir -p ~/.config/opencode
    cat > ~/.config/opencode/opencode.json << 'EOF'
    {
      "$schema": "https://opencode.ai/config.json",
      "provider": {
        "anthropic": {
          "options": {
            "apiKey": "{env:MEGALLM_API_KEY}",
            "baseURL": "https://ai.megallm.io/v1"
          }
        }
      }
    }
    EOF

Следующие шаги