文档

项目 CLI 命令

创建、选择、重命名、移动和导出项目,登录和退出,邀请他人,读取套餐上限和广告金额,并运行 doctor。

这里的每个命令都按 CLI 参考所述运行:全局标志、JSON 输出、退出代码、修订和重试。

项目和组织生命周期

当前项目是最后使用的项目。每个 JSON 信封包含组织和项目上下文;人工输出同时命名两者。身份凭证受所选项目成员资格限制。重试状态按项目分开。

project list
project token --projects IDS
project use ID
project create NAME [--organization-id ID | --organization NAME]
project moves
project move --organization-id ID
project transfer-owner --user-id ID
project deletion-preview
project delete --name NAME --revision N --yes
organization list
organization rename ID NAME
project export DIR [--no-media] [--since YYYY-MM-DD]
agent disconnect --yes [--allow-lockout]
agent revoke-identity --yes

project list 验证可访问的成员资格。project token --projects IDS 将此登录令牌覆盖的项目替换为 1 到 64 个已同意的项目 ID,以逗号或空格分隔。project use 选择一个。创建时名称在其组织内唯一,默认当前项目组织,再默认你管理的组织;无名称时,持有所有者验证邮箱域的组织优先。负责人成为所有者。每个套餐限制组织可持有的项目数;每人有一个免费 Standard 组织,第二个需 Plus、Premium 或 Enterprise。无当前项目且无组织名称时,服务器以相同方式放置项目。--organization NAME 仅为无免费组织的人员启动新组织;否则拒绝创建并返回 free_organization_limit,其中详细说明使用的组织。注册受速率限制管理。

所有者可以移动到 project moves 返回的目标,或转让所有权给现有的已验证成员。移动携带屏幕;目标组织若已拥有其套餐允许数量的项目,则会以 project_limit_reached 拒绝。删除使用其预览中的确切当前名称和正修订版本。要求无非归档屏幕,无自身套餐,且无活跃广告。只有项目的所有者或其组织的管理员可以删除它;智能体代其负责人删除,或仅在无人接受其注册时单独删除自己注册的项目。会发送邮件给成员并保留墓碑记录。

组织名称可以重复;重命名您管理的组织时请使用明确的 ID。组织有指定的管理员和归属成员;管理员从仪表板用电子邮件邀请其他管理员和成员。organization list 标出 free 和 plan_required 组织,报告 new_organization_allowed,并在组织有资料库项目时于 library_project_id 中给出其名称。它的项目列表不授予对项目内容的访问权。由组织付费:它的套餐、存储和智能体请求上限由其项目共用。

login --project ID 针对同一身份请求该项目。只有明确批准此请求,才会授予成员资格。agent disconnect --yes 撤销一个成员资格(--allow-lockout 还允许撤销该项目的最后一个智能体);agent revoke-identity --yes 单独撤销该身份及其所有成员资格。响应不明确时,会保留本地凭据和重试状态以便后续协调。

广告报告保留事件保留期之外的结算事实。请阅读其覆盖元数据:缺失的历史播放或未知的批准时长均为未知,绝非零。报告可能具有完整的财务总计但播放结果历史不完整。

项目、邀请和诊断

项目命令包括列出成员、选择项目、创建项目,以及管理项目名称、所有者、迁移和删除。邀请可将人员加入项目或广告网络。

project show#

读取项目记录。

project show

无参数。

screenrig project show

project rename#

设置人们在仪表板项目切换器中看到的名称。

project rename NAME

project token#

替换此登录令牌所覆盖的项目。

project token --projects IDS
参数类型必填默认备注
--projects IDSstring是无1 到 64 个不重复的 prj_ 项目 ID,以逗号或空格分隔,每个都是此身份已同意的项目。
screenrig project token --projects prj_01EXAMPLEPROJECT0000,prj_01EXAMPLEOTHER000000

替换整个子集;单独的 project list 不授予任何访问权限。响应丢失时,会保留轮换请求 ID,用于相同的重试。

project capabilities#

读取项目计划、独立的 screens 和 advertiser 功能标志及有效能力集。路由拒绝优先于过时的能力读取。

project capabilities

project uptime#

读取项目在 UTC 天数上的每日屏幕可用性。

