Przejdź do głównej treści
oh-my-pi (polecenie omp, znany również jako pi-mono — ten sam projekt) to minimalny, rozszerzalny terminalowy agent kodujący.
Protokół: zgodny z OpenAI
  • Bazowy URL: https://api.orcarouter.ai/v1 (zawiera sufiks /v1)

Instalacja

bun install -g @oh-my-pi/pi-coding-agent
Wymaga bun >= 1.3.14. Zainstalowane polecenie to omp.

Konfiguracja

Najpierw wyeksportuj swój klucz API jako zmienną środowiskową:
export ORCA_KEY="sk-orca-..."
Plik konfiguracyjny: ~/.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
Zamień orcarouter/auto na konkretny model, jeśli wolisz, np. anthropic/claude-opus-4.8 lub google/gemini-2.5-flash. Identyfikatory modeli zawsze używają formatu vendor/model.

Uruchomienie

omp -p --model "orcarouter/orcarouter/auto" "Reply with exactly: OK"
Oczekiwany wynik: OK.

Uwagi

  • Wymaga bun >= 1.3.14.
  • base_url musi zawierać /v1.
  • Pole apiKey przyjmuje nazwę zmiennej środowiskowej, a nie sam klucz; przy authHeader: true jest ona wysyłana jako Authorization: Bearer <value>.
  • Odwołania do modeli używają formatu provider/model — tutaj orcarouter/orcarouter/auto (dostawca orcarouter + identyfikator modelu orcarouter/auto).
  • Użyj -p do uruchomień nieinteraktywnych.
  • oh-my-pi i pi-mono to ten sam projekt; w obu polecenie to omp.

Włączanie myślenia / rozumowania

Domyślny wpis modelu powyżej ma reasoning: false. Aby włączyć rozumowanie i umożliwić wybór poziomu wysiłku, zadeklaruj blok thinking oraz compat.reasoningEffortMap na modelu:
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 }
Następnie wybierz poziom wysiłku w czasie uruchomienia za pomocą sufiksu model:level (w zakresie minLevel..maxLevel):
omp -p --model "orcarouter/anthropic/claude-sonnet-4.6:high" "What is 17*23?"
Zweryfikowane: sufiks :high wybiera poziom wysiłku i działa z OrcaRouter.