@meidada-cn/cli
v0.5.9
Published
媒大大官方内容投放 CLI
Downloads
4,494
Readme
媒大大 CLI
媒大大官方内容投放 CLI。日常使用按一条线路理解:
- 生成或准备文章
- 按需存放草稿箱
- 选择媒体并投放文章
- 按需创建定时投放
- 查看投后订单和结果
CLI 面向 Agent 使用时,必须以 --json 返回作为唯一事实来源。媒体价格按当前用户分层返回,不能写死、复用他人报价或绕过服务端报价。
安装
用户侧只需两步:
- 向目标 Agent 发送:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-bgkwxnpv/meidada。 - 在官方 CLI 工具入口点击“生成 API Key”,通过 Agent 的安全隐藏输入提供一次性 API Key。
之后由 Agent 自动完成 CLI 安装、Skill 同步、设备注册和环境自检。用户不需要自行打开终端执行 npm 或 mdd 命令,也不得把 API Key 粘贴到聊天中。
以下安装命令仅供 Agent 执行或人工维护排障参考,不属于用户必须执行的步骤:
推荐直接使用可审计的 npm 命令安装。主包和当前平台的原生二进制包优先通过 npm registry 获取;平台包暂未同步时,CLI 只会按当前版本从官方 Release 直接下载对应二进制并校验 SHA-256,不调用 GitHub API、不搜索仓库、不使用旧版本。国内用户可使用 npmmirror,新版本未找到时请改用官方源。安装命令只对当前命令生效,不会修改用户的 npm registry 配置。
# 固定到当前已验证版本,避免 registry latest 落后时安装旧版
npm install --global @meidada-cn/[email protected] --registry https://registry.npmmirror.com --no-audit --no-fund
# 官方源:npm install --global @meidada-cn/[email protected] --registry https://registry.npmjs.org --no-audit --no-fund安装脚本是便利入口,会先展示包版本、registry、安装目录和下载域名,再调用同一条 npm 安装命令:
Windows PowerShell:
Invoke-WebRequest https://raw.githubusercontent.com/yixiaoer888/meidada-cli/main/install.ps1 -OutFile install.ps1
PowerShell -ExecutionPolicy RemoteSigned -File .\install.ps1Linux/macOS:
curl -fsSL https://raw.githubusercontent.com/yixiaoer888/meidada-cli/main/install.sh -o install.sh
sh install.sh切换官方源:Windows 使用 PowerShell -File .\install.ps1 -Official;macOS/Linux 使用 sh install.sh --official。也可用 MDD_NPM_REGISTRY 或脚本参数指定企业 registry。
安装完成后继续初始化设备:
mdd skill sync --json上面默认只同步当前项目的 .agents/skills。需要用户级 Skill 时,明确指定当前 Agent 并先预览,例如:
mdd skill sync --global --agent codex --dry-run --json
mdd skill sync --global --agent codex --force --json支持 codex、cursor、claude、trae、workbuddy、codebuddy、openclaw、windsurf 和 gemini。不指定 --agent 时不会批量写入多个 Agent 的用户目录。
同步 Skill 后,Agent 必须继续完成设备注册和验证,不得要求用户自行打开本地终端执行命令。Agent 应通过安全隐藏输入获取 CLI 工具入口生成的“单次部署 API Key”,然后将其经标准输入传给 mdd setup --api-key-stdin --json。不要要求用户把 Key 粘贴到聊天中;Agent 也不得回显、记录或写入 Key。Agent 不得再向用户索要 API URL;API 地址应来自官方 CLI 工具入口、安装流程或已有配置。
mdd setup --api-key-stdin --jsonCLI 内置媒大大正式 API 地址 https://www.meidada.cn,通常只需提供一次性部署 API Key。企业私有部署可用 --api-url "https://your-private-host" 或环境变量 MDD_API_URL 覆盖默认地址;地址解析优先级为命令行参数、本地配置、环境变量、官方默认地址。
如果本机已有有效设备配置,setup 会先查询 /profile 完成健康检查,不读取新的部署 Key,也不会重复注册设备。只有设备令牌失效后,或明确传入 --re-enroll 时,才会执行设备注册:
mdd setup --api-key-stdin --json
mdd setup --re-enroll --api-key-stdin --jsonAgent 必须自动执行 mdd setup --api-key-stdin --json,并通过 Agent 自己的安全隐藏输入收取一次性部署 API Key。用户只负责在安全输入框中提供 Key,不需要打开终端或复制命令。若当前 Agent 不支持安全隐藏输入,应报告能力限制并停止,不得退化为要求用户手动执行命令或把 Key 发送到聊天中。Agent 的安全执行约定是:将隐藏输入直接连接到该命令的 stdin,不把 Key 写入命令参数、环境变量、文件或日志。
不要使用 mdd config init --api-key "真实Key" 作为推荐方式;该参数仅为兼容旧脚本保留,可能暴露在终端历史和进程参数中。
单次部署 API Key 只能使用一次、15 分钟后过期,注册成功后立即失效。设备专属令牌会持久化到当前操作系统用户的 ~/.mdd/config.json,切换项目或重新打开 Agent 后无需再次输入。不要把单次部署 Key 设置为 MDD_API_KEY;日常临时令牌如需通过环境变量提供,使用 MDD_DEVICE_TOKEN。
正式版更新默认使用你当前 npm registry;可通过 --registry 临时指定 npmmirror 或官方源,不会修改全局 npm 配置:
mdd update --check --json
mdd update --yes --json
mdd update --yes --registry https://registry.npmmirror.com --jsonmdd update --check 只检查,不安装、不下载二进制、不同步 Skill;只有显式传入 --yes 才会更新 CLI。更新默认同步当前项目 Skill,需要同步到 Agent 用户目录时使用 mdd update --yes --global --agent codex --force --json。普通命令默认不访问 npm,若需要后台版本检查,显式设置 MDD_AUTO_UPDATE=1 或 MDD_VERSION_CHECK=1。
更新期间会使用用户级更新锁,避免多个 Agent 同时改写全局 CLI。更新失败时会尝试同时恢复 CLI 和 Skill;如果恢复失败,必须根据 JSON 中的错误信息停止后续业务操作。
安装与更新常见问题
- 需要 Node.js 20+ 和 npm;使用
node --version检查。全局安装权限不足时,按 npm 官方文档配置用户级 prefix,不要以管理员身份长期运行终端。 - npmmirror 报
@meidada-cn/[email protected]不存在时,不要降级安装latest或旧版;应先等待同步或切换官方源。 - 平台二进制包名称为
@meidada-cn/cli-<platform>-<arch>,由主包通过optionalDependencies自动选择当前系统版本;平台包暂未同步时,只允许下载当前版本的官方 Release 资产并校验 SHA-256。 - 安装后由 Agent 直接检查 npm 全局 launcher 的实际路径;仅有用户目录原生二进制时视为安装失败。
- 更新失败时先执行
mdd update --check --json,再复制返回的 registry 和安装命令排查网络、权限或镜像同步情况。 - 已保留独立二进制发行能力:发布资产命名为
mdd-cli-<version>-<platform>-<arch>.<zip|tar.gz>,包含checksums.txt。它适合没有 Node.js 或企业网络限制场景;下载后必须先核验 SHA-256,再解压执行。当前构建命令为bun run build:native-assets,发布目录包含 Windows x64/ARM64、Linux x64/ARM64、macOS x64/ARM64。
1. 准备文章
用户已经有 DOCX、HTML 或 TXT 时,直接把文件作为文章来源。投放文章不需要先保存草稿:
mdd publish prepare --file article.docx --channel news --media 12345 --output campaign.json --json
mdd publish article --draft draft-123 --media 12345 --output campaign.json --json
mdd publish note --draft draft-123 --media 12345 --account-rule 1 --output campaign.json --json
mdd publish video --video demo.mp4 --title "短视频标题" --media 12345 --keyword "#品牌" --output campaign.json --json
mdd publish detect --file article.docx --media 12345 --json
mdd publish auto --file article.docx --media 12345 --output campaign.json --jsonDOCX 最大 20 MB,可保留标题层级、粗体、斜体、列表、表格、段落对齐和常用字号;内嵌的 PNG、JPEG、GIF、WebP 图片会自动上传并替换为线上地址。EMF、WMF 等浏览器无法显示的图片会明确报错,不会静默创建缺图稿件。
2. 存放草稿箱
只有用户明确要求“保存草稿、放到草稿箱、稍后再投”时,才使用草稿箱:
mdd draft import article.docx --json
mdd draft import article.html --title "文章标题" --json
mdd draft update <draftId> --content-file article.html --json
mdd draft update <draftId> --content-file article.html --yes --json
mdd draft preview <draftId> --jsondraft import 会保存草稿并返回预览链接,结果里同时提供 preview.url 和 previewUrl。draft update 默认只返回修改预览,不写入;用户确认后才加 --yes。
3. 投放文章
标准即时投放流程:
mdd wallet balance --json
mdd media search --channel news --keyword "关键词" --json
mdd publish prepare --file article.docx --channel news --media 12345 --customer <customerId> --output campaign.json --json
mdd publish prepare --video demo.mp4 --title "短视频标题" --channel short-video --media 12345 --keyword "#品牌" --output campaign.json --json
mdd publish validate campaign.json --json
mdd publish dry-run campaign.json --json
mdd publish quote campaign.json --json
mdd publish confirm <approvalId> --json
mdd publish confirm <approvalId> --keep-draft --json
mdd publish confirm <approvalId> --yes --json
mdd publish get <approvalId> --json
mdd publish wait <approvalId> --jsonpublish prepare --file 会上传文档中的本地图片,并创建仅用于本次投放预览的临时预览源;它不是用户主动保存的草稿。结果会返回 previewUrl、临时草稿 ID 和 draftDecision,Agent 必须提醒用户选择“继续投放”还是“保存草稿”。继续投放时按 draftDecision.continueCommand 继续报价;保存草稿时保留该草稿;用户明确放弃且不保留时,执行 draftDecision.discardCommand 删除。publish prepare --video 同样处理。publish prepare --draft 使用草稿箱已有文章作为来源,不触发这个选择。publish quote 是 publish request 的易读别名,用于创建短期有效的待确认报价,不会创建订单或扣款,并会返回同一个确认前预览链接。Agent 必须先把这个链接交给用户查看,再执行不带 --yes 的 publish confirm 获取最终摘要;用户明确确认标题、媒体和费用后,才执行 publish confirm <approvalId> --yes。如果审批单没有预览链接,CLI 会停止,不会创建订单。投放完成后可用 publish get/wait 查看整批订单状态,results[].previewUrl 是发送给上游媒体的稿件预览链接;如果你需要查看审批信息,可改用 publish approval get <approvalId>。
publish article、publish note 和 publish video 是面向三类投放内容的快捷入口,分别默认对应新闻文章、自媒体图文笔记和短视频流程;它们仍然复用同一套报价和草稿处理逻辑。
publish detect 只识别素材应走哪条线路,不创建草稿、不报价;publish auto 会先识别,只有识别置信度高且必填信息齐全时才生成投放文件。不确定时会返回 confirmationRequired、nextQuestions 和 missingFields,Agent 必须先向用户确认,可用 --content-type article|note|video 或对应快捷命令继续。
投放完成后,结果中仍应展示发送给上游平台的预览链接,方便用户回看每个订单对应的稿件。失败项显示失败原因,不得声称成功。
订单取消和定时计划的确认、暂停、恢复、取消操作会使用稳定幂等 Key;遇到网络超时可先查询当前状态,再安全重试。临时预览草稿在预览、报价或 campaign 文件写入失败时会尝试自动清理,清理失败会在错误中返回草稿 ID。
CLI 媒体查询和投放支持 news(新闻媒体)、we-media(自媒体)、overseas(海外媒体)和 short-video(短视频)。
4. 定时投放
只有用户明确提出“定时、每天、按计划投放”等需求时,才进入定时投放。普通投放不得自动转换成定时计划。
mdd schedule prepare --drafts <draft1,draft2> --channel news --media 12345 --start-at "2026-08-13T09:00:00+08:00" --run-at 09:00 --timezone Asia/Shanghai --repeat daily --budget-per-run 500 --budget-total 5000 --output schedule.json --json
mdd schedule prepare --drafts <draft1> --channel short-video --media 12345 --start-at "2026-08-13T09:00:00+08:00" --run-at 09:00 --timezone Asia/Shanghai --repeat once --budget-per-run 500 --keyword "#品牌" --output schedule.json --json
mdd schedule request schedule.json --json
mdd schedule confirm <scheduleId> --json
# 用户确认哪几篇文章、什么时候发布、发几次、涉及多少钱和预览信息后:
mdd schedule confirm <scheduleId> --yes --json如果用户在确认摘要后说撤销,不执行 --yes;如服务端已创建待确认计划,可执行取消流程:
mdd schedule cancel <scheduleId> --json
mdd schedule cancel <scheduleId> --yes --json定时计划由服务端执行,关闭 Agent 或电脑不会漏投。每次只消费草稿队列中的下一篇文章,不会自动挑选草稿或媒体。执行前会重新校验草稿版本、媒体状态、当前用户分层报价、余额、单次预算和累计预算;任一条件超出授权范围,计划会暂停等待处理。
5. 投后管理
mdd order list --json
mdd order get <orderNo> --json
mdd order wait <orderNo> --json
mdd order cancel <orderNo> --json
mdd order cancel <orderNo> --yes --json取消订单必须先预览,再让用户确认订单号、媒体和退款金额后执行 --yes。
辅助能力
mdd asset upload cover.png body-1.png --json
mdd customer create --file customer.json --json
mdd customer get <customerId> --json
mdd favorite add 12345 --channel news --json
mdd config get --json
mdd auth status --json
mdd doctor --jsondoctor 除了检查 API 和认证,还会报告 npm 包、launcher、原生二进制、项目级 Skill 和本地设备配置状态。not_checked 表示当前进程没有提供对应安装上下文,不代表可以绕过安装验证。
客户联系电话默认脱敏;只有用户明确需要核对时才使用 customer get <id> --show-sensitive。
CLI 当前不提供发票命令;如需开票,请通过当前系统联系媒大大客服。
渠道补充提醒
publish detect 和 publish auto 用于自动识别用户发来的素材属于文章、图文/笔记还是短视频。CLI 会按素材来源、视频标签、图片数量和已确认的 --content-type 判断发布板块;如果只有少量图片、文章和图文笔记都可能适用,JSON 会返回 confirmationRequired: true,Agent 必须先询问用户确认板块。
三条线路都至少需要用户提供素材来源(--file、--draft 或 --video)和媒体 ID(--media)。短视频还必须有标题;图文/笔记默认走自媒体图文发布(--article-type 2、--allow-video 0),但 Agent 应确认发布形式和换号/截图规则。多媒体投放时,CLI 会在 titlePlan 中提示是否需要针对不同媒体拟定标题;Agent 在自动拟标题前必须先问用户是否需要。
publish prepare、publish validate、publish dry-run 和 publish quote 的 JSON 结果会包含 guidance,用于提示当前渠道还可以补充的针对性内容。短视频会提示 --keyword、素材和封面/描述建议;自媒体可通过 --account-rule、--article-type、--allow-video 补充账号规则、内容类型和视频处理方式;新闻和海外媒体会提示可在 --remark 中补充发布要求、地区语种、来源等信息。这些提醒不代表最终确认,仍需按报价和 publish confirm --yes 流程执行。
