> For the complete documentation index, see [llms.txt](https://docs.cherryai.com.cn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cherryai.com.cn/docs/jp/cherry-studio/preview/app/generative-mini-apps.md).

# 生成系ミニプログラム

Cherry Studio の AI 機能を呼び出せるカスタムミニプログラムの作成、インストール、使用

生成系ミニアプリは、Cherry Studio の【ミニアプリ】上で動作するローカル Web アプリです。画面と業務フローは自由にカスタマイズでき、さらに `window.cherry` Cherry Studio に設定済みの AI モデルを呼び出し、汎用モデルを執筆アシスタント、情報抽出器、学習ツール、または専用業務アプリへ変えられます。

通常の Webサイト型ミニアプリとの違いは見た目ではなく、機能の出所にあります。Webサイト型ミニアプリは URL を開くだけですが、生成系ミニアプリは `.miniapp`にパッケージ化し、インストールして許可を得て初めて、Cherry の AI、サンドボックスデータ、ファイル、通知、ネットワーク、クリップボード機能を呼び出せます。

{% hint style="info" %}
Cherry Studio は実行環境、認可機構、AI インターフェースを提供します。自分でミニアプリを書くことも、AI コーディングツールにまず HTML、CSS、JavaScript を生成させ、その後このページの説明に従ってパッケージ化してインストールすることもできます。
{% endhint %}

## 目的と前提条件

このページを終えると、次のことができます：

* 他者が提供する生成系ミニアプリをインストールして使う；
* 簡単な要件から自分の `.miniapp` パッケージを作成する；
* ミニアプリに Cherry Studio の【デフォルトモデル】または【高速モデル】を呼び出させる；
* 権限、アクティビティログ、保存データ、更新、アンインストールの状態を確認する。

既成ミニアプリを使う場合は、信頼できる `.miniapp` ファイルまたはインストール URL を用意するだけです。自作する場合は、Web ページファイルの編集と ZIP 圧縮パッケージの作成も必要です。AI 機能をテストする場合は、まず Cherry Studio で利用可能な会話モデルを設定してください。

## 用語

| 用語           | 画面名                | このページでの意味                                                    |
| ------------ | ------------------ | ------------------------------------------------------------ |
| 生成系ミニアプリ     | 【生成系ミニアプリ】         | 画面とフローを自由にカスタマイズでき、Cherry Studio の AI 機能を呼び出せるミニアプリ          |
| ローカルミニアプリ    | 【ローカルミニアプリ】        | 〜として `.miniapp` パッケージでインストールし、独立したサンドボックス内で動作するミニアプリの種類      |
| Webサイト型ミニアプリ | 【Webサイト】           | URL で開く Web ページ。 `window.cherry` 機能                          |
| 権限           | 【権限】               | ミニアプリのインストール時に申請され、ユーザーが確認する機能範囲                             |
| モデルスロット      | 【デフォルトモデル】、【高速モデル】 | ユーザーがそのミニアプリ向けに選ぶ 2 つのモデル枠。ミニアプリからはプロバイダ、モデル名、API Key は見えません |

## 操作手順

既成ミニアプリを使う：`【ランチャー】→【生成系ミニアプリ】→【ローカルミニアプリ】→ファイルを選択するかインストール URL を入力→権限を確認→【インストール】`

ミニアプリページから入ることもできます：`【ランチャー】→【ミニアプリ】→右上の【ミニアプリを追加】→【ローカルミニアプリ】`

インストール済みミニアプリを管理する：`【ミニアプリ】→対象のミニアプリを右クリック→【詳細を表示】`

## 手順

### インストールして初めて使う

{% stepper %}
{% step %}

### インストール入口を開く

【ランチャー】で【生成系ミニアプリ】をクリックするか、【ミニアプリ】に入って右上の【ミニアプリを追加】をクリックします。表示されたパネルで【ローカルミニアプリ】に切り替えます。
{% endstep %}

{% step %}

### インストール元を選択する

1 つの `.miniapp` パッケージをインストール領域にドラッグするか、【ファイルを選択…】をクリックします。開発者が HTTPS インストール URL を提供している場合は、URL を貼り付けて【読み込み】をクリックすることもできます。
{% endstep %}

{% step %}

### 権限を確認する

インストール確認ページには、ミニアプリ名、バージョン、説明、すべての権限が表示されます。必須権限は解除できません。任意権限は既定で選択されていますが、インストール前に外すことも、インストール後に調整することもできます。

ミニアプリの用途と権限が一致し、出所が信頼できる場合のみ続行してください。AI が必要なミニアプリでは通常【AI 機能】→【会話】が表示されます。
{% endstep %}

{% step %}

### インストールして開く

【インストール】をクリックします。インストール後、ミニアプリは【ミニアプリ】グリッドに表示されます。アイコンをクリックすると実行できます。
{% endstep %}
{% endstepper %}

### ミニアプリに AI モデルを選択する

1. 【ミニアプリ】グリッドで対象のミニアプリを右クリックし、【詳細を表示】を選択します。
2. 【設定】に切り替え、【AI モデル】を見つけます。
3. ミニアプリの用途に応じて【デフォルトモデル】と【高速モデル】を設定します。空欄の場合は、それぞれ Cherry Studio のグローバル既定モデルとグローバル高速モデルに従います。
4. ミニアプリを再度開いて、AI 操作を 1 回実行します。利用可能なモデルがない場合、ミニアプリは AI が一時的に利用できないことを知らせるはずです。

【デフォルトモデル】は長文生成や複雑な分析などの主要タスクに適しています。【高速モデル】はタイトル提案、短文の言い換え、タグ抽出などの低遅延タスクに適しています。最終的にどのスロットを使うかはミニアプリの設計で決まります。

### 最小版を作成する

生成系ミニアプリは本質的に静的 Web ページプロジェクトです。最小ディレクトリには 2 つのファイルだけで足ります：

```
my-writer/
├── manifest.json
└── index.html
```

まず作成する `manifest.json`を作成し、アプリ情報と `ai.chat` 権限を宣言します：

```json
{
  "id": "com.example.my-writer",
  "name": { "zh": "ひらめきリライト", "en": "Rewrite Helper" },
  "description": "入力した文章を、Cherry Studio の AI モデルを呼び出して書き換えます。",
  "version": "1.0.0",
  "entry": "index.html",
  "permissions": ["ai.chat"]
}
```

`id` 自分で管理する逆ドメイン形式を使用することを推奨します。使用できるのは小文字、数字、ドット、ハイフンのみです。`com.cherrystudio.*` は公式予約済み範囲なので、使用しないでください。

次に `index.html` で、グローバルオブジェクト `cherry` を通じて AI を呼び出します。以下の例では、まず【デフォルトモデル】が利用可能かを確認し、その後ストリーミング文字列を段階的に表示します：

```html
<!doctype html>
<html lang="zh-CN">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <link rel="stylesheet" href="/__cherry/theme.css" />
    <title>ひらめきリライト</title>
  </head>
  <body>
    <textarea id="source" placeholder="書き換える文章を入力"></textarea>
    <button id="rewrite">書き換え開始</button>
    <pre id="result"></pre>

    <script>
      const button = document.querySelector('#rewrite')
      const source = document.querySelector('#source')
      const result = document.querySelector('#result')

      button.addEventListener('click', async () => {
        const capability = await cherry.ai.getCapabilities({ model: 'default' })
        if (!capability.available) {
          result.textContent = 'まずミニアプリの詳細で利用可能なモデルを設定してください。'
          return
        }

        result.textContent = ''
        await cherry.ai.chat(
          {
            model: 'default',
            reasoning: 'off',
            messages: [
              { role: 'system', content: 'あなたは中国語エディタです。原意を保ちつつ、表現をより明確にしてください。' },
              { role: 'user', content: source.value }
            ]
          },
          {
            callId: `rewrite-${Date.now()}`,
            onChunk: (text) => {
              result.textContent += text
            }
          }
        )
      })
    </script>
  </body>
</html>
```

`window.cherry` と `cherry` は同じホスト API を指しており、SDK を導入する必要はありません。ミニアプリはテキストメッセージしか送信できず、現時点では画像入力やツール呼び出しには対応していません。指定できるのは `default` または `quick` スロットのみで、モデル名、プロバイダ情報、API Key は取得できません。

### パッケージ化してテストする

1. 確認し `manifest.json` がプロジェクトのルートディレクトリにあり、エントリーファイルが `entry` と一致していること。
2. プロジェクトディレクトリ内で圧縮を実行します。macOS または Linux では次を使用できます：

```bash
zip -r ../my-writer.miniapp . -x '.*' -x '__MACOSX/*'
```

Windows PowerShell では、まず ZIP を生成してから、拡張子を `.miniapp` に変更できます：

```powershell
Compress-Archive -Path .\\* -DestinationPath ..\\my-writer.zip
Rename-Item ..\\my-writer.zip my-writer.miniapp
```

3. Cherry Studio の【ローカルミニアプリ】インストール領域で、生成された `my-writer.miniapp`を選択します。
4. インストール確認ページで予期した権限のみが申請されていることを確認し、インストール後に開いて入力、AI 出力、例外時の表示、再入場後の状態をテストします。
5. デバッグが必要なときは、ミニアプリのツールバーにある【開発者ツール】を開き、ページエラーやサンドボックスによりブロックされたリクエストを確認します。

{% hint style="warning" %}
外側のディレクトリからプロジェクトフォルダ全体を圧縮しないでください。圧縮パッケージのルートで直接 `manifest.json`が見えるようにしてください。Cherry Studio は 1 層のディレクトリで包まれた圧縮パッケージも認識できますが、明確なルート構成のほうがトラブルシュートしやすくなります。
{% endhint %}

## 期待結果

インストール後、【ミニアプリ】グリッドに新しいアイコンが見えるはずです。開いて文字を入力しボタンをクリックすると、結果欄にモデルが返したテキストが継続的に表示されます。ミニアプリを右クリックして【詳細を表示】に入ると、申請した【AI 機能】権限、使用したモデルスロット、最近の呼び出し記録を確認できます。

インストールは成功したのに AI が使えない場合は、まず【詳細を表示】→【設定】のモデルを確認し、次に【権限】で【AI 機能】→【会話】が許可されているかを確認してください。

## 重要スクリーンショット

<figure><img src="https://3776196818-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0Ut5BptC3t8CtSU1UWpM%2Fuploads%2Fgit-blob-ceba627dd766df1bcb0baa130442dd777e8426bd%2Fgenerative-mini-app-launchpad.png?alt=media" alt="启动台中的生成式小程序入口"><figcaption><p>ランチャー内の【生成系ミニアプリ】入口。</p></figcaption></figure>

1. 【生成系ミニアプリ】をクリックして【ミニアプリを追加】パネルを開く。

<figure><img src="https://3776196818-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0Ut5BptC3t8CtSU1UWpM%2Fuploads%2Fgit-blob-27f5a4e70aba636ed033f23f658a9b5cc43c1ce8%2Fgenerative-mini-app-install.png?alt=media" alt="本地小程序安装面板中的文件和网址安装入口"><figcaption><p>ローカルミニアプリはファイルまたは URL からインストールできます。</p></figcaption></figure>

1. ドラッグして `.miniapp` パッケージを入れるか、【ファイルを選択…】をクリックします。
2. 開発者が提供する HTTPS インストール URL を入力することもできます。

<figure><img src="https://3776196818-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0Ut5BptC3t8CtSU1UWpM%2Fuploads%2Fgit-blob-520ed8e91e1e9cfe2ba3322b88d99041eaedd4f0%2Fgenerative-mini-app-permissions.png?alt=media" alt="本地小程序详情中的权限页"><figcaption><p>【権限】ページには、ミニアプリが呼び出しを許可されたホスト機能が一覧表示されます。</p></figcaption></figure>

1. 【AI 機能】に加え、ネットワーク、クリップボード、ファイル、データ、通知などの許可がミニアプリの用途に合っているか確認します。

<figure><img src="https://3776196818-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0Ut5BptC3t8CtSU1UWpM%2Fuploads%2Fgit-blob-42ee78e313fab6bfc87286060fd027d7ed2458bd%2Fgenerative-mini-app-models.png?alt=media" alt="本地小程序详情中的默认模型和快速模型设置"><figcaption><p>ミニアプリの詳細で AI モデルスロットを管理します。</p></figcaption></figure>

1. 【デフォルトモデル】はミニアプリの主要 AI リクエストを処理し、空欄の場合はグローバル既定モデルに従います。
2. 【高速モデル】はミニアプリが指定する低遅延リクエストを処理し、空欄の場合はグローバル高速モデルに従います。

{% hint style="info" %}
ミニアプリの実際の画面と出力はミニアプリ自身で決まります。上の図は、インストール後の権限とモデル管理の位置を示すために公式の機能テスト例を使用しています。
{% endhint %}

## 設定の説明

| 設定項目     | 製品の既定値                             | 推奨開始値                       | 役割                                         | 適用シーン             | 注意事項                                          |
| -------- | ---------------------------------- | --------------------------- | ------------------------------------------ | ----------------- | --------------------------------------------- |
| インストール元  | —                                  | 初回テストではローカル `.miniapp` ファイル | ローカルパッケージか HTTPS URL か、どちらからインストールするかを決めます | 自分用のテスト、チーム配布     | サードパーティのミニアプリは、まず公開者、ソースコード、権限を確認してください       |
| AI 権限    | ミニアプリが宣言します。任意権限はインストール時に既定で選択されます | 機能を完了するために必要な権限のみを付与してください  | 呼び出しを許可 `cherry.ai.chat()`                 | すべての AI 機能        | 必須権限は個別に取り消せません。信頼しなくなったらアンインストールしてください       |
| デフォルトモデル | グローバル既定モデルに従う                      | 検証済みで利用可能な会話モデルを使う          | 主要な生成・分析タスクを処理する                           | 長文、複雑な指示、構造化出力    | 呼び出しは対応するモデルサービスの利用量に計上されます                   |
| 高速モデル    | グローバル高速モデルに従う                      | 短いタスクには応答の速いモデルを選ぶ          | 低遅延タスクを処理する                                | タイトル変更、補完、分類、タグ抽出 | ミニアプリは明示的に選択する必要があります `quick` してはじめて使用されます    |
| 推論モード    | ミニアプリから指定がない場合はオフです                | 通常の書き換えではまずオフにする            | 推論対応モデルに先に推論させることを許可する                     | 複雑な分析、計画          | 切り替えをサポートしないモデルはこの項目を無視します                    |
| テーマスタイル  | Cherry Studio のライト/ダークテーマに従う       | 参照 `/__cherry/theme.css`    | ホストが提供する色変数を使用する                           | すべてのカスタム画面        | 外部 CDN リソースはサンドボックスによりブロックされるため、アプリ内に同梱してください |

### ほかにどの機能を呼び出せるか

| 機能                    | 用途                                           | 宣言方法                                 |
| --------------------- | -------------------------------------------- | ------------------------------------ |
| `cherry.storage`      | 文字列形式の設定と状態を保存する                             | `storage.*` または具体的なメソッド              |
| `cherry.file`         | ミニアプリ自身のサンドボックス内でファイルを保存、読み込み、エクスポートする       | `file.*` または具体的なメソッド                 |
| `cherry.notification` | Cherry Studio 経由でシステム通知を送る                   | `notification.show`                  |
| `cherry.network`      | マニフェストで宣言された HTTPS ドメインにアクセスする               | `network.fetch`、そして `network` ドメイン一覧 |
| `cherry.clipboard`    | ミニアプリが表示され、キーボードフォーカスを得ているときにプレーンテキストを読み書きする | `clipboard.read`、`clipboard.write`   |
| `cherry.app`          | アプリのバージョン、言語、現在の権限を読み取る                      | 宣言不要                                 |

ローカルミニアプリでは直接使用できません `localStorage`、ブラウザの `fetch`、Cookie、ポップアップ、外部 CDN。状態を保存したい場合は `cherry.storage`、ネット接続が必要な場合は `cherry.network.fetch` を使用し、マニフェストで許可するドメインを宣言してください。

## ユーザー事例

| シーン      | 入力                  | ミニアプリのやり方                             | 完了の目印                     |
| -------- | ------------------- | ------------------------------------- | ------------------------- |
| 執筆と書き換え  | 下書き、トーン、文字数の要件      | 【デフォルトモデル】で本文を生成し、【高速モデル】でタイトル候補を出す   | 原意を保ちつつ、異なる表現へすばやく切り替えられる |
| 会議議事録の整理 | 貼り付けた会議記録           | 結論、担当者、期限を抽出し、固定フォーマットで出力する           | 各アクションに担当者と日時の項目がある       |
| 多言語翻訳    | 原文、対象言語、用語集         | システムメッセージで用語と出力形式を固定し、翻訳文をストリーミング表示する | 固有名詞が統一され、段落構成が保持される      |
| 構造化情報の抽出 | 契約書、履歴書、またはフィードバック文 | モデルに固定フィールドで結果を返すよう求め、ページ側で欠落項目を検証する  | 必須項目が揃い、異常内容が示される         |
| 学習練習     | ノート、問題形式、難易度        | 問題、ヒント、解説を生成し、サンドボックスデータで進捗を保存する      | 再度開いても前回の練習を続けられる         |
| 縦型ワークフロー | チームテンプレートと業務ルール     | 入力、AI 処理、人手確認、エクスポートを 1 つの画面にまとめる     | 繰り返しタスクを同じフローで安定して完了できる   |

{% hint style="warning" %}
生成系ミニアプリの結果も、選択したモデルによって生成されます。医療、法律、財務などの高リスク用途や、正式業務に影響するデータは、必ず相応の資格を持つ人が再確認してください。
{% endhint %}

## よくある質問

<details>

<summary>Web ページの URL を入力したのに、なぜ Cherry AI を呼び出せないのですか？</summary>

【Webサイト】は Web ページを開くだけで、ページに注入は行いません。 `window.cherry`。アプリを `.miniapp` パッケージ化し、【ローカルミニアプリ】からインストールしてください。

</details>

<details>

<summary>ミニアプリに自分の API Key やモデルプロバイダは見えますか？</summary>

いいえ。ミニアプリは【デフォルトモデル】または【高速モデル】のスロットだけを要求します。Cherry Studio が呼び出しを代行し、モデル名、プロバイダ情報、API Key をミニアプリに公開することはありません。

</details>

<details>

<summary>インストール後に AI が利用できないと表示されるのはなぜですか？</summary>

まず【詳細を表示】→【設定】を開き、対応するモデルスロットに利用可能なモデルがあるか確認してください。次に【権限】で【AI 機能】→【会話】が許可されているか確認します。権限が必須権限で、そのアプリをもう信頼しない場合は、直接アンインストールしてください。

</details>

<details>

<summary>ミニアプリがどの機能を呼び出したかを確認するには？</summary>

【詳細を表示】→【アクティビティログ】を開きます。ここには AI、ネットワーク、クリップボード、ファイル書き出しなどの外部呼び出しと拒否された呼び出しが記録されますが、プロンプト、モデル応答、クリップボード内容、ファイル内容は記録されません。

</details>

<details>

<summary>更新、ロールバック、データ削除の違いは？</summary>

更新ではサンドボックスデータが保持され、新しい権限が追加された場合は再度確認が求められます。更新後は前のバージョンにロールバックできます。データの削除は、そのミニアプリが保存したデータとファイルを削除しますが、アプリ自体は残ります。アンインストールすると、アプリ、認可、データが同時に削除されます。

</details>

## 参考資料

* [Cherry Studio MiniApps 開発ドキュメントとコミュニティ一覧](https://github.com/CherryHQ/cherry-studio-miniapps/blob/main/README.zh-CN.md)
* [MiniApp 公式リファレンス](https://github.com/CherryHQ/cherry-studio/tree/main/docs/references/mini-app)
* [マニフェスト形式](https://github.com/CherryHQ/cherry-studio/blob/main/docs/references/mini-app/manifest.md)
* [機能インターフェース](https://github.com/CherryHQ/cherry-studio/blob/main/docs/references/mini-app/capabilities.md)
* [パッケージ化、更新、アンインストール](https://github.com/CherryHQ/cherry-studio/blob/main/docs/references/mini-app/packaging.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.cherryai.com.cn/docs/jp/cherry-studio/preview/app/generative-mini-apps.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