project uptime [--day-from YYYY-MM-DD] [--day-to YYYY-MM-DD] [--format json|csv|xlsx|pdf] [--output FILE]
参数类型必填默认备注
--day-from YYYY-MM-DDstring否提前 29 天 --day-to首个 UTC 天(含)。
--day-to YYYY-MM-DDstring否今天最后的UTC日,含当日。最多为--day-from后366天。
--format FORMATstring否jsonjson 是命令的应答。csv、xlsx 或 pdf 会把所有行写入 --output,并返回该文件的 path、bytes、sha256、content_type 和 format。
--output FILE路径否./project-uptime.FORMAT用于 csv、xlsx 或 pdf 的文件:必须是文件路径,不能是目录,也不能是 -。已有的文件会被替换。不能与 json 一起使用。
screenrig project uptime
screenrig project uptime --day-from 2026-09-01 --day-to 2026-09-30

范围和默认值与 screen uptime 相同。data.items 按 UTC 天列出一行,最旧在前:online_s 和 offline_s 汇总当天有记录状态的屏幕,availability、coverage(这些屏幕当天有记录状态的时间份额)和 screens(有记录状态的屏幕数量)。当天行覆盖已结束的区间;screen list 显示当前在线人员。

project health-trend#

按 UTC 小时读取机群健康状况:报告的屏幕、热点、显示器断开、崩溃。

project health-trend [--from TIME] [--to TIME] [--format json|csv|xlsx|pdf] [--output FILE]
参数类型必填默认备注
--from TIMEstring否提前 24 小时 --to小时的包含起点:带秒和偏移(归一化为 UTC)的 RFC 3339 时间点,now,或类似 7d、12h 或 30m 的时长。
--to TIMEstring否现在独占结束,形式相同。最多在 --from 后93天内。
--format FORMATstring否jsonjson 是命令的应答。csv、xlsx 或 pdf 会把所有行写入 --output,并返回该文件的 path、bytes、sha256、content_type 和 format。
--output FILE路径否./health-trend.FORMAT用于 csv、xlsx 或 pdf 的文件:必须是文件路径,不能是目录,也不能是 -。已有的文件会被替换。不能与 json 一起使用。
screenrig project health-trend
screenrig project health-trend --from 7d

data.items 按 UTC 小时列出车队健康状况:hour、screens_reporting、hot(峰值温度达到或超过 80 °C)、display_disconnected 和 crashing(24 小时内 3 次或以上崩溃)。CLI 跟踪 next_cursor 至结束,并每小时响应 next_cursor null。小时报告最多延迟约 5 分钟。

project export#

将此项目的数据以开放格式写入目录。

project export <DIR> [--no-media] [--since YYYY-MM-DD]
参数类型必填默认备注
<DIR>路径是无要写入的目录。必要时会创建,重新运行会继续并刷新它。
--no-mediaboolean否关闭跳过原始媒体文件;清单仍会列出它们及其哈希值。
--since YYYY-MM-DDstring否最早回溯至套餐保留数据的时间播放、正常运行时间和回放 CSV 以及事件日志的起始 UTC 日期。
screenrig project export ./export
screenrig project export ./export --no-media --since 2026-01-01

DIR 获取以下内容的 JSON:项目、屏幕、屏幕文件夹、标签、各屏幕的排程、含所有修订的播放列表、活动、直接广告活动、卡片及其数据、数据源(绝不含其凭据)、通知、webhook(不含签名密钥和接收端 URL)、静音、应用元数据、触发器和报告订阅;media/files 中的原始媒体文件,其中 media/manifest.json 记录每个文件的 SHA-256;data/ 中的播放、回放、正常运行时间和警报 CSV;以及 log/events.jsonl 中的事件日志。export.json 最后写入,列出每个文件及其大小和 SHA-256,以及各部分的结果(ok、skipped 或 failed)。重新运行会保留完整的媒体文件,并继续未完成的文件。凭据无法读取的部分为 skipped;警告 export_section_failed 表示副本不完整,请再次运行同一命令。应用文件会报告为已省略,带有 complete: false 和警告 export_application_content_omitted,使用 --no-media 时也一样:请保留原始应用归档以便恢复。每个请求都是计费的 API 请求,媒体下载属于出站流量。

invitations#

创建、列出或撤销项目成员、上传者和广告买家邀请。

invitations create (--email ADDRESS[,ADDRESS] | --link) [--kind member|uploader|ad-buyer]
    [--screen-id IDS] [--screen-folder-id IDS] [--slot-id IDS] [--policy trusted|review_required]
    [--folder-id IDS] [--playlist-id IDS] [--access propose|manage]
invitations list [--kind member|ad-buyer] [--status STATUS]
invitations revoke ID

