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 助手规则 — 让助手运行来为 Cursor 或 Copilot 添加 Reflag 上下文规则。
  • 设置 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 通过规则和模型上下文协议(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 指令。

模型上下文协议

模型上下文协议(MCP)是一种开放协议,提供了一种标准化方式,将 AI 模型连接到不同的数据源和工具。在 Reflag 的上下文中,MCP 使您的代码编辑器能够理解您的标志、其状态及其在代码库中的关系。这在您的标志管理工作流程和 AI 驱动的开发工具之间创建了无缝桥梁。MCP 服务器由 Reflag 托管,使入门变得简单。

**注意:Reflag 的 mcp CLI 命令以前用于 _本地 服务器。但在 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 服务器的编辑器/客户端配合使用。如果您的编辑器/客户端支持带 OAuth 的 HTTP Streaming,您可以直接连接到 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 许可证 版权所有 (c) 2025 Bucket ApS