# @fluid-app/fluid-cli 中文文档

规范地址：https://npmcn.com/package/%40fluid-app/fluid-cli/

版本：0\.1\.752
npm 元数据更新时间：2026-11-15T00:20:25.297Z
中文译文更新时间：2026-11-15T01:31:50.715Z
软件包许可：未声明

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40fluid-app/fluid-cli
原文对照：https://npmcn.com/package/%40fluid-app/fluid-cli/?lang=original

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：1.1 MB，20 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=24\.0\.0
- 运行依赖：5 个
- 首次发布：2026-03-12T19:48:23.213Z
- 最新版本发布：2026-11-15T00:20:25.115Z
- 近 30 天下载量：275573（2026-10-15 至 2026-11-13，npm 官方下载统计）
- 已发布版本数：753（近 12 个月 753 个）

## 中文简介

Fluid 商务的核心 CLI — 认证、配置和插件系统

## 安装

```sh
npm install @fluid-app/fluid-cli
```

也可以使用：`pnpm add @fluid-app/fluid-cli`、`yarn add @fluid-app/fluid-cli`、`bun add @fluid-app/fluid-cli`

## README

# @fluid-app/fluid-cli (英语)

流体商业CLI. 提供认证,配置管理,和一个插件系统,用于扩展特定域的命令.

## 安装

```bash
npm install -g @fluid-app/fluid-cli
```

## 报名

`fluid signup` 在Fluid的公开注册前创建一家公司 登录 :

```bash
fluid signup --email maya@acme.test --first-name Maya --last-name Lee \
  --company-name "Acme" --subdomain acme --yes --json
```

它以服务器存储的形式发送子域名(小写字母, 数字和连字符,最多63个,打印公司的 `fluidShop`,则 两个 `fluid login` 台阶下面的标志 它。 第二步就省钱了 在以子域名命名的配置文件下签名( x)`--name`),所以它从来没有 静静地替换您已有的配置 。 流出电子邮件地址链接到 确认注册; 使用电子邮件编码签名也确认.

它发出一个请求 并且从不重复它: 每一次尝试,失败与否, 数到注册限制(每个IP地址和每个电子邮件),a 失败可能发生在公司被拯救之后。 错误说是哪个情况 应用: `SUBDOMAIN_TAKEN`, (中文(简体) ), `SIGNUP_MAY_EXIST` (运行同一命令一次) 更多;一个带去的子域意味着它存在), `RATE_LIMITED` (与 `retryAfter` (单位:秒), `SIGNUP_FORBIDDEN` 或者说 `SIGNUP_OUTCOME_UNKNOWN`。 。 。 . 一个小时内同一邮件的第二个注册通常不会发送新邮件 电子邮件 无 `--yes` 它在终点站问, 拒绝当没有 终端或与 `--json`,用于打印一个对象(`status` 实值 `signed_up` 或者说 `error`) (中文(简体) ).

`--agent-access [name]` 也要求获得新的 公司批准代理; 命令等待, 然后保存为配置 . 启用时可用 : [自动调试](https://npmcn.com/package/%40fluid-app/fluid-cli/AGENT_ACCESS.md)。 。 。 .

## 认证

```bash
# Email MFA flow
fluid login

# API token (avoids shell history exposure)
FLUID_TOKEN=your-token-here fluid login

# Manage profiles
fluid whoami            # Show active profile
fluid switch            # Switch between profiles
fluid logout            # Remove stored authentication
```

配置文件存储于 `~/.fluid/config.json`。 。 。 .

`--shop <shop>` 签到一个公司`acme` 或者说 `acme.fluid.app`) (中文(简体) ). 对于一个 管理员,用发给商店的密码完成登录,也证实 新公司的注册.

### 没有终点站

`fluid login` 快速请求电子邮件和代码, 所以是脚本或代理 在两步内没有终端标志:

```bash
# 1. Email a code for one company and save the sign-in (prints how to finish)
fluid login --send-code --email maya@acme.test --shop acme

# 2. Finish with the emailed code from FLUID_LOGIN_CODE
FLUID_LOGIN_CODE=123456 fluid login --code --email maya@acme.test --yes

#    or read it from stdin with --code -
echo 123456 | fluid login --code - --email maya@acme.test --yes
```

步骤1的需要 `--shop`:代码与公司相连,只有这样 代码确认新注册( n)`fluid signup` 将店铺打印为 `fluidShop`; API 的注册响应名称 `fluid_shop`) (中文(简体) ). 步骤2向同一公司发出信号;a `--shop` 给它 一定和它相符.

