--- title: 工作空间 description: 列出你的工作空间、切换当前工作空间,并了解 difyctl 如何决定命令使用哪个工作空间 --- > 本文档由 AI 自动翻译。如有任何不准确之处,请参考 [英文原版](/en/cli/reference/workspaces)。 `difyctl` 一次只在一个工作空间中工作,该工作空间来自标志、环境变量或你存储的默认值。它们的优先级顺序参见 [difyctl 如何选择工作空间](#difyctl-如何选择工作空间)。 - [`difyctl get workspace`](#列出工作空间) 列出你所属的工作空间 - [`use workspace`](#切换工作空间-cloud) 切换当前工作空间 Cloud 两者都接受 [全局标志](/zh/cli/reference/global-flags)。 ## 列出工作空间 ```text difyctl get workspace [flags] ``` ### 标志 | 标志 | 类型 | 默认值 | 说明 | |:---|:---|:---|:---| | `-o ` | string | none | 输出格式:`json`、`yaml`、`name` 或 `wide`。省略此标志则使用默认表格。 | ### 示例 查看你的工作空间,以及当前激活的是哪一个: ```bash difyctl get workspace ``` 获取完整列表的 JSON 格式,便于脚本处理: ```bash difyctl get workspace -o json ``` 仅打印工作空间 ID,每行一个: ```bash difyctl get workspace -o name ``` ### 输出 | 格式 | stdout 输出内容 | |:---|:---| | default | 对齐的表格。`CURRENT` 列以 `*` 标记当前激活的工作空间,`ROLE` 列为你在每个工作空间中的角色。 | | `-o wide` | 相同的列。工作空间没有仅在 wide 格式下显示的列。 | | `-o json`、`-o yaml` | 一个 `workspaces` 数组,每个条目包含 `id`、`name`、`role`、`status` 和 `current`。 | | `-o name` | 工作空间 ID,每行一个。 | 默认表格: ```text ID NAME ROLE STATUS CURRENT b4e8d2a6-7c3f-4a1e-9d5b-8f2c6e0a4d7b Acme Team owner normal * 9c2f4e6a-8b1d-4f3e-a5c7-0d9e2b4f6a8c Marketing normal normal ``` `-o json`: ```json { "workspaces": [ { "id": "b4e8d2a6-7c3f-4a1e-9d5b-8f2c6e0a4d7b", "name": "Acme Team", "role": "owner", "status": "normal", "current": true }, { "id": "9c2f4e6a-8b1d-4f3e-a5c7-0d9e2b4f6a8c", "name": "Marketing", "role": "normal", "status": "normal", "current": false } ] } ``` ### 退出码 | 退出码 | 含义 | |:---|:---| | `0` | 成功 | | `1` | 网络或服务器错误 | | `2` | 用法错误,例如不支持的 `-o` 值 | | `4` | 认证失败 | | `7` | 触发限流(HTTP 429) | 完整方案参见 [输出格式与退出码](/zh/cli/reference/output-formats-and-exit-codes)。 ## 切换工作空间 Cloud ```text difyctl use workspace [workspace-id] [flags] ``` `use workspace` 先在服务器上切换你的当前工作空间,然后更新 `hosts.yml` 中存储的默认值。如果切换失败(工作空间不存在,或你不是其成员),本地状态保持不变。 日常调用方式参见常见任务中的 [切换工作空间](/zh/cli/common-tasks#切换工作空间-cloud)。 ### 参数 - `workspace-id`:要切换到的工作空间,取自 [`get workspace`](#列出工作空间)。在终端中可省略,以从你的工作空间中选择,当前工作空间以 `*` 标记。在非交互式会话(脚本、CI、管道)中必须提供。 ### 标志 仅 [全局标志](/zh/cli/reference/global-flags)。 ### 示例 从你的工作空间中交互式选择: ```bash difyctl use workspace ``` 或自行查找目标,然后按 ID 切换(适用于脚本的形式): ```bash difyctl get workspace difyctl use workspace 9c2f4e6a-8b1d-4f3e-a5c7-0d9e2b4f6a8c ``` 如果只是针对另一个工作空间执行单条命令,可跳过切换,改为传入 `--workspace`: ```bash difyctl get app --workspace 9c2f4e6a-8b1d-4f3e-a5c7-0d9e2b4f6a8c ``` ### 输出 切换成功后,stdout 会确认新的当前工作空间: ```text ✓ Switched to Marketing (9c2f4e6a-8b1d-4f3e-a5c7-0d9e2b4f6a8c) ``` 切换会持久化:之后每条命令都针对新的工作空间执行,直到你再次切换。 ### 退出码 | 退出码 | 含义 | |:---|:---| | `0` | 成功 | | `1` | 工作空间未找到,或其他服务器错误 | | `2` | 用法错误,例如在没有终端可供选择时省略了 `workspace-id` | | `4` | 认证失败,或 `use workspace` 打开选择器时没有可用的工作空间 | | `7` | 触发限流(HTTP 429) | 完整方案参见 [输出格式与退出码](/zh/cli/reference/output-formats-and-exit-codes)。 ## difyctl 如何选择工作空间 应用只属于一个工作空间,因此每条针对工作空间的命令都需要一个工作空间来执行。`difyctl` 按以下顺序解析,取首个找到的值: 1. 命令本身的 `--workspace ` 标志,仅对该次调用生效。 2. [`DIFY_WORKSPACE_ID`](/zh/cli/reference/environment-variables) 环境变量。 3. 你存储的默认值,登录时写入配置目录下的 `hosts.yml`,并由 [`use workspace`](#切换工作空间-cloud) 更新。 如果三者都未指定工作空间,命令以退出码 `2` 失败。 工作空间 ID 是 UUID,因此请使用 [`get workspace`](#列出工作空间) 返回的 ID,而非工作空间名称。非 UUID 的值会作为用法错误失败。