# @displaydev/cli 中文文档

规范地址：https://npmcn.com/package/%40displaydev/cli/

版本：0\.52\.0
npm 元数据更新时间：2026-11-13T13:29:03.324Z
中文译文更新时间：2026-11-14T03:39:18.607Z
软件包许可：未声明

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

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

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

- 包体积（解压后）：965 kB，59 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- 运行依赖：5 个
- 首次发布：2026-04-12T21:54:54.406Z
- 最新版本发布：2026-11-13T13:29:03.094Z
- 近 30 天下载量：2381（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：65（近 12 个月 65 个）

## 中文简介

CLI 用于 [显示。dev](https://display.dev/) ——发布HTML和Markdown与公共,公司,私人,或被邀请人的访问.

## 安装

```sh
npm install @displaydev/cli
```

也可以使用：`pnpm add @displaydev/cli`、`yarn add @displaydev/cli`、`bun add @displaydev/cli`

## README

# @ displaydev/ cli (英语)

CLI 用于 [显示。dev](https://display.dev/) ——发布HTML和Markdown与公共,公司,私人,或被邀请人的访问.

## 空格文件和文件夹

创建、阅读、更新和组织文件和文件夹。 运行 `dsp --help` 或一个 命令组 `--help` 对于它的选项.

```bash
dsp space list
dsp space list-contents <spaceId>
dsp file create --parent-id <folderId> --preview
dsp file create <file> --parent-id <folderId> --content-type text/markdown --idempotency-key <requestKey>
dsp file get <fileId>
dsp file read <fileId>
dsp file search <fileId> <query>
dsp file edit <fileId> --old "old text" --new "new text" --base-revision <revisionId> --idempotency-key <requestKey>
dsp file export <fileId> --output <outputPath>
dsp file history <fileId>
```

接受空格和文件夹内容 `--sort name|modified|format|owner` 财务报告和审定财务报表 `--dir asc|desc`。 。 。 . `format` 排序显示的类型标签,包括任意文件格式的标签; `--type` 仍然是单独的过滤器。 只有“名称”将文件夹放在第一个方向。 相同类型或所有者值按选定方向跟随名称,缺失的拥有者停留在最后.

空间和文件夹子列表也支持 `--sort createdBy` 用于显示的创建者名称。 使用 `--dir asc` 或者说 `--dir desc`。平等的创建者名称沿着此方向。 未知的创造者停留在最后 。 此选项无法在 Home, 与我共享, 空间目录, 或回收站中使用 .

Ưμ㼯A`dsp file list --view home`与我同在`--view shared-with-me`)并接受 `format` 财务报告和审定财务报表 `owner`。 。 。 . `dsp file list` 只返回文件。 使用 `dsp folder find --view home` 用于主文件夹,或 `--view shared-with-me` 用于共享文件夹。 Home 在所有类型的文件之前显示文件夹 。 和我共享文件夹和文件 空间目录、回收站和固定顺序名称搜索保留了现有的排序选择。 以相同的查询将每个光标递回; 如果在项目更改后被拒绝或无法访问, 则无需光标即可重新启动 .

添加 `--created-by <userId>` 到空格/文件夹内容或家/与我共享列表。 使用 `--include-creators` 返回所有匹配页面的可访问创建者选择,然后选择返回 `userId`。创建者是原始创建人,独立于所有者,由共享,或随后编辑。 更改时无需光标即可重新启动 。 空间目录,回收站和固定顺序搜索不接受这些选项.

```bash
dsp folder list <folderId> --include-creators
dsp folder list <folderId> --created-by <userId>
dsp file list --view home --created-by <userId>
```

在创建前预览目的地和观众. 录取 `--parent-id` 选择 My Space 只用于明确支持它的命令 。 使用 来源的实际媒体类型. 请求密钥使用 16 - 128 个字母, 数字, 周期, 下划线、平板或连字符。 在一个 反应不确定。 文件更新保留了明确的基础修订ID. 调和平分的修改,而不是沉默地取而代之.

显示将空间请求结果保留24小时。 在该窗口之后,即使原始请求密钥也可以作为新的操作执行. 在重试更古老的不确定结果前读取当前状态 。 在重试前调和结果 。 不要仅仅依赖请求密钥来防止重复.

Spaces命令使用文件,文件夹,Space,以及修订版ID. 准确复制每个身份 不要通过 要编号的兼容性选择器的ID。 指挥团体包括:

| 组 | 任务 |
| --- | --- |
| `dsp space` | 浏览空间,检查当前设置,创建/管理直接成员,重命名,删除/保存,检查或永久删除回收站中的项目 |
| `dsp folder` | 浏览、创建、重命名、复制、移动、查找、检查/更改访问、请求访问和回收站 |
| `dsp file` | 创建/读取/搜索/编辑/重置/下载、重命名、复制、移动、检查历史、保存/删除符合条件的修订、检查/更改访问和回收站/重置 |
| `dsp group` | 创建组,管理成员,并指派组管理员 |
| `dsp member` | 预览管理器覆盖,并解除一个成员的明确确认功能 |
| `dsp access-request` | 核准或驳回现有共享权限存储的请求 |
| `dsp comment` 编号 : `dsp thread` | 本地讨论、答复、呼喊、编辑、删除、解决和重新开放 |
| `dsp watch` 编号 : `dsp unwatch` | 个人讨论订阅 `--file <id>` |
| `dsp search` | 跨文件索引搜索空间 。 遗产组织保留名称和确切来源模式. |

### 永久删除回收站中的项目

使用 `dsp space list-trash <spaceId>` 找到物品的ID。 预览明确 间距 `dsp space delete-trash <spaceId> <itemId>… --preview`启用 `dsp space delete-trash <spaceId> --all --preview` 审查所有符合条件的回收站 在那个空间。 审查选择、排除和存储,在 确认.

重复相同的空格和选择 `--confirm`, (中文(简体) ), `--if-match <etag>`,以及 `--idempotency-key <requestKey>`引用这个论点,让ETag自己的 双引出到CLI. 如果反应不确定 保持同样的空间, 选择、ETag和密钥。 如果预览被更改或恢复控件被屏蔽 请求中,在再次尝试前获取新的预览 。 我的空间拥有者和共享 空间根管理器可以使用此操作,使用个人证书和 所需范围.

JSON 空间命令的结果 转到 stdout 。 诊断和继续指示都去 {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}请说. `file export` 流精确字节, 除非选择输出路径 . 需要覆盖本地输出 `--overwrite`。失败的命令返回非零退出代码. 编号艺术退出码表并不定义每个空间出错. 保持光标带有其原始查询和过滤器.

默认的个人密钥跟随其所有者当前对空间的访问. 有效的已测范围的个人密钥也在Spaces工作. 它们保留其范围限制,成员公布上限,连同所有者目前的太空访问. 移徙保留了关键和秘密。 OAuth保持已核准的范围限制.

组织服务密钥需要它们自己获得进入合格共享空间的许可. 他们不能继承创造者的权利 仅靠组织作用就无私 内容已读取。 不切换身份、使用兼容命令或拓宽 拒绝后的观众.

本地 MCP 接受本地文件路径 。 托管的 MCP 接受内线源或相机 上传身份证. 托管 `export_file` 返回下载描述符,而本地 MCP 可以写入一个明确的输出路径。 上传和下载证书是秘密. 使它们远离共享日志和最后答复。 仅公用链接访问 不授权创建或编辑文件.

见 [空格和文件](https://display.dev/docs/spaces) 编辑 [CLI 参考](https://display.dev/docs/cli-reference) 任务指导.

## 安装

```bash
npm install -g @displaydev/cli
```

## 认证

```bash
# Interactive login via email OTP
dsp login

# Or set an API key (from the dashboard)
export DISPLAYDEV_API_KEY=sk_live_...
```

运行 `dsp whoami` 检查您的证书用途的账户和组织. 对于脚本, `dsp whoami --json` 指纹 `user`, (中文(简体) ), `organization`, (中文(简体) ), `membership`, (中文(简体) ), 财务报告和审定财务报表 `keyType`返回组织密钥 `null` 页:1 `user` 财务报告和审定财务报表 `membership`。 。 。 .

### 代理本地登录

代理人不得索取、阅读或转发登录密码或检察官办公室。 用户运行 `dsp login` 在他们自己的终端,并完成那里流出的即时或浏览器. 毒剂随后再用CLI所保存的登录. 它不能检查证书 存储,在聊天中请求符号,或开始登录,仅用于绕过许可拒绝. 下面的引用实例记录了一个人或一个人的CLI接口 明确控制一体化。 他们没有指示代理人收集检察官办公室.

命令适应其环境:

| 召集 | 行为 |
| --- | --- |
| `dsp login --email you@acme.com` **(TTY) (中文(简体) )** | 通知检察官办公室 通知终端的密码. |
| `dsp login --email you@acme.com` **(非TTY语)** | 派出检察官办公室和0号出口 人员在自己的终端完成核查. |
| `dsp login --email you@acme.com --code 123456` | 验证代码,坚持符号,出站. |

对于不依赖道具解析的结构化输出:

```bash
dsp login --email you@acme.com --json
# → {"status":"otp_sent","email":"you@acme.com",
#    "next":{"command":"dsp login","args":["--email","you@acme.com","--code","<code>"]}}

dsp login --email you@acme.com --code 123456 --json
# → {"status":"authenticated","method":"otp","email":"you@acme.com",
#    "suggestedActions":[{"type":"install_skill","command":"npx",
#      "args":["skills","add","display-dev/skill","--skill","display-dev"],
#      "requiresApproval":true}]}

dsp login --email you@sso-corp.com --json
# → {"status":"authenticated","method":"sso",
#    "suggestedActions":[{"type":"install_skill","command":"npx",
#      "args":["skills","add","display-dev/skill","--skill","display-dev"],
#      "requiresApproval":true}]}
```

当提交电子邮件的组织自动选择 SSO 需要它来.

登录失败使用 `{"status":"error","error":"<code>"}`。稳定错误 代码是 `email_required`, (中文(简体) ), `api_key_required`, (中文(简体) ), `input_failed`, (中文(简体) ), `invalid_api_key`, (中文(简体) ), `sso_required`, (中文(简体) ), `disposable_email`, (中文(简体) ), `send_failed`, (中文(简体) ), `invalid_or_expired_code`, (中文(简体) ), `access_denied`, (中文(简体) ), `device_code_expired`, (中文(简体) ), `authentication_failed`,以及 `configuration_failed`。 。 。 .

检察官办公室为单一用途,10分钟后期满。 人类控制 集成可以使用相容性 `--code` 表格,将检察官办公室简略列出 正在进行中的辩论。 特工不得接收或转发. 结果 课程符号被坚持下来,并且只被CLI使用.

在OTP, SSO, 或 API- key 认证之后, CLI 建议可选 显示。 dev 技能安装 :

```bash
npx skills add display-dev/skill --skill display-dev
```

安装技能更改代理拥有的配置 。 一个特工必须得到 用户在运行命令前的批准。 登录从不运行安装器 .

## 使用量

```bash
# Publish a file. User-scoped credentials create a private artifact;
# org-scoped service keys create a company artifact. Publishes without a
# credential create a public artifact you can claim.
# The display name defaults to the filename without the extension.
dsp publish ./report.html

# Share a report with the organization
dsp publish ./report.html --company

# Override the display name
dsp publish ./report.html --name "Q1 Report"

# Publish as public (no login required to view)
dsp publish ./report.html --name "Q1 Report" --public

# Share with external recipients (repeatable)
dsp publish ./proposal.html --name "Q1 Proposal" \
  --share bob@partner.com --share alice@client.com

# Update an existing artifact from the version you edited
dsp publish ./report.html --id abc123 --base-version 5

# Change an existing artifact back to company auth
dsp publish ./report.html --id abc123 --base-version 5 --company

# Remove all guest shares from an existing artifact
dsp publish ./report.html --id abc123 --base-version 5 --clear-shares

# Browse and search artifacts
dsp list --author alice@acme.com
dsp search "quarterly"
dsp search "invoice total" --in abc123@5

# Read a bounded source range, pinned to a version
dsp read abc123@5 --offset 0 --limit 65536

# Replace one exact source span
dsp edit abc123 --base-version 5 --old "Q1" --new "Q2"

# Get artifact metadata, versions, outline, and open threads
dsp get-metadata abc123

# Make an independent copy from the current version
dsp make-copy abc123

# Within your organization, copy a retained version and invite a reviewer
dsp make-copy abc123@3 --name "Q1 plan" --visibility private --share reviewer@example.com

# Delete an artifact
dsp delete abc123 --confirm

# Start MCP server (for Claude Desktop / Claude Code)
dsp mcp
```

### 复制默认和目的地

`dsp make-copy <shortId>` 不需要搜索元数据 。 服务器使用当前 版本中, `Copy of <source name>`,源可见度,没有继承的收件人. 使用 `--visibility private` 为私人副本。 公共浏览器复制页面 最初选择私人。 JSON包括: `sourceVersion`,该版本已复制.

来自另一个组织的合格公共文物可以复制到每个 计划,只使用当前版本。 来源组织必须活跃 允许公共文物。 404表示缺少或没有来源/版本 不识别原因。 先确认目标组织. 被捆绑的回击保留着相同的操作密钥和请求. 无法重用密钥 与不同的输入或另一个目的地。 在未解决的中断之后, 在开始新的复制之前先检查一下该组织的文物.

### 发布旗帜

| 旗帜 | 效果 |
| --- | --- |
| `--name <name>` | 显示名称覆盖 。 可选的 – 默认为文件名, 而无需创建扩展名 。 更新后,将文物重命名为"活口". |
| `--id <shortId>` | 更新已有的文物( publishes a new 版本) . |
| `--base-version <n>` | 要求为 `--id`; 您编辑的当前版本 . |
| `--public` | 为公众设定能见度( 查看时不需要认证) . |
| `--company` | 将可见度设定为 Auth 公司 。 这是org-scoped服务密钥的默认值 . |
| `--visibility <level>` | 设置可见度到 `public`, (中文(简体) ), `company`,或 `private`。 。 。 . |
| `--share <email>` | 允许客人访问外部电子邮件( 可重复) . |
| `--share-with <emails>` | 允许客人访问一个以逗号分隔的电子邮件列表. |
| `--clear-shares` | 删除所有来宾股份 。 仅有效 `--id`。 。 。 . |
| `--theme <theme>` | Markdown 渲染主题 . |
| `--reload` | 新版本准备好后刷新打开的查看器标签 . |

可见和共享旗帜 **默认为“ 保持当前 ”** 更新: 省略 `--public`, (中文(简体) ), `--company`,以及 `--visibility` 保持可见度不变;省略 `--share`, (中文(简体) ), `--share-with`,以及 `--clear-shares` 留客名单不变. 仅使用其中之一 `--public`, (中文(简体) ), `--company`,或 `--visibility`组合 `--clear-shares` 与两个 `--share` 或者说 `--share-with`。 。 。 .

在创建上,省略能见度使用证书上下文:用户会话和用户拥有的密钥创建了私人文物;而组织范围服务密钥创建了Company文物. 使用用户扫描证书的 CI 任务应该通过 `--company` 当结果是为了组织.

对于更新模式,请先以 `dsp get-metadata <shortId>`启用 `dsp search <text> --in <shortId>` 财务报告和审定财务报表 `dsp read <shortId>` 用于限定的上下文,然后 `dsp edit` 一个精确的替换。 使用 `dsp export` 当您有意需要完整的本地文件时 `dsp publish --id` 用于全源替换。 如果文物在服务器上发生改变,则与当前版本对齐,再与该基准重试.

更新保留了为文物设定的格式. 使用一个 `.md` 备忘文件 工艺品和 `.html` hTML 文物的文件。 发布新文物时 在Markdown和HTML之间转换.

## 测试

CLI套装采用三种不同的取来策略,每套装入一个 层叠。 新贡献者选择一个匹配层 他们正在测试——增加第四个几乎总是是错误的.

-   **单位级获取假`stubFetchJson(...)`(中文(简体) )** - 用于锻炼 `ApiClient` 以及任何纯粹在流程中构成它的东西。 低级仪式, 完全控制响应,没有跨进程边界。 使用 `stubFetchJson(body, init?)` 助手从 [`cli/src/test-helpers.ts`](https://npmcn.com/package/%40displaydev/cli/src/test-helpers.ts) 它的茎 `global.fetch` 和一个新鲜的JSON `Response` 每个呼叫并返回 `vi.fn()` 所以测试 还可以检查 `fetchMock.mock.calls[...]`倒向原始状态 `vi.stubGlobal('fetch', vi.fn().mockRejectedValue(...))` 只为网络.. 失败案例。 具有代表性的例子: [`cli/src/api-client.spec.ts`](https://npmcn.com/package/%40displaydev/cli/src/api-client.spec.ts) 和一体化 窃听断言 [`cli/src/mcp-mode-selection.spec.ts`](https://npmcn.com/package/%40displaydev/cli/src/mcp-mode-selection.spec.ts)。 。 。 .
-   **手卷 `createMockApiClient()`** 用于验证的 MCP 工具规格 从 MCP 工具处理器到右边的参数路由 `ApiClient` 方法. 循环中根本没有 HTTP; 假是一个普通对象 `vi.fn()`编号. 具有代表性的例子: [`cli/src/mcp-server.spec.ts`](https://npmcn.com/package/%40displaydev/cli/src/mcp-server.spec.ts) 财务报告和审定财务报表 [`cli/src/mcp-publish-file-read.spec.ts`](https://npmcn.com/package/%40displaydev/cli/src/mcp-publish-file-read.spec.ts)。 。 。 .
-   **真实的本地主机 HTTP 固定( R)`createHttpFixture` + 键 `spawnCli`(中文(简体) )** 用于 `program.action` E2E规格,需要执行指挥官 argv 解析, stdout/stderr 拆分,出站代码,以及完整的HTTP回转. 驱动器 作为真正的儿童过程的CLI。 具有代表性的例子: [`cli/src/cli-mode-selection.spec.ts`](https://npmcn.com/package/%40displaydev/cli/src/cli-mode-selection.spec.ts), (中文(简体) ), [`cli/src/cli-subcommands.spec.ts`](https://npmcn.com/package/%40displaydev/cli/src/cli-subcommands.spec.ts), (中文(简体) ), [`cli/src/login-otp.spec.ts`](https://npmcn.com/package/%40displaydev/cli/src/login-otp.spec.ts), (中文(简体) ), [`cli/src/login-otp-send.spec.ts`](https://npmcn.com/package/%40displaydev/cli/src/login-otp-send.spec.ts)。 。 。 .

## MCP 磁共振

CLI作为MCP服务器在stdio上双打. 添加到您的 MCP 客户端配置 :

```json
{
  "mcpServers": {
    "display": {
      "command": "dsp",
      "args": ["mcp"],
      "env": {
        "DISPLAYDEV_API_KEY": "sk_live_..."
      }
    }
  }
}
```

## 检查已存在的文物

使用 `dsp`,而不是一个匿名的网络获取, 当检查一个文物URL。 平均 文物返回403 不显示.dev证书.

短ID是第一个连字符之前的路径段. 对于 `https://display.dsp.so/YQyXggrM-product-video-script`,这是 `YQyXggrM`。 。 。 .

| 需求 | 命令 |
| --- | --- |
| 上传的字节 | `dsp export <shortId>` |
| HTML 作为 Markdown | `dsp export <shortId> --format markdown` |
| 特定版本 | `dsp export <shortId>@<n>` |
| 来源上下文 | `dsp read <shortId>[@<n>] [--offset <bytes>] [--limit <bytes>]` |
| 元数据、版本、大纲和打开线程 | `dsp get-metadata <shortId>` |
| 浏览文物 | `dsp list` |
| 搜索文物名称 | `dsp search <query>` |
| 在一个来源内搜索 | `dsp search <query> --in <shortId>[@<n>]` |
| 精确部分编辑 | `dsp edit <shortId> --base-version <n> --old <text> --new <text>`; 使用 `--old-file` 编号 : `--new-file` 多行 UTF-8 输入 |
| 折旧相容性 | `dsp find [query]` (将迁移通知写为 stderr) |

只读命令是安全的检查。 诸如 `publish`, (中文(简体) ), `make-copy`, (中文(简体) ), `edit`, (中文(简体) ), `share`, (中文(简体) ), `rename`, (中文(简体) ), `delete`、标志突变、评论突变、线程 突变,并观看已公布的突变变化状态;仅在 用户请求更改. `delete` 需求 `--confirm`。 。 。 .

CLI 默认为 `https://api.display.dev`设置 `DISPLAYDEV_API_URL=http://api.display.test:3331` 明确用于当地工作.

## 发布此软件包

`Production Delivery` 评估每个 `master` 推动和呼叫 `publish-cli.yml` 只有在其规划者承认CLI时,才能作为可重复使用的儿童。 这个 儿童只在 `cli/package.json` 包含一个比 npm 更新的版本.

当用户可见的 CLI 行为改变时, 将版本更新为同一版本 变化。 套件为前 1. 0 :

-   为新功能或断开更改而增加小版本.
-   增加补丁版本用于后相兼容的补丁.
-   不使用 `1.0.0` 仅仅表示一个突破性的改变 独立的稳定承诺.

出版使用npm OIDC信任出版. 不添加一个 `NPM_TOKEN` 或者说 `--provenance`; 这个私人仓库没有sigstore出处. Npm 信任- publisher 条目必须绑定 `display-dev/display-dev` 页:1 调用工作流程文件名 `production-delivery.yml`,而不是可重复使用的孩子 文件名 。 在更改生产呼叫器前更新软件包设置 .

## 常见问题

### @displaydev/cli 是什么？

CLI 用于 显示。dev ——发布HTML和Markdown与公共,公司,私人,或被邀请人的访问\.

### 如何安装 @displaydev/cli？

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

### @displaydev/cli 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/displaydev\_\_cli 是否存在。

### @displaydev/cli 支持 ESM 还是 CommonJS？

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

### @displaydev/cli 可以商用吗？

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

### @displaydev/cli 的下载量有多少？

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

### @displaydev/cli 还在维护吗？

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

