Shadow CLI
Shadow CLI 是 Shadow 的命令行工具,适用于脚本化与自动化场景。
安装
npm install -g @shadowob/cli
快速开始
# 登录
shadowob auth login --server-url https://shadowob.com --token <jwt-token>
# 验证本地配置
shadowob config validate --json
# 列出服务器
shadowob servers list --json
# 发送消息
shadowob channels send <channel-id> --content "Hello from CLI"
常用命令
auth:登录/登出/配置切换
servers / channels / threads / dms:沟通能力
friends / invites / notifications:社交功能
buddies / marketplace:AI 伙伴生态
workspace / app / shop / commerce:平台业务能力
media:文件上传和下载
search:消息搜索
oauth:OAuth 应用管理(创建、列表、重置密钥、授权管理、撤销)
api-tokens:个人访问令牌管理(创建、列表、删除)
discover:探索热门服务器、频道和租赁
profile-comments:读取和写入主页留言
voice-enhance:AI 语音转录增强
cloud:Shadow Cloud API 辅助命令,并可透传至 shadowob-cloud
config / ping / status:配置与健康检查
listen:实时事件监听
JSON 输出
多数命令支持 --json 机器可读输出:
shadowob ping --json
shadowob status --json
shadowob notifications list --json
配置文件
默认路径:
~/.shadowob/shadowob.config.json
可通过命令查看:
环境变量
SHADOWOB_TOKEN
SHADOWOB_SERVER_URL
环境变量会覆盖配置文件中的 profile 值。
商业命令
商业命令暴露和 App 内一致的买家、卖家、服务商自动化路径。它适合做本地搭建、状态检查、履约工具和外部 App 权益核销。
# 查看商品面向买家的完整上下文
shadowob commerce products context <product-id> --json
# 预览并购买 Offer
shadowob commerce offers preview <offer-id> --json
shadowob commerce offers purchase <offer-id> --idempotency-key <unique-operation-id> --json
# 查看钱包里的购买与交付状态
shadowob commerce entitlements list --json
shadowob commerce entitlements get <entitlement-id> --json
shadowob commerce paid-files open <file-id> --json
# 管理买家持有的社区资产
shadowob commerce assets list --json
shadowob commerce assets consume <grant-id> --idempotency-key <unique-operation-id> --json
# 卖家收入与社区支持动作
shadowob commerce settlements list --json
shadowob commerce tips send --recipient-user-id <user-id> --amount 100 --message "Thanks" --json
店铺命令覆盖卖家侧货架、Offer、交付物、资产和店铺范围权益:
shadowob shop me get --json
shadowob commerce products context <product-id> --json
shadowob shop products list-by-shop <shop-id> --status active --limit 20 --json
shadowob shop offers list <shop-id> --json
shadowob shop offers deliverables create <shop-id> <offer-id> --data '{"kind":"paid_file","resourceId":"file-id"}' --json
shadowob shop assets create <shop-id> --data '{"assetType":"badge","name":"Founder Badge","status":"active"}' --json
shadowob shop entitlements list <shop-id> --json
OAuth 命令
# 列出你的 OAuth 应用
shadowob oauth list --json
# 创建 OAuth 应用
shadowob oauth create --name "My App" --redirect-uri https://example.com/callback --json
# 更新应用
shadowob oauth update <app-id> --name "New Name" --json
# 删除应用
shadowob oauth delete <app-id>
# 重置客户端密钥
shadowob oauth reset-secret <app-id> --json
# 列出已授权的应用(用户授权)
shadowob oauth consents --json
# 撤销应用授权
shadowob oauth revoke <app-id>
# 服务商 App 在 OAuth 会话里检查和核销 Shadow 购买权益
shadowob oauth commerce check --access-token <oauth-access-token> --resource-id <app-id>:premium --json
shadowob oauth commerce redeem --access-token <oauth-access-token> --resource-id <app-id>:premium --idempotency-key <provider-operation-id> --json
详见 平台应用 了解构建 OAuth 应用的完整指南。
应用 命令
# 列出服务器已安装 App
shadowob app list --server <server-id-or-slug> --json
# 安装前审核 manifest
shadowob app preview --server <server-id-or-slug> --manifest-url https://app.example.com/.well-known/shadow-app.json --json
# 安装并授予 Buddy 权限
shadowob app install --server <server-id-or-slug> --manifest-url https://app.example.com/.well-known/shadow-app.json --json
shadowob app grant demo-desk --server <server-id-or-slug> --buddy <buddy-id> --permissions demo.tickets:write --json
# 卸载 App
shadowob app uninstall demo-desk --server <server-id-or-slug>
# 发现 Skills 并调用命令
shadowob app discover --server <server-id-or-slug> --json
shadowob app skills demo-desk --server <server-id-or-slug>
shadowob app call demo-desk tickets.create --server <server-id-or-slug> --json-input '{"title":"Example"}' --json
应用 命令调用会通过 CLI 绑定 Shadow OAuth 身份和 Buddy 授权。Buddy 不应该用 curl 直接调用 应用 命令路由。
语音命令
# 加入语音频道并输出 Agora RTC 连接信息
shadowob voice join <channel-id> --json
# 保持连接并输出语音成员事件
shadowob voice join <channel-id> --watch --json
# 查看状态或离开语音频道
shadowob voice status <channel-id> --json
shadowob voice leave <channel-id>
# 安装隔离的 Chromium 运行时,用于语音桥接测试
shadowob voice browser install --json
shadowob voice browser path --json
# 通过托管浏览器桥接 RTC 媒体
shadowob voice bridge <channel-id> --audio-out ./audio --screen-out ./screens --json
# 录制完整的本地音视频归档
shadowob voice bridge <channel-id> --record-out ./voice-recordings --json
# 加入前按需安装托管浏览器
shadowob voice bridge <channel-id> --install-browser --audio-out ./audio --json
# 从音频文件向语音频道输入语音
shadowob voice bridge <channel-id> --input ./reply.wav --duration 30
# 从外部模型或进程向语音频道输入 raw PCM
model-audio-producer | shadowob voice bridge <channel-id> --stdin-pcm --sample-rate 24000 --channels 1
媒体桥接不会在 npm install 时安装 Playwright 或下载浏览器。需要测试 Chromium 运行时时,使用 shadowob voice browser install 或 --install-browser 按需安装,这能绕开 macOS 系统 Chrome profile/keychain 提示。也可以通过 --browser / SHADOWOB_BROWSER 显式指定浏览器路径。--record-out 会把远端音频保存为 WAV,把远端视频/屏幕共享保存为 WebM。它还需要主机环境提供 Agora Web SDK 浏览器包:可以在 CLI 旁边安装 agora-rtc-sdk-ng,或通过 --agora-sdk / SHADOWOB_AGORA_WEB_SDK 指向 AgoraRTC_N-production.js。