Перейти к основному содержанию
oh-my-pi (команда omp, также известен как pi-mono — тот же проект) — это минималистичный расширяемый терминальный агент для кодинга.
Протокол: OpenAI-совместимый
  • Базовый URL: https://api.orcarouter.ai/v1 (включает суффикс /v1)

Установка

bun install -g @oh-my-pi/pi-coding-agent
Требуется bun >= 1.3.14. Устанавливаемая команда — omp.

Настройка

Сначала экспортируйте ваш API ключ как переменную окружения:
export ORCA_KEY="sk-orca-..."
Файл конфигурации: ~/.omp/agent/models.yml.
providers:
  orcarouter:
    baseUrl: https://api.orcarouter.ai/v1
    api: openai-completions
    apiKey: ORCA_KEY
    authHeader: true
    models:
      - id: orcarouter/auto
        name: OrcaRouter Auto
        reasoning: false
        input: [text]
        contextWindow: 200000
        maxTokens: 8192
        compat:
          supportsDeveloperRole: false
          maxTokensField: max_tokens
Замените orcarouter/auto на конкретную модель, если предпочитаете, например anthropic/claude-opus-4.8 или google/gemini-2.5-flash. Идентификаторы моделей всегда используют формат vendor/model.

Запуск

omp -p --model "orcarouter/orcarouter/auto" "Reply with exactly: OK"
Ожидаемый вывод: OK.

Примечания

  • Требуется bun >= 1.3.14.
  • base_url должен включать /v1.
  • Поле apiKey принимает имя переменной окружения, а не сам ключ; при authHeader: true оно отправляется как Authorization: Bearer <value>.
  • Ссылки на модели используют формат provider/model — здесь orcarouter/orcarouter/auto (провайдер orcarouter + идентификатор модели orcarouter/auto).
  • Используйте -p для неинтерактивных запусков.
  • oh-my-pi и pi-mono — это один и тот же проект; команда в обоих — omp.

Включение thinking / reasoning

Запись модели по умолчанию выше имеет reasoning: false. Чтобы включить reasoning и разрешить выбор усилия, объявите блок thinking плюс compat.reasoningEffortMap у модели:
models:
  - id: anthropic/claude-sonnet-4.6
    name: Claude Sonnet 4.6
    reasoning: true
    thinking:
      minLevel: low
      maxLevel: xhigh
      mode: effort
    input: [text]
    contextWindow: 200000
    maxTokens: 8192
    compat:
      supportsDeveloperRole: false
      supportsReasoningEffort: true
      maxTokensField: max_tokens
      thinkingFormat: openai
      reasoningEffortMap: { low: low, medium: medium, high: high, xhigh: high }
Затем выберите уровень усилия во время выполнения суффиксом model:level (в пределах minLevel..maxLevel):
omp -p --model "orcarouter/anthropic/claude-sonnet-4.6:high" "What is 17*23?"
Проверено: суффикс :high выбирает уровень усилия и работает с OrcaRouter.