代码在30分钟后过期,5个错误代码将其锁定. 步骤1 将服务器的id保存到下面的登录 `~/.fluid/pending-logins/` 直到第二步完成; 单靠id不能 签名。 代码为 `--code 123456` 工作但可见于外壳 历史.

没有终点站(以及 `--code -`,这需要stdin),步骤2需要 `--yes`,取代以公司名称命名的配置文件,或 `--name <profile>`,如果该配置文件在使用代码前被拒绝 已存在。 无论哪种方式,代码都永远不会被用在它无法写的配置文件上. `--json` 打印一个 JSON 对象(`status` 实值 `code_sent`, (中文(简体) ), `signed_in` 或者说 `error`,带有 `code` (关于错误).

没有终点站, `fluid login` 一次失败,而不是等待 除非它有一种迹象`--token` 或者说 `FLUID_TOKEN`)或运行其中之一 二个步骤`--send-code`, (中文(简体) ), `--code`) (中文(简体) ).

### 弗利德的身份签名公司

Fluid决定每个公司是否通过身份服务签名. 对于这样的公司,电子邮件有登录链接而不是代码. 粘贴 链接在代码提示时,或者在没有终端时,将其交给 `--code` 同样的 作为代码的方式( 在 `FLUID_LOGIN_CODE` 或于斯丁语. `fluid login` 然后打开 您的浏览器可以在一次性服务器上签名并接收结果 `http://127.0.0.1:<port>/callback`。登录的 URL 也会被打印 与 `--json`),用于没有浏览器打开的终端.

在此模式下, 没有向 `config.json`。刷新令牌保存在 操作系统证书存储( MacOS keychain, Windows 证书) 管理器,或Linux上的特勤局),并仅在内存中访问符. `fluid switch` 通过证券交易移动公司, `fluid whoami` 读取 身份会话,以及 `fluid logout` 撤销会话。 其他公司 和以前一样.

## 插件

在核心 CLI 旁边安装插件以添加命令 :

| 软件包 | 图标 | 说明 |
| --- | --- | --- |
| `@fluid-app/fluid-cli-theme-dev` | `fluid theme *` | 主题 Dev 服务器, 推, 拉, 输入 |
| `@fluid-app/fluid-cli-portal` | `fluid portal *` | 门户应用软件建设、部署、推、拉 |
| `@fluid-app/fluid-cli-themes` | `fluid themes *` | 主题管理 API 命令 |
| `@fluid-app/fluid-cli-assets` | `fluid assets *` | 数字资产管理命令 |
| `@fluid-app/fluid-cli-droplets` | `fluid droplets *` | 滴盘管理命令,包括 `install`, (中文(简体) ), `uninstall` 财务报告和审定财务报表 `installed` |
| `@fluid-app/fluid-cli-products` | `fluid products *` | 创建已定价目录产品 |

示例

```bash
npm install -g @fluid-app/fluid-cli @fluid-app/fluid-cli-theme-dev
fluid theme dev
```

插件是自动从 :

1.  `node_modules/@fluid-app/` 在当前工作目录中
2.  `node_modules/@fluid-app/` 安装 CLI 本身的地方( 全球安装)
3.  在 pnpm 工作空间( monorepo 开发) 中的兄弟姐妹套件

## 发现命令

```bash
fluid commands                 # every installed command, one line each
fluid commands domains         # only `fluid domains` and its subcommands
fluid commands --json          # the full catalog, for agents and doc generators
```

JSON目录列出了每个命令及其参数、旗帜(以及 父命令它也接受的旗帜,是否更改数据,以及 aPI的终点. `writes` 实值 `true` 或者说 `false` 当插件时 声明或命令确认 `--yes`,以及 `null` 当未知. `endpoints` 实值 `null` 直到插件宣布它们:未知,而不是“调用否” API(英语: 插件声明终点 `describeCommand`数字 :

```ts
import { describeCommand } from "@fluid-app/fluid-cli";

describeCommand(parent.command("status <domain>"), {
  endpoints: [{ method: "GET", path: "/api/domains/{id}" }],
  writes: false,
});
```

## 壳完成

```bash
echo 'eval "$(fluid completion bash)"' >> ~/.bashrc
fluid completion zsh > "${fpath[1]}/_fluid"
fluid completion fish > ~/.config/fish/completions/fluid.fish
```

补全询问每个标签上安装的 CLI, 因此新插件完成 不重排剧本。 它完成命令,化名,旗帜和 具有固定选择的值。 脚本将输入的单词管道到 而不是作为参数,所以输入 `--token` 从不显示 在进程列表中.

## 更新

每日一次交互运行开始对 npm 的背景检查 较新的 `@fluid-app/fluid-cli`,并更新 `@fluid-app/fluid-cli-member-site` (Sites插件); 上面没有命令等待 。 当最后一张支票找到时, a 命令完成后, stderr 上的短通知打印。 站点插件的 通知是关于装入的命令的副本,并指定命令名称 更新副本. 一次失败的检查会在第二天重审 。 它从不运行在CI中,当输出被管道接通,或者用于一个 工作空间建设。 设定 `FLUID_NO_UPDATE_CHECK=1` (或 `NO_UPDATE_NOTIFIER=1`(中文(简体) ) 把它关掉.

## 环境变量

| 变量 | 说明 |
| --- | --- |
| `FLUID_TOKEN` | API 令牌( 可选为 `fluid login`(中文(简体) ) |
| `FLUID_LOGIN_CODE` | 电子邮件代码读取 `fluid login --code` |
| `FLUID_API_BASE` | API 基础 URL( 默认 ): `https://api.fluid.app`(中文(简体) ) |
| `FLUID_CONFIG_DIR` | 覆盖配置目录( 默认 ): `~/.fluid/`(中文(简体) ) |
| `FLUID_IDENTITY_URL` | 身份服务来源(默认: `FLUID_API_BASE`(中文(简体) ) |
| `FLUID_NO_BROWSER` | 在不打开浏览器的情况下打印登录的 URL |
| `FLUID_NO_UPDATE_CHECK` | 关闭每日更新通知 |

## 发展

对于在此单曲中工作的撰稿人:

```bash
pnpm --filter @fluid-app/fluid-cli build
node packages/cli/core/dist/bin/fluid.mjs --help
```

## 常见问题

### @fluid-app/fluid-cli 是什么？

Fluid 商务的核心 CLI — 认证、配置和插件系统

### 如何安装 @fluid-app/fluid-cli？

在项目目录运行 npm install @fluid-app/fluid-cli，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 fluid，可以用 npx fluid 直接运行。

### @fluid-app/fluid-cli 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @fluid-app/fluid-cli 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @fluid-app/fluid-cli 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=24\.0\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @fluid-app/fluid-cli 可以商用吗？

@fluid-app/fluid-cli 使用 未声明 许可。package\.json 没有声明许可证。没有许可证的代码默认保留全部权利，商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括，不构成法律意见，请以许可原文为准。

### @fluid-app/fluid-cli 的下载量有多少？

根据 npm 官方下载统计，@fluid-app/fluid-cli 在 2026/10/15 – 2026/11/13 这 30 天内被下载 275,573 次，日均约 9,186 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @fluid-app/fluid-cli 还在维护吗？

最新版本 0\.1\.752 发布于 2026/11/15（今天）；至今共发布 753 个版本，其中过去 12 个月发布了 753 个；首次发布于 2026/03/13。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

