@displaydev/cli

中文文档
0.52.0发布于 2026/11/13ES Module近 30 天下载 2381

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

中文使用文档
文档目录12 节
  1. 空格文件和文件夹
  2. 永久删除回收站中的项目
  3. 安装
  4. 认证
  5. 代理本地登录
  6. 使用量
  7. 复制默认和目的地
  8. 发布旗帜
  9. 测试
  10. MCP 磁共振
  11. 检查已存在的文物
  12. 发布此软件包

@ displaydev/ cli (英语)

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

空格文件和文件夹

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

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, 与我共享, 空间目录, 或回收站中使用 .

Ưμ㼯Adsp 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。创建者是原始创建人,独立于所有者,由共享,或随后编辑。 更改时无需光标即可重新启动 。 空间目录,回收站和固定顺序搜索不接受这些选项.

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 可以写入一个明确的输出路径。 上传和下载证书是秘密. 使它们远离共享日志和最后答复。 仅公用链接访问 不授权创建或编辑文件.

见 空格和文件 编辑 CLI 参考 任务指导.

安装

npm install -g @displaydev/cli

认证

# 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 [email protected] (TTY) (中文(简体) )通知检察官办公室 通知终端的密码.
dsp login --email [email protected] (非TTY语)派出检察官办公室和0号出口 人员在自己的终端完成核查.
dsp login --email [email protected] --code 123456验证代码,坚持符号,出站.

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

dsp login --email [email protected] --json
# → {"status":"otp_sent","email":"[email protected]",
#    "next":{"command":"dsp login","args":["--email","[email protected]","--code","<code>"]}}

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

dsp login --email [email protected] --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 技能安装 :

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

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

使用量

# 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 [email protected] --share [email protected]

# 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 [email protected]
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 [email protected]

# 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 它的茎 global.fetch 和一个新鲜的JSON Response 每个呼叫并返回 vi.fn() 所以测试 还可以检查 fetchMock.mock.calls[...]倒向原始状态 vi.stubGlobal('fetch', vi.fn().mockRejectedValue(...)) 只为网络.. 失败案例。 具有代表性的例子: cli/src/api-client.spec.ts 和一体化 窃听断言 cli/src/mcp-mode-selection.spec.ts。 。 。 .
  • 手卷 createMockApiClient() 用于验证的 MCP 工具规格 从 MCP 工具处理器到右边的参数路由 ApiClient 方法. 循环中根本没有 HTTP; 假是一个普通对象 vi.fn()编号. 具有代表性的例子: cli/src/mcp-server.spec.ts 财务报告和审定财务报表 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, (中文(简体) ), cli/src/cli-subcommands.spec.ts, (中文(简体) ), cli/src/login-otp.spec.ts, (中文(简体) ), cli/src/login-otp-send.spec.ts。 。 。 .

MCP 磁共振

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

{
  "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 作为 Markdowndsp 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 共发布 65 个版本,首次发布于 2026/04/13;过去 12 个月发布了 65 个版本。

版本发布日期距今
0.52.0latest2026/11/13今天
0.51.02026/11/103 天前
0.50.02026/11/085 天前
0.49.02026/11/067 天前
0.48.02026/11/067 天前
0.47.02026/11/067 天前

关于 @displaydev/cli 的常见问题

@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 和提交记录判断。