---
description: "将 Oh My Pi 通过 YAML 配置接入在问模型，与 Pi 共用协议。"
---

# 接入 Oh My Pi

> Oh My Pi（`omp`）是 [Pi](https://github.com/badlogic/pi-mono) 的 Fork/发行版（`can1357/oh-my-pi`），CLI 为 `omp`，在 Pi 极简内核上叠加 31 工具、LSP、DAP 调试器与 Rust 加速。与 Pi 共用同一在问模型与 `openai-responses` 协议，仅配置格式不同（Pi 为 JSON，Oh My Pi 为 YAML）。

## omp 和 pi 是一个吗？

**不是同一个，但同源。** `pi` = Mario Zechner 原版（`@earendil-works/pi-coding-agent`，命令 `pi`，配置在 `~/.pi/agent/`）；`omp` = Oh My Pi 发行版（`@oh-my-pi/pi-coding-agent`，命令 `omp`，配置在 `~/.omp/agent/`）。向导里两者分开展示，模型与 `baseUrl` 完全复用，按你本地装的是 `pi` 还是 `omp` 选择即可。

## 安装

任选其一：

```bash
# 官方脚本（macOS / Linux）
curl -fsSL https://omp.sh/install | sh

# Homebrew
brew install can1357/tap/omp

# Bun（推荐）/ npm
bun install -g @oh-my-pi/pi-coding-agent
# npm install -g --ignore-scripts @oh-my-pi/pi-coding-agent
```

Windows PowerShell：

```powershell
irm https://omp.sh/install.ps1 | iex
```

## 配置步骤

### 1. 写入模型配置到 `~/.omp/agent/models.yml`

文件不存在则创建，写入以下内容（`apiKey` 填你的在问 API Key）：

```yaml
providers:
  zaiwenai:
    baseUrl: https://oneapi.zaiwenai.com/v1
    api: openai-responses
    apiKey: "你的在问APIKEY"
    models:
      - id: gpt-5.6-terra
        name: GPT-5.6-Terra
        reasoning: true
        input: [text, image]
        contextWindow: 262144
        maxTokens: 128000
      - id: gpt-5.6-luna
        name: GPT-5.6-Luna
        reasoning: true
        input: [text, image]
        contextWindow: 262144
        maxTokens: 128000
```

如果该文件中已有其他自定义供应商（如 Ollama），请先备份，再手动合并 `providers` 节点。兼容旧版 `models.yaml` / `models.json` 会自动迁移为 `models.yml`。

也可用以下辅助命令自动备份并写入。macOS、Linux 或 WSL：

```bash
OMP_DIR="$HOME/.omp/agent"
mkdir -p "$OMP_DIR"
MODELS_PATH="$OMP_DIR/models.yml"
[ ! -f "$MODELS_PATH" ] || cp "$MODELS_PATH" "$MODELS_PATH.bak"
printf '%s\n' 'providers:
  zaiwenai:
    baseUrl: https://oneapi.zaiwenai.com/v1
    api: openai-responses
    apiKey: "你的在问APIKEY"
    models:
      - id: gpt-5.6-terra
        name: GPT-5.6-Terra
        reasoning: true
        input: [text, image]
        contextWindow: 262144
        maxTokens: 128000
      - id: gpt-5.6-luna
        name: GPT-5.6-Luna
        reasoning: true
        input: [text, image]
        contextWindow: 262144
        maxTokens: 128000' > "$MODELS_PATH"
```

Windows PowerShell：

```powershell
$ompDir = Join-Path $HOME ".omp\agent"
New-Item -ItemType Directory -Force -Path $ompDir | Out-Null
$modelsPath = Join-Path $ompDir "models.yml"
if (Test-Path $modelsPath) { Copy-Item $modelsPath "$modelsPath.bak" -Force }
@'
providers:
  zaiwenai:
    baseUrl: https://oneapi.zaiwenai.com/v1
    api: openai-responses
    apiKey: "你的在问APIKEY"
    models:
      - id: gpt-5.6-terra
        name: GPT-5.6-Terra
        reasoning: true
        input: [text, image]
        contextWindow: 262144
        maxTokens: 128000
      - id: gpt-5.6-luna
        name: GPT-5.6-Luna
        reasoning: true
        input: [text, image]
        contextWindow: 262144
        maxTokens: 128000
'@ | Set-Content -Encoding utf8 $modelsPath
```

> 提示：`apiKey` 也可不写字面量，改为环境变量名（如 `ZAIWENAI_API_KEY`）并在 shell / `.env` 中导出，`omp` 会优先解析环境变量。

### 2. 验证

在项目目录启动 `omp`，执行 `/model` 应能看到 `zaiwenai / GPT-5.6-Terra`：

```bash
cd /path/to/project
omp
# /model -> 选择 zaiwenai / GPT-5.6-Terra
```

或查看已加载的 provider 和模型：

```bash
omp models zaiwenai
# 需要机器可读输出时：omp models zaiwenai --json
```

:::: tip 配置说明
- `api = "openai-responses"`：在问平台提供 OpenAI Responses 协议（`/v1/responses`），与 Pi/Codex 的 `wire_api = "responses"` 一致，能正确下发 `reasoning.effort`
- `contextWindow = 262144`：与 Pi 一致，配置为 256K。低于 OpenAI 短上下文计费阈值（272K），避免按长上下文倍率整体计费；也让自动压缩更早触发
- 与 Pi 的差异：Pi 的模型在 `~/.pi/agent/models.json`（JSON），Oh My Pi 在 `~/.omp/agent/models.yml`（YAML）；Pi 的凭据在 `auth.json`，Oh My Pi 的凭据可直接写在 `models.yml` 的 `apiKey` 或走环境变量 / `agent.db`
- 辅助命令会在覆盖前将已有文件备份为 `.bak`
::::