--kind 默认为 member。电子邮件发送为默认方式,七天后过期。--email 支持逗号分隔的收件人,每次最多五十个。--link 仅限成员,不指定收件人,只返回一次邀请链接(有效期 24 小时),用于直接转交给目标对象。请勿将该链接写入日志、备注或共享记录。列表操作不会返回该链接。每个组织最多可有 50 个未处理的邀请。

广告买家仅使用电子邮件,需要拥有屏幕或广告位权限(或两者)。--screen-id 和 --slot-id 接受逗号分隔的 ID;--policy 选择 trusted 或 review_required。状态筛选器包括 queued、sent、issued、accepted、revoked、expired 和 failed。

--kind uploader 邀请一位仅在 --folder-id(至少一个)指定的媒体文件夹和 --playlist-id 指定的播放列表中工作的人员:他们可以向这些文件夹上传,并在这些播放列表中添加、替换和移除页面,仅此而已。他们的更改需等待审核,除非使用 --access manage;该选项只有能批准审核的人才可授予。带有 --screen-folder-id(每个文件夹包含其内的所有文件夹)或 --screen-id 的 --kind member 邀请,会把接受邀请的人限定在这些屏幕上。--folder-id、--playlist-id 和 --access 需要 --kind uploader,--slot-id 和 --policy 需要 --kind ad-buyer。详见 身份验证。

screenrig invitations create --email teammate@example.com
screenrig invitations create --kind ad-buyer --email buyer@example.com --screen-id scr_LOBBY --policy review_required

智能体不接受邀请。被邀请者打开邮件,登录或创建通行密钥,并在控制台接受。链接注册先验证其邮箱。撤销已接受的邀请不会取消成员身份;请使用买家成员控制撤销广告访问权限。

agent status#

报告此安装是否持有可用凭证。

agent status

无参数。

screenrig agent status

只读。永不更改本地或服务器状态,且无任何费用。结果包含会话的 access、其 effective_access,以及当项目的审核设置或无审批权限的成员将其限制在较低级别时的 access_limited_by(project 或 person)。当项目将此智能体限制在某些屏幕文件夹和屏幕时,screen_scope 会列出它们(folder_ids,每个都包含其内的所有文件夹,以及 screen_ids),person_screen_scope 则是该智能体负责人的范围;智能体只对两者都允许的屏幕执行操作,对整个项目的智能体这两项均不出现。超出范围时,命令返回 outside_screen_scope(退出码 3)。新的项目备注或到期需要复查的备注会添加警告 notes_waiting。

agent disconnect#

撤销此智能体在当前项目中的成员资格。

agent disconnect --yes [--allow-lockout]
参数类型必填默认备注
--yesboolean是关闭确认撤销。未确认则不会发送任何内容。
--allow-lockoutboolean否关闭允许断开项目的最后一个智能体。没有它,服务器会以 agent_lockout_risk 拒绝。
screenrig agent disconnect --yes

仅撤销当前项目的成员资格:身份、其他成员资格、项目及其屏幕均保留。响应不明确时,本地凭据和重试状态会保留,因此重新运行是安全的。

agent revoke-identity#

撤销此身份及其所有项目成员资格。

agent revoke-identity --yes
参数类型必填默认备注
--yesboolean是关闭确认对所有项目的撤销。
screenrig agent revoke-identity --yes

确认撤销后,会清除每个已缓存项目的本地凭据和待处理工作。模糊失败会保留它们。

login#

在控制台中获得某人批准后,或以服务客户端身份,将此安装登录到现有账户。

login [--project ID] [--access read|propose|manage] [--name NAME] [--no-wait] [--resume ID]
login --client-id ID (--client-key-file PATH | --client-secret-file PATH)
参数类型必填默认备注
--project IDstring否无建议用户批准的 prj_ 项目。
--access LEVELstring否管理read,propose 或 manage。该人员做出最终选择。
--name NAMEstring否无为此安装命名,最多 80 个字符。
--no-waitboolean否关闭返回 status: pending,包含地址、代码和一个 login_ 句柄。
--resume IDstring否无等待 --no-wait 启动的待处理登录。
--client-id IDstring否无将此配置以服务客户端(scl_…)身份登录,而非以人员身份,无需批准。不能与 --no-wait、--project、--access 或 --name 一起使用。
--client-key-file PATH路径配合 --client-id无客户端的私钥,JWK 或 PEM。私钥文件和密钥文件恰好指定其一。
--client-secret-file PATH路径配合 --client-id无存放客户端密钥的文件。
screenrig login --access read
screenrig --config ci.json login --client-id scl_01EXAMPLECLIENT0000 --client-key-file ci-key.pem

