Bucket

官方

使用 Bucket 標記功能、管理公司資料,並控制功能存取權限。

你可以用 Bucket MCP 做什麼?

  • 初始化專案設定 — 請助理執行 reflag init 來建立包含您的應用程式 ID 與設定的 reflag.config.json
  • 建立功能旗標 — 請助理執行 reflag flags create "My Flag" 來新增旗標,並可選擇自訂鍵值與格式。
  • 產生 TypeScript 型別 — 請助理執行 reflag flags types 來為 React 或 Node 產生型別安全的旗標定義。
  • 列出既有旗標 — 指示助理執行 reflag flags list 來檢視目前應用程式所設定的所有旗標。
  • 設定 AI 助理規則 — 請助理執行以新增 Reflag 的 Cursor 或 Copilot 內容規則。
  • 設定 MCP 連線 — 請助理執行以將您的編輯器連線至遠端 Reflag MCP 伺服器。

文件

Reflag CLI

用於與 Reflag 服務互動的命令列介面。此 CLI 可讓您管理應用程式、旗標、驗證,並為您的 Reflag 旗標產生 TypeScript 型別。透過此工具,您可以直接在終端機中簡化旗標管理工作流程。

安裝

將 CLI 安裝為您專案中的開發依賴:

# npm
npm install --save-dev @reflag/cli

# yarn
yarn add --dev @reflag/cli

從專案根目錄執行 new 指令,即可一步完成初始化 CLI、建立旗標並產生 TypeScript 型別:

# npm
npx reflag new

# yarn
yarn reflag new

從 Bucket SDK 遷移

如果您正從 Bucket CLI 遷移,以下是需要注意的主要變更:

  • 指令名稱:從 bucket 改為 reflag
  • 型別定義檔:從 features.d.ts 重新命名為 flags.d.ts(若舊檔已提交,請手動移除)
  • 驗證檔:從 .bucket-auth 改為 .reflag-auth(重新命名或移除舊檔)
  • 設定檔:從 bucket.config.json 改為 reflag.config.json(重新命名或移除舊檔)
  • 指令features 指令現在是 flags
  • 環境變數:使用 REFLAG_API_KEY 取代 BUCKET_API_KEY

重要:請更新您的腳本、建置步驟及 .gitignore 模式,以反映這些變更。

個別指令

如需更多控制,您可以個別執行每個指令:

# Initialize Reflag in your project (if not already setup)
npx reflag init

# Create a new flag
npx reflag flags create "My Flag"

# Generate TypeScript types for your flags
npx reflag flags types

設定

當您執行 reflag init 時,CLI 會在專案目錄中建立 reflag.config.json 檔案。此檔案包含 Reflag 整合所需的所有必要設定。

設定檔結構

以下是 reflag.config.json 檔案中可用的所有設定選項:

{
  "$schema": "https://unpkg.com/@reflag/cli@latest/schema.json",
  "baseUrl": "https://app.reflag.com",
  "apiUrl": "https://app.reflag.com/api",
  "appId": "ap123456789",
  "typesOutput": [
    {
      "path": "gen/flags.d.ts",
      "format": "react"
    }
  ]
}
選項說明預設值
$schema設定的自動完成。latest 可替換為特定版本。" https://unpkg.com/@reflag/cli@latest/schema.json "
baseUrlReflag 服務的基礎 URL。" https://app.reflag.com "
apiUrlReflag 服務的 API URL(覆寫 API 呼叫的 baseUrl)。" https://app.reflag.com/api "
appId您的 Reflag 應用程式 ID。必填
typesOutput產生 TypeScript 型別的路徑。可以是字串或包含 pathformat 屬性的物件陣列。可用格式:reactnode"gen/flags.ts" 搭配 "react" 格式

您可以使用命令列選項為個別指令覆寫這些設定。

指令

reflag init

在專案中初始化新的 Reflag 設定。這會建立包含您設定的 reflag.config.json 檔案,並提示輸入未透過選項提供的任何必要資訊。

npx reflag init [--overwrite]

選項:

  • --overwrite:若設定檔已存在,覆寫現有設定檔。
  • --app-id <id>:設定應用程式 ID。
  • --key-format <format>:設定旗標的金鑰格式。

reflag new [flagName]

快速上手的一體化指令。此指令結合了 init、旗標建立和型別產生於單一步驟。這是開始使用 Reflag 的最快方式。

npx reflag new "My Flag" [--app-id ap123456789] [--key my-flag]  [--key-format custom] [--out gen/flags.ts] [--format react]

選項:

  • --key:旗標的特定金鑰。
  • --app-id:要使用的應用程式 ID。
  • --key-format:旗標金鑰的格式(custom、snake、camel 等)。
  • --out:產生 TypeScript 型別的路徑。
  • --format:產生型別的格式(react 或 node)。

如果您希望對每個步驟有更多控制,可以改用個別指令(initflags createflags types)。

reflag login

使用您的 Reflag 帳戶進行驗證。這會安全地儲存您的憑證,供後續操作使用。

npx reflag login

reflag logout

登出您的 Reflag 帳戶並移除已儲存的憑證。

npx reflag logout

reflag flags

使用以下子指令管理您的 Reflag 旗標:

reflag flags create [flagName]

在您的 Reflag 應用程式中建立新旗標。若未提供選項,此指令會透過互動式提示引導您完成旗標建立流程。

