> ## Documentation Index
> Fetch the complete documentation index at: https://apidoc.cometapi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# CometAPI で Pi を使う

> このガイドでは、base URL、API key、model または provider オプションを設定して、Pi で CometAPI を構成する方法を説明します。

[Pi](https://github.com/earendil-works/pi) は Pi Agent Harness プロジェクトです。その `@earendil-works/pi-coding-agent` パッケージは、file、shell、edit、write、session、print、JSON、RPC、SDK ワークフローに対応した対話型コーディングエージェント CLI を提供します。Pi は `~/.pi/agent/models.json` からカスタム provider を読み込めるため、Pi のソースコードを変更せずに、CometAPI を OpenAI-compatible provider エントリとして追加できます。

公式リファレンス:

* [Pi repository](https://github.com/earendil-works/pi)
* [Pi quickstart](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/docs/quickstart.md)
* [Pi providers](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/docs/providers.md)
* [Pi custom models](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/docs/models.md)
* [Pi CLI usage](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/docs/usage.md)

<Note>
  model の提供状況は時間とともに変化します。`your-model-id` は、[CometAPI Models page](/ja/overview/models) で利用可能な model ID に置き換えてください。
</Note>

## 前提条件

* Node.js `>=22.19.0`
* npm
* [dashboard](https://www.cometapi.com/console/token) で有効な API key を取得した CometAPI アカウント
* 公式 npm パッケージからインストールされた Pi

## 実行時権限を理解する

Pi は、それを起動したユーザーおよびプロセスの権限で実行されます。Pi に作業させたいプロジェクトディレクトリで起動し、git などのロールバック手段を維持し、より強いファイルシステム、プロセス、ネットワーク、または認証情報の境界が必要な場合は、コンテナまたはサンドボックスを使用してください。

## プロバイダーを設定する

<Steps>
  <Step title="Pi をインストールする">
    npm を使って Pi をグローバルにインストールします:

    ```bash theme={null}
    npm install -g --ignore-scripts @earendil-works/pi-coding-agent
    ```

    CLI が利用可能であることを確認します:

    ```bash theme={null}
    pi --version
    ```
  </Step>

  <Step title="CometAPI API キーを設定する">
    CometAPI API キーを `COMETAPI_KEY` 環境変数に保存します:

    ```bash theme={null}
    read -rsp "CometAPI API key: " COMETAPI_KEY
    printf '\n'
    export COMETAPI_KEY
    ```

    ターミナルセッションをまたいで保持したい場合は、この export コマンドをシェルのプロファイルに追加してください。API キーをバージョン管理にコミットしないでください。
  </Step>

  <Step title="models.json に CometAPI プロバイダーを追加する">
    `~/.pi/agent/models.json` が存在しない場合は作成します。ファイルにすでにプロバイダーが含まれている場合は、`cometapi-responses` と `cometapi-chat` のエントリを既存の `providers` オブジェクトにマージします:

    ```json theme={null}
    {
      "providers": {
        "cometapi-responses": {
          "name": "CometAPI Responses",
          "baseUrl": "https://api.cometapi.com/v1",
          "api": "openai-responses",
          "apiKey": "$COMETAPI_KEY",
          "models": [
            {
              "id": "your-model-id",
              "name": "CometAPI Responses model"
            }
          ]
        },
        "cometapi-chat": {
          "name": "CometAPI Chat Completions",
          "baseUrl": "https://api.cometapi.com/v1",
          "api": "openai-completions",
          "apiKey": "$COMETAPI_KEY",
          "models": [
            {
              "id": "your-model-id",
              "name": "CometAPI Chat model"
            }
          ]
        }
      }
    }
    ```

    OpenAI Responses API を必要とするモデルやワークフローには `cometapi-responses` を使います。OpenAI Chat Completions 互換モデルには `cometapi-chat` を使います。Pi はリクエスト時に `$COMETAPI_KEY` を解決します。API キーは環境変数または独自のシークレット管理ワークフローに保持してください。
  </Step>

  <Step title="両方のプロバイダーを検証する">
    Pi が Responses プロバイダーに対して認識できるモデルを一覧表示します:

    ```bash theme={null}
    pi --list-models cometapi-responses
    ```

    Responses プロバイダーで短いワンショットプロンプトを実行します:

    ```bash theme={null}
    pi --provider cometapi-responses --model your-model-id -p "Reply with one short sentence confirming the Responses connection."
    ```

    Pi が Chat Completions プロバイダーに対して認識できるモデルを一覧表示します:

    ```bash theme={null}
    pi --list-models cometapi-chat
    ```

    Chat Completions プロバイダーで短いワンショットプロンプトを実行します:

    ```bash theme={null}
    pi --provider cometapi-chat --model your-model-id -p "Reply with one short sentence confirming the Chat Completions connection."
    ```

    対話的に使用する場合は、プロジェクトで Pi を起動し、`/model` で CometAPI プロバイダーとモデルを選択します。対話セッション中に `models.json` を編集した場合は、Pi がカスタムモデルエントリを再読み込みできるように `/model` をもう一度開いてください。
  </Step>
</Steps>

## トラブルシューティング

<AccordionGroup>
  <Accordion title="Pi に CometAPI モデルが表示されない">
    `~/.pi/agent/models.json` が有効な JSON であり、各 provider エントリがトップレベルの `providers` オブジェクト内にあることを確認してください。ファイルを保存した後に `pi --list-models cometapi-responses` または `pi --list-models cometapi-chat` を実行してください。
  </Accordion>

  <Accordion title="Pi が利用可能な API キーがないと報告する">
    `COMETAPI_KEY` が、Pi を起動するのと同じシェルセッションで設定されていることを確認してください。シェルプロファイルを使用している場合は、Pi を実行する前に新しいターミナルを開くか、プロファイルを source してください。
  </Accordion>

  <Accordion title="base URL が原因でリクエストが失敗する">
    `models.json` の `baseUrl` には `https://api.cometapi.com/v1` を使用してください。Pi の向き先をダッシュボード URL にしたり、OpenAI 互換ルートで `/v1` サフィックスを省略したりしないでください。
  </Accordion>

  <Accordion title="Pi が model リクエストを送信する前に失敗する">
    `node --version` で Node.js のバージョンを確認してください。Pi パッケージには Node.js `>=22.19.0` が必要です。
  </Accordion>

  <Accordion title="model が一方のルートでは動作するが、もう一方では動作しない">
    ご使用の model がサポートするルートに一致する `api` フィールドの provider エントリを使用してください。`openai-responses` は Responses API を使用し、`openai-completions` は チャット補完 を使用します。
  </Accordion>

  <Accordion title="Pi が想定以上のアクセス権を持っている">
    Pi は、それを起動したユーザーおよびプロセスの権限で実行されます。ファイル、プロセス、ネットワークアクセス、または認証情報に対してより強い境界が必要な場合は、コンテナまたはサンドボックス内で Pi を実行してください。
  </Accordion>
</AccordionGroup>

## 関連リソース

* [CometAPI クイックスタート](/ja/overview/quick-start)
* [CometAPI Models ページ](/ja/overview/models)
* [Pi カスタムモデル](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/docs/models.md)
* [Pi CLI の使い方](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/docs/usage.md)

<script type="application/ld+json">
  {`
    {
    "@context": "https://schema.org",
    "@graph": [
      {
        "@type": "HowTo",
        "@id": "https://apidoc.cometapi.com/integrations/pi#howto",
        "name": "CometAPI で Pi を使う",
        "description": "このガイドでは、base URL、API キー、モデルまたはプロバイダーのオプションを設定して、CometAPI で Pi を構成する方法を説明します。",
        "step": [
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/pi#step-1",
            "position": 1,
            "name": "Pi をインストールする",
            "text": "CometAPI で Pi を使うガイドの「Pi をインストールする」手順を完了してください。"
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/pi#step-2",
            "position": 2,
            "name": "CometAPI API キーを設定する",
            "text": "CometAPI API キーを、この統合で使用する環境変数または設定フィールドに保存してください。"
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/pi#step-3",
            "position": 3,
            "name": "models.json に CometAPI プロバイダーを追加する",
            "text": "CometAPI で Pi を使うガイドの「models.json に CometAPI プロバイダーを追加する」手順を完了してください。"
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/pi#step-4",
            "position": 4,
            "name": "両方のプロバイダーを確認する",
            "text": "CometAPI で Pi を使うガイドの「両方のプロバイダーを確認する」手順を完了してください。"
          }
        ]
      },
      {
        "@type": "BreadcrumbList",
        "itemListElement": [
          {
            "@type": "ListItem",
            "position": 1,
            "name": "CometAPI ドキュメント",
            "item": "https://apidoc.cometapi.com/"
          },
          {
            "@type": "ListItem",
            "position": 2,
            "name": "Integrations",
            "item": "https://apidoc.cometapi.com/integrations"
          },
          {
            "@type": "ListItem",
            "position": 3,
            "name": "CometAPI で Pi を使う",
            "item": "https://apidoc.cometapi.com/integrations/pi"
          }
        ]
      }
    ]
    }
    `}
</script>