打印控制台地址和一个八字母代码到标准错误,然后等待最长 24 小时。人员检查代码是否匹配,并按一次连接,最近一小时内登录控制台后无第二次通行密钥提示。信封报告 status: signed_in、项目、组织和 access。在已登录安装上再次运行会添加项目或将只读或提议项目提升为管理。拒绝为 login_denied,过期为 login_expired。

服务客户端的配置必须是其专属文件:之后每个带有该 --config 的命令都以该客户端身份登录,每次读取私钥文件或密钥文件,并将令牌保存在内存中。

logout#

结束此安装的登录并移除其令牌。

logout

无参数。

screenrig logout

撤销服务器上的登录,然后移除存储的令牌并报告 status: signed_out。在服务客户端的配置中,它会移除已保存的客户端,并保留其私钥文件或密钥文件。可能未到达服务器的失败会保留它们,因此重新运行是安全的。运行 screenrig login 重新登录。

dashboard#

打开普通控制台 URL。此命令不生成登录链接、不创建会话,也不需要智能体凭证。

dashboard [open]
screenrig dashboard

控制台在登录后显示该人的项目。浏览器项目选择不更改绑定到智能体的项目。

dashboard reset-sign-in#

请求无代理凭证的登录重置邮件。

dashboard reset-sign-in --email ADDRESS

确认不会透露该电子邮件是否有登录。邮件中的重置一小时后过期;用户创建新通行密钥。完成后替换登录凭据并撤销其他会话。当项目的所有权仍因注册而处于待定状态时,使用原始注册地址执行 --email 还会发送一封有效期七天的新注册邀请邮件;用户打开邀请并使用其登录接受,即可认领所有权。

doctor#

检查此安装并按名称报告每次检查。

doctor [--repair-config]
参数类型必填默认备注
--repair-configboolean否关闭收紧对现有配置文件的权限,该文件对组或其他用户可读。
screenrig doctor

data.checks 命名每个检查及其状态(pass、warn 或 fail):Node 运行时、解析的配置路径及其权限、存储的凭据和登录的结束时间、控制平面来源及其服务路由、公布的 feedback 能力,以及可选的媒体工具链(ffmpeg、ffprobe、encoder_libx264、encoder_libx265、encoder_libwebp、cwebp、filter_hdr_tonemap)。

任何失败的检查都会使 doctor 以非零状态退出,而 warn 不会,因此在判定安装不健康之前,请先查看各个名称。缺失的媒体工具链只影响转换媒体的命令:media upload、media upload-batch、media replace 和 playlist init。

version#

打印捆绑的 CLI 版本及其协议适配器。

version

无参数。

screenrig version

会话中先运行此命令。成功的信封证明启动器已解析捆绑的 CLI。--version 和 -V 可在命令行任何位置执行相同操作。

计费

项目的套餐上限和广告金额。请求、存储、播放以及项目所做的其他一切都不收费;这里的金额仅涉及广告。三条命令都免费,读取 /api/billing 不计入每小时的智能体请求上限。

billing usage#

读取套餐的存储和智能体请求上限。

billing usage

无参数。

screenrig billing usage

data.stored_bytes 是已用存储,data.allowance.storage_bytes 是套餐的存储上限;超出上限的上传会以 quota_exceeded 被拒绝。data.allowance.requests_per_hour 是每小时智能体请求上限(面向人的输出中为 agent_requests_per_hour)。本小时剩余的请求数在每个被计数响应的 RateLimit 标头中。

billing balance#

以美元读取广告金额:剩余、已预留、可用和可支付的收入。

billing balance

无参数。

screenrig billing balance

广告主通过银行卡或 x402 机器支付来付款,价格和收入以美元计,付款从 2027 年 1 月 1 日开始。面向人的输出显示美元;JSON 保留十进制 mcr 成员,10,000,000 mcr 为 US$1。

billing statement#

读取已入账的账目条目。

billing statement [--cursor CURSOR] [--limit COUNT]
参数类型必填默认备注
--cursor CURSORstring否第一页上一份账单明细的 next_cursor。
--limit COUNTinteger否服务器默认值返回的最大条目数。
screenrig billing statement --limit 20

条目是已入账的账本行,以美元计,顺序稳定。预留显示为冻结,不是已入账的收入或支出,更正会链接到原始条目而不是改写它。广告扣费对买方可见;卖方可看到总额、服务费和净额。

其他命令组