> For the complete documentation index, see [llms.txt](https://docs.keeper.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.keeper.io/keeperpam/jp/secrets-manager/integrations/jetbrains-plugin.md).

# JetBrainsプラグイン

## 概要

JetBrains IDEは、世界中の開発者に広く利用されている強力な統合開発環境で、さまざまなプログラミング言語やフレームワークでのアプリケーション開発に活用されています。Java、Python、JavaScriptなど、どの対応言語で開発する場合でも、コーディングからデバッグ、デプロイまでを包括的に支援する機能を備えています。

Keeper Securityプラグインを導入すると、JetBrains IDE上でKeeperボルトと連携できるようになり、ハードコードされたシークレットをボルト参照に置き換え、機密情報を明らかにすることなく認証情報を注入したコマンドを実行できます。本プラグインでは、**従来型共有フォルダ**と**階層型共有フォルダ**のボルト項目を同じ操作で扱えます。フォルダおよびレコードの選択、シークレットの取得、レコードの作成/更新/生成、`.env` ファイルからの安全な実行などに対応しています。

## 機能

* **シークレット管理**: JetBrains IDEからKeeperボルトを使用してシークレットの保存・取得・生成が可能
* **安全な実行**: .envファイルを処理し、Keeperボルトから注入されたシークレットを使用してコマンドを実行
* **HTTP Client連携** (IntelliJ IDEA Ultimate / WebStorm / GoLand): `.http` リクエストファイルで `{{$keeper("uid","field")}}` 動的変数を使い、ボルトのシークレットを直接参照。リクエストファイルに平文のシークレットを記載する必要はありません
* **実行構成**: **\[Run]** → **\[Edit Configurations]** で**Run Keeper Securely**構成 (`.env` パス、作業ディレクトリ、コマンド) を保存し、Runツールウィンドウに出力を表示
* **フォルダ管理**: Keeperボルトフォルダを選択・管理し、シークレットを整理して保存
* **レコード操作**: 新しいレコードの作成、既存レコードの更新、フィールド参照の取得
* **クロスプラットフォーム対応**: Windows、macOS、Linux
* **階層型共有フォルダ**: 従来型共有フォルダと階層型共有フォルダのフォルダ・レコードを同じ操作で扱い、 `record-*` または `nsf-*` のコマンダーコマンドへ自動ルーティング
* **検索可能なピッカー**: フォルダおよびレコード一覧の各行に **\[Classic]** (従来型共有フォルダ) / **\[Nested]** (階層型共有フォルダ) バッジを表示
* **Community Edition対応**: 主要なボルト操作はIntelliJ IDEA Community Editionで動作。HTTP Client連携にはUltimate / WebStorm / GoLandが必要

## 要件

* **KeeperコマンダーCLI**
  * システムにインストールおよび認証されている必要があります
  * [Keeperコマンダーインストール手順](/keeperpam/jp/commander-cli/commander-installation-setup.md)をご参照のうえダウンロード
  * [永続ログイン](/keeperpam/jp/commander-cli/commander-installation-setup/logging-in.md#persistent-login-sessions-stay-logged-in)または[生体認証ログイン](/keeperpam/jp/commander-cli/commander-installation-setup/logging-in.md#logging-in-with-biometric-authentication)で認証
* **Keeper Securityアカウント**: ボルトアクセスを含む有効なサブスクリプション
* **階層型共有フォルダ操作**には、 `nsf-*` コマンドを含む新しいKeeperコマンダーが必要です。 `nsf-record-add` が不明などのエラーが出る場合は、コマンダーをアップグレードしてください。

  ```bash
  pip install --upgrade keepercommander
  ```

  * [階層型共有フォルダCLIリファレンス](/keeperpam/jp/commander-cli/command-reference.md#nested-share-subfolders-commands)をご参照ください。

## システム要件

* **JetBrains IDE**: バージョン **2024.3以降** (IntelliJ IDEA、PyCharm、WebStorm、PhpStorm、RubyMine、CLion、GoLandなど、プラットフォームビルド243以降のJetBrains IDE)
* **Java**: バージョン11以降 (IDEに同梱)
* **HTTP Client** (任意): `.http` / `.rest` 連携には、JetBrains HTTP Clientを同梱するIDEが必要です (例: IntelliJ IDEA Ultimate、WebStorm、GoLand)。IntelliJ IDEA Community Editionには含まれませんが、Community Editionでもその他のKeeper操作は通常どおり利用できます
* **Python**: バージョン3.6以降 (KeeperコマンダーCLIに必要)

## セットアップ

### **インストール (JetBrains Marketplaceを使用)**

1. JetBrains IDEを開く
2. **\[File]** → **\[Settings]** → **\[Plugins]** (macOSの場合は **\[IntelliJ IDEA]** → **\[Preferences]** → **\[Plugins]**)
3. 「Keeper Security」を検索
4. **\[Install]** をクリックしてIDEを再起動

## 認証

KeeperコマンダーCLIを通じて、次の2つの方法で認証を行えます。

1. 生体認証ログイン

```
# Keeperにログイン
keeper shell

# 生体認証を登録
biometric register

# 指示に従って生体認証を設定
```

2. 永続ログイン

```
# Keeperにログイン
keeper shell

# デバイスを永続ログイン用に登録
this-device register

# 永続ログインを有効化
this-device persistent-login on

# 設定を確認
this-device
```

### プラグイン認証の確認

1. 任意のJetBrains IDEを開く
2. **\[Tools]** → **\[Keeper Vault]** → **\[Check Keeper Authorization]**
3. 認証ステータスが「成功」と表示されることを確認

## 使用方法

すべてのKeeper操作は次の方法で利用できます。

* メインメニュー: **\[Tools]** → **\[Keeper Vault]** → **\[Action]**
* コンテキストメニュー: エディタ内で右クリック → **\[Action]**

### 使用できるコマンド

| コマンド                                  | 説明                                                                                                                   | 使用例・目的                           |
| ------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------- |
| **Check Keeper Authorization**        | Keeper CLIのインストールと認証状態を確認します                                                                                         | 接続問題のトラブルシューティングや設定確認に使用         |
| **Get Keeper Secret**                 | ボルト内の既存シークレットを参照として挿入します (従来型共有フォルダまたは階層型共有フォルダ)                                                                     | 保存済みシークレットを値を表示せずに取得             |
| **Add Keeper Record**                 | 選択したテキストをボルト内のシークレットとして保存し、参照に置き換えます (従来型共有フォルダまたは階層型共有フォルダ)                                                         | ハードコードされたシークレットをKeeper参照に置き換え    |
| **Update Keeper Record**              | **レコードUID** とフィールド名で既存のボルトレコードを更新。従来型共有フォルダまたは階層型共有フォルダへ自動ルーティング                                                     | 参照を維持したまま既存シークレットの内容を更新          |
| **Generate Keeper Secret**            | 安全なパスワードを生成してボルトに保存します (従来型共有フォルダまたは階層型共有フォルダ)                                                                       | 新しい安全な認証情報を自動で作成                 |
| **Get Keeper Folder**                 | 本プロジェクト用に従来型共有フォルダまたは階層型共有フォルダを選択 (バッジ付きの検索可能な一覧)                                                                    | Add / Generateで新規レコードを作成する保存先を指定 |
| **Run Keeper Securely**               | `.env` ファイルからシークレットを注入してコマンドを実行します。Toolsメニューからの一時実行、または **\[Run]** → **\[Edit Configurations]** に保存した実行構成のいずれか       | 実行時にボルトシークレットを利用してアプリを安全に実行      |
| **Get Keeper Secret (in .http file)** | JetBrains HTTP Clientのリクエストファイル (`.http`) のカーソル位置に `{{$keeper("uid","field")}}` を挿入 (Ultimate / WebStorm / GoLandのみ) | HTTPリクエストにシークレットを注入し、平文の値を記載しない  |

### 階層型共有フォルダ (プラグイン2.0.2)

Keeperでは、プラグイン上でまとめて表示される2つのボルトモデルを利用できます。

* **従来型共有フォルダ:** 従来のボルトフォルダおよびレコード (`record-add`、`record-update` など)
* **階層型共有フォルダ:** NSFフォルダおよびレコード (`nsf-record-add`、`nsf-record-update` など)

プラグインはボルトのメタデータに基づき、適切なコマンダーコマンド群を選択します。操作ごとに従来型共有フォルダと階層型共有フォルダを手動で切り替える必要はありません。

**フォルダおよびレコードのピッカー**

* **Get Keeper Folder**と**Get Keeper Secret**では、従来型共有フォルダと階層型共有フォルダの項目を1つの検索可能なダイアログに表示します。
* 各行に\*\*\[Classic]\*\* (従来型共有フォルダ) または\*\*\[Nested]\*\* (階層型共有フォルダ) バッジが表示されます。
* 表示名が重複する場合も、内部ではレコード/フォルダUIDで解決されます。クリックした行がそのまま使用されます。

**新規レコード用フォルダの指定**

1. **\[Tools]** → **\[Keeper Vault]** → **\[Get Keeper Folder]** を実行し、フォルダ (従来型共有フォルダまたは階層型共有フォルダ) を選択します。
2. 選択内容は現在のプロジェクト用に保存されます。
3. **Add Keeper Record**と**Generate Keeper Secret**は、対応するコマンド群を使い、そのフォルダにレコードを作成します。
4. AddまたはGenerateの前に**Get Keeper Folderは必須**です。プロジェクトにフォルダが保存されていない場合、これらの操作は先にGet Keeper Folderを実行するよう促します。

**コマンダーの要件**

階層型共有フォルダの作成/更新フローには、 `nsf-*` に対応した新しいコマンダーが必要です。 `nsf-record-add` などが認識されない場合は、 `pip install --upgrade keepercommander` でアップグレードしてください。

## 基本的なシークレット管理

1. 既存シークレットの取得

```
# シークレット参照を挿入したい位置にカーソルを置く
database_password = |

# 使用手順: Tools → Keeper Vault → Get Keeper Secret
# レコードを検索して選択 (従来型共有フォルダまたは階層型共有フォルダ。各行にバッジを表示)
# そのレコードからフィールドを選択
# 実行結果:
database_password = keeper://abc123def456/field/password
```

2. 新規シークレットの追加

```
// シークレット文字列を選択
const apiKey = "sk-1234567890abcdef";

// 事前に必須: Tools → Keeper Vault → Get Keeper Folder
// (新規レコード用に従来型共有フォルダまたは階層型共有フォルダを選択)
// 使用: 右クリック → Add Keeper Record
// タイトルとフィールド名を入力
// 結果:
const apiKey = keeper://new-record-uid/field/api_key;
```

3. 安全なパスワードの生成

```
# カーソルを置く
admin_password: |

# 事前に必須: Tools → Keeper Vault → Get Keeper Folder
# (新規レコード用に従来型共有フォルダまたは階層型共有フォルダを選択)
# 使用: Tools → Keeper Vault → Generate Keeper Secret
# レコードタイトルとフィールド名を入力
# 結果:
admin_password: keeper://generated-record-uid/field/password
```

***

## セキュアコマンド実行

#### 環境ファイル設定

`.env` ファイルにKeeper参照を含めます。

```
DATABASE_URL=keeper://db-record-uid/field/connection_string
API_KEY=keeper://api-record-uid/field/key
SECRET_KEY=keeper://app-record-uid/field/secret
JWT_SECRET=keeper://auth-record-uid/field/jwt_key
```

{% hint style="info" %}
**レコードUIDの形式:** `keeper://` 参照の値には、有効なKeeperレコードUID (URLセーフなBase64の22文字: `A-Z`、`a-z`、`0-9`、`_`、`-`) を使用する必要があります。無効なUIDはスキップされ、実行時にエラーとして報告されます。
{% endhint %}

**シークレットを注入してコマンドを実行**

**オプション1: クイック実行 (右クリック操作)**

1. プロジェクト内で右クリック → **\[Run Keeper Securely]**
2. `.env` ファイルを選択または確認
3. 実行するコマンドを入力 (例: `python3 app.py`)
4. プラグインがボルトからシークレットを解決してコマンドを実行し、完了時に出力を表示します (Toolsメニューからの対話的フロー)。Runツールウィンドウでの履歴付きの繰り返し実行には、保存した **Run Keeper Securely** 構成を使用してください (オプション2を参照)。

```bash
# プラグインは実際の値を使用してコマンドを実行します
python3 app.py
# 環境変数の内容
# DATABASE_URL=postgresql://user:pass@host:5432/db
# API_KEY=ak_live_1234567890abcdef
# SECRET_KEY=super-secret-key-value
# JWT_SECRET=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
```

**オプション2: 保存した実行構成 (繰り返し実行に推奨)**

**プラグインバージョン 1.1.0 以降で利用できます。**

1. **\[Run]** → **\[Edit Configurations…]** → **\[+]** → **\[Run Keeper Securely]** に移動します。
2. 以下の3項目を入力します。
   * **Environment file (.env)** — `keeper://` 参照を含む `.env` ファイルのパス
   * **Working directory** — 空欄の場合はプロジェクトルートを使用
   * **Command** — 実行するコマンド (例: `python main.py`、`node app.js`)
3. **\[OK]** をクリックし、標準の **\[Run]** / **\[Debug]** ツールバーから実行します。
4. 出力とエラーは **Run** ツールウィンドウに直接表示されます。再実行、停止、出力履歴の参照が可能です。

{% hint style="info" %}
新規構成では、プロジェクトルートで Python インタープリタ (プロジェクト SDK または検出した `venv` から) と、よくあるエントリスクリプト (`main.py` / `app.py` / `run.py`) が見つかった場合に自動入力されます。
{% endhint %}

## **完全なワークフローの例**

```
# 1. ハードコードされたシークレットを使用した状態 (非推奨)
import os
import requests

DB_PASSWORD = "hardcoded_password_123"
API_TOKEN = "secret_api_token_xyz"

# 2. ボルト参照に置き換え
# 使用方法: 各シークレットに対して Add Keeper Record を実行
DB_PASSWORD = keeper://db-creds-uid/field/password
API_TOKEN = keeper://api-creds-uid/field/token

# 3. 安全な実行用に .env ファイルを作成
# .env の内容
# DB_PASSWORD=keeper://db-creds-uid/field/password
# API_TOKEN=keeper://api-creds-uid/field/token

# 4. アプリケーションを安全に実行
# 使用方法: Run Keeper Securely で "python3 my_app.py" を実行

```

### HTTP Client連携

{% hint style="info" %}
**プラグインバージョン 1.1.0 以降で利用できます。**

**要件**: 本機能には JetBrains HTTP Client プラグインを同梱する IDE が必要です — IntelliJ IDEA Ultimate、WebStorm、GoLand。IntelliJ IDEA Community Edition には含まれません。Community Edition でも Keeper プラグインのその他の機能は通常どおり利用できます。

階層型共有フォルダのレコードも、従来型共有フォルダのレコードと同じ `{{$keeper("RECORD_UID", "field-name")}}` 構文を使用します。UIDはボルトモデルに関係なくKeeperレコードUIDです。
{% endhint %}

Keeperプラグインは JetBrains HTTP Client 用に `$keeper` 動的変数を登録します。`.http` または `.rest` ファイルで実際の値を入力せずにボルトのシークレットを参照できます。

#### 構文

```http
{{$keeper("RECORD_UID", "field-name")}}
```

* `RECORD_UID` — KeeperレコードのUID (`keeper://UID/field/...` と同じ)
* `field-name` — フィールドパス (例: `password`、`login`、`custom.api_key`)

#### 例

#### 認証付きAPI呼び出し

```http
GET https://api.example.com/v1/resource
Authorization: Bearer {{$keeper("abc123def456", "password")}}
Content-Type: application/json
```

#### 基本認証

```http
POST https://api.example.com/v1/login
Content-Type: application/json 

{
    "username": "{{$keeper("abc123def456", "login")}}",
    "password": "{{$keeper("abc123def456", "password")}}"
}
```

#### Get Keeper Secret による挿入

UID を手入力せずに挿入する手順は以下のとおりです。

1. `.http` ファイルを開き、参照を挿入する位置にカーソルを置きます。
2. **\[Tools]** → **\[Keeper Vault]** → **\[Get Keeper Secret]** (または右クリック → **\[Get Keeper Secret]**)
3. レコードを検索して選択します (**\[Classic]** / 従来型共有フォルダ、または **\[Nested]** / 階層型共有フォルダ。各行にバッジを表示)。続けてフィールドを選択します。
4. プラグインがカーソル位置に `{{$keeper("uid","field")}}` を自動挿入します。

## アクションリファレンス

#### Check Keeper Authorization

Keeper CLIのインストールおよび認証状態を確認します。

**使用方法**: **\[Tools]** → **\[Keeper Vault]** → **\[Check Keeper Authorization]**

**目的**: 接続の問題をトラブルシューティングし、設定を確認する

#### Get Keeper Secret

ボルト内の既存シークレットを参照として取得します。

**使用方法**: カーソルを合わせてから **\[Tools]** → **\[Keeper Vault]** → **\[Get Keeper Secret]** (または右クリック → **\[Get Keeper Secret]**)

**プロパティ**

* **入力**: エディタ内のカーソル位置
* **出力**: カーソル位置にKeeper参照を挿入 — ファイル種別により形式が異なります

| ファイル種別                          | 挿入される形式                                  |
| ------------------------------- | ---------------------------------------- |
| `.env`、`.py`、`.js`、スクリプトなど      | `keeper://record-uid/field/field-name`   |
| `.http` / `.rest` (HTTP Client) | `{{$keeper("record-uid","field-name")}}` |

* **ピッカー:** 従来型共有フォルダと階層型共有フォルダのレコードの検索可能な一覧。各行に\*\*\[Classic]\*\* (従来型共有フォルダ) または\*\*\[Nested]\*\* (階層型共有フォルダ) バッジを表示
* **HTTP Client:** IntelliJ IDEA Ultimate、WebStorm、またはGoLandが必要

#### Add Keeper Record

選択したテキストから新しいボルトレコードを作成し、参照に置き換えます。

**使用方法**: テキストを選択し、右クリック → **\[Add Keeper Record]** または **\[Tools]** → **\[Keeper Vault]** → **\[Add Keeper Record]**

**プロパティ**

* **入力**: シークレットを含む選択テキスト
* **出力**: 選択テキストを `keeper://` 参照に置き換え
* **入力項目**: レコードタイトル、フィールド名
* **フォルダ指定:** 特定の従来型共有フォルダまたは階層型共有フォルダに新規レコードを保存するには、先に**Get Keeper Folder**を実行
* **必須:** 先に**Get Keeper Folder**を実行し、プロジェクト用フォルダを保存してください。保存済みフォルダがない場合、Add / Generateは実行されません
* **ルーティング:** 従来型共有フォルダでは `record-add`、階層型共有フォルダでは `nsf-record-add` を使用

#### Update Keeper Record

選択したテキストを使用して既存のボルトレコードを更新します。

**使用方法**: 新しいシークレット値を選択し (または `=` の後の値にキャレットを置き)、右クリック → **\[Update Keeper Record]**

**プロパティ**

* **入力**: 更新後のシークレットを含む選択テキスト
* **入力項目**: Keeperの**レコードUID**、続いて**フィールド名**
* **検証**: プラグインはUIDを検証し、更新前にレコードの存在を確認します
* **出力**: テキストを既存レコードの `keeper://` 参照に置き換え
* **ルーティング:** 従来型共有レコードでは `record-update`、階層型共有レコードでは `nsf-record-update` を使用

#### Generate Keeper Secret

安全なパスワードを生成してボルトに保存します。

**使用方法**: カーソルを合わせてから **\[Tools]** → **\[Keeper Vault]** → **\[Generate Keeper Secret]** (または右クリック → **\[Generate Keeper Secret]**)

**プロパティ**

* **入力**: カーソル位置
* **出力**: 生成された安全なパスワード参照をカーソル位置に挿入
* **入力項目**: レコードタイトル、フィールド名
* **フォルダ指定:** 特定の従来型共有フォルダまたは階層型共有フォルダにレコードを作成するには、先に**Get Keeper Folder**を実行
* **必須:** 先に**Get Keeper Folder**を実行し、プロジェクト用フォルダを保存してください。保存済みフォルダがない場合、Add / Generateは実行されません
* **ルーティング:** 従来型共有フォルダでは `record-add`、階層型共有フォルダでは `nsf-record-add` を使用

#### Get Keeper Folder

現在のプロジェクトで新規レコードを整理するための従来型共有フォルダまたは階層型共有フォルダを選択します。

**使用方法**: **\[Tools]** → **\[Keeper Vault]** → **\[Get Keeper Folder]**

**プロパティ**

* **目的**: **Add Keeper Record**と**Generate Keeper Secret**が使用するプロジェクト用フォルダを設定
* **ピッカー:** 従来型共有フォルダと階層型共有フォルダの検索可能な一覧。各行に **\[Classic]** (従来型共有フォルダ) または **\[Nested]** (階層型共有フォルダ) バッジを表示
* **適用範囲**: 現在のワークスペースまたはプロジェクト
* **永続性**: 選択内容はそのプロジェクトのIDEセッション間で保持されます
* **ルーティング:** 従来型共有フォルダ選択時はAdd/Generateを `record-*` へ、階層型共有フォルダ選択時は `nsf-*` へルーティング

#### Run Keeper Securely

`.env` ファイルからシークレットを注入してコマンドを実行します。

**使用方法**: エディタ内で右クリック → **\[Run Keeper Securely]** (または **\[Tools]** → **\[Keeper Vault]** → **\[Run Keeper Securely]**)

**プロパティ**

* **入力**: Keeper参照を含む `.env` ファイル
* **処理内容**: ボルトから実際のシークレット値を取得
* **出力**: 対話的実行 (Toolsメニューまたはエディタの右クリック) では完了時にダイアログで出力を表示。保存した実行構成ではRunツールウィンドウに出力をストリーム表示
* **セキュリティ**: シークレットはメモリ上で解決され環境変数として注入されます。ディスクにシークレット値は書き込まれません。サブプロセスの環境は、検証済みのボルト値と親プロセスから引き継ぐ最小限のホワイトリスト変数 (`PATH` や `HOME` など) から再構築されます。IDE由来のフック変数は引き継がれません
* **UID検証:** `.env` ファイル内の `keeper://` レコードUIDは、有効な22文字のKeeperレコードUIDである必要があります。無効なエントリはエラーとともにスキップされます

**オプション: 保存した実行構成 (プラグインバージョン 1.1.0 以降)**

右クリック操作に加え、**Run Keeper Securely** は永続的な実行構成タイプとしても利用できます。

**使用方法**: **\[Run]** → **\[Edit Configurations]** → **\[+]** → **\[Run Keeper Securely]**

**プロパティ**

* **Environment file**: `keeper://` 参照を含む `.env` ファイルのパス (相対または絶対)
* **Working directory**: コマンドの実行ディレクトリ。空欄の場合はプロジェクトルート
* **Command**: コマンド文字列全体 (例: `python main.py`、`node server.js`、`./gradlew run`)
* **出力**: Runツールウィンドウに表示。停止、再実行、スクロール可能な履歴を利用可能
* **セキュリティ**: シークレットはメモリ上で解決され環境変数として注入されます。ディスクにシークレット値は書き込まれません

***

## 対応プラットフォーム

* **Linux**: Ubuntu 18.04+、CentOS 7+、RHEL 7+、Debian 9+、Fedora 30+
* **macOS**: 10.14以降 (Mojave以上)
* **Windows**: Windows 10+、Windows Server 2016+

***

### 要件

**JetBrains IDE**

* IntelliJ IDEA **2024.3+**
* PyCharm **2024.3+**
* WebStorm **2024.3+**
* PhpStorm **2024.3+**
* RubyMine **2024.3+**
* CLion **2024.3+**
* GoLand **2024.3+**
* DataGrip **2024.3+**
* Rider **2024.3+**

### 依存関係

* Java Runtime: 11以上 (JetBrains IDEに含まれる)
* Python: 3.6以上 (KeeperコマンダーCLI用)
* pip: 最新バージョン (CLIインストール用)


---

# 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.keeper.io/keeperpam/jp/secrets-manager/integrations/jetbrains-plugin.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.