npx reflag flags create "My Flag" [--app-id ap123456789] [--key my-flag] [--key-format custom]

選項:

  • --key:旗標的特定金鑰。
  • --app-id:要使用的應用程式 ID。
  • --key-format:旗標金鑰的格式。

reflag flags list

列出目前應用程式的所有旗標。這有助於您檢視可用的旗標及其目前的設定。

npx reflag flags list [--app-id ap123456789]

選項:

  • --app-id:要使用的應用程式 ID。

reflag flags types

為您的旗標產生 TypeScript 型別。這可確保在 TypeScript/JavaScript 應用程式中使用 Reflag 旗標時的型別安全。

npx reflag flags types [--app-id ap123456789] [--out gen/flags.ts] [--format react]

選項:

  • --app-id:要使用的應用程式 ID。
  • --out:產生 TypeScript 型別的路徑。
  • --format:產生型別的格式(react 或 node)。

reflag apps

用於管理 Reflag 應用程式的指令。

全域選項

這些選項可與任何指令搭配使用:

  • --debug:啟用除錯模式以輸出詳細資訊。
  • --base-url <url>:設定 Reflag API 的基礎 URL。
  • --api-url <url>:直接設定 API URL(覆寫基礎 URL)。
  • --api-key <key>:用於非互動式驗證的 Reflag API 金鑰。
  • --help:顯示指令的說明資訊。

AI 輔助開發

Reflag 透過規則和 Model Context Protocol (MCP) 提供強大的 AI 輔助開發能力。這些功能可協助您的 AI 開發工具更了解您的旗標,並提供更準確的協助。

rules 指令可協助您為專案設定 AI 專用規則。這些規則讓 AI 工具更了解如何處理 Reflag 旗標,以及它們在您的程式碼庫中應如何使用。

npx reflag rules [--format <cursor|copilot>] [--yes]

選項:

  • --format:要新增規則的格式:
    • cursor:將規則新增至 .cursor/rules/reflag.mdc 以整合 Cursor IDE。
      • copilot:將規則新增至 .github/copilot-instructions.md 以整合 GitHub Copilot。
  • --yes:跳過確認提示,直接覆寫現有檔案而不詢問。

此指令會將規則新增至您的專案,為 AI 工具提供如何設定和使用 Reflag 旗標的相關背景資訊。對於 copilot 格式,規則會新增至檔案中的專用區段,讓您可以在 Reflag 規則之外維護其他 copilot 指令。

Model Context Protocol

Model Context Protocol (MCP) 是一個開放式協定,提供標準化方式將 AI 模型連接到不同的資料來源和工具。在 Reflag 的脈絡中,MCP 讓您的程式碼編輯器了解您的旗標、其狀態及其在程式碼庫中的關聯。這在您的旗標管理工作流程與 AI 驅動的開發工具之間建立了無縫橋樑。MCP 伺服器由 Reflag 託管,讓您輕鬆上手。

**注意:Reflag 的 mcp CLI 指令先前用於 _local 伺服器。然而,在 Reflag CLI 的近期版本中,mcp 指令已被重新定位為協助您連接到新的遠端 MCP 伺服器。**_

設定 MCP

mcp 指令可協助您設定編輯器或 AI 用戶端,以連接到 Reflag 的遠端 MCP 伺服器。這可讓您的 AI 工具了解您的旗標並提供更具情境的協助。

npx reflag mcp [--editor <editor>] [--scope <local|global>]

選項:

此指令將引導您完成:

  1. 選擇要設定的編輯器/用戶端。
  2. 選擇要連接的 Reflag 應用程式。
  3. 決定使用全域或專案本機設定。
  4. 為您選擇的編輯器設定適當的設定檔。

注意:此設定使用 mcp-remote 作為相容性層,讓遠端託管的 Reflag MCP 伺服器可與所有支援 MCP STDIO 伺服器的編輯器/用戶端搭配運作。如果您的編輯器/用戶端支援 HTTP Streaming 搭配 OAuth,您可以直接連接到 Reflag MCP 伺服器。

在 CI/CD 管線中使用

Reflag CLI 專為在 CI/CD 管線中無縫運作而設計。對於無法進行互動式登入的自動化環境,請使用 --api-key 選項或在 REFLAG_API_KEY 環境變數中指定 API 金鑰。

# Generate types in CI/CD
npx reflag apps list --api-key $REFLAG_API_KEY

重要限制:

  • 使用 --api-key 時,loginlogout 指令會被停用
  • API 金鑰會略過所有互動式驗證流程
  • API 金鑰僅綁定一個應用程式。諸如 apps list 等指令只會傳回綁定的應用程式
  • 使用 CI/CD 平台的密鑰管理功能安全地儲存 API 金鑰

CI 工作流程範例:

# GitHub Actions example
- name: Generate types
  run: npx reflag flags types --api-key ${{ secrets.REFLAG_API_KEY }}

# GitHub Actions example (using environment):
- name: Generate types (environment)
  run: npx reflag flags types
  env:
    REFLAG_API_KEY: ${{ secrets.REFLAG_CI_API_KEY }}

開發

# Build the CLI
yarn build

# Run the CLI locally
yarn reflag [command]

# Lint and format code
yarn lint
yarn format

需求

  • Node.js >=18.0.0

授權

MIT License Copyright (c) 2025 Bucket ApS