# @dmfaster/cli 中文文档

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

版本：2\.7\.6
npm 元数据更新时间：2026-10-25T11:19:51.378Z
中文译文更新时间：2026-11-12T13:10:48.588Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40dmfaster/cli
原文对照：https://npmcn.com/package/%40dmfaster/cli/?lang=original
项目主页：https://dmfaster.com/
源码仓库：https://github.com/dmfaster/agents

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

- 包体积（解压后）：191 kB，27 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：24\.x
- 运行依赖：2 个
- 首次发布：2026-07-29T19:29:00.807Z
- 最新版本发布：2026-10-25T11:19:51.036Z
- 近 30 天下载量：3091（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：32（近 12 个月 32 个）

## 中文简介

DM快速代理1.0的命令行接口.

## 安装

```sh
npm install @dmfaster/cli
```

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

## README

# 管理部快速CLI

CLI为DM更快代理2.0。 运行版本绑定的软件包,然后认证 通过有重点的DM快取浏览器批准页面.

此来源准备版本被绑定的 2. 3. 0 运行时间 。 验证坐标 在使用这些新的指令反对生产之前,产品和包放出.

```bash
npx --yes @dmfaster/cli@2.7.6 auth login --json
npx --yes @dmfaster/cli@2.7.6 auth login --access plan --json
npx --yes @dmfaster/cli@2.7.6 auth status --json
npx --yes @dmfaster/cli@2.7.6 doctor --json
npx --yes @dmfaster/cli@2.7.6 describe companies search

npx --yes @dmfaster/cli@2.7.6 analytics summary --scope today --json
npx --yes @dmfaster/cli@2.7.6 workspace briefing --json
npx --yes @dmfaster/cli@2.7.6 campaigns list --status Running --limit 10 --json
npx --yes @dmfaster/cli@2.7.6 campaign copy inspect campaign_123 --json
npx --yes @dmfaster/cli@2.7.6 conversations list --filter unread --channel linkedin --limit 25 --json
npx --yes @dmfaster/cli@2.7.6 conversation inspect conversation_123 --limit 40 --json
npx --yes @dmfaster/cli@2.7.6 replies list campaign_123 --limit 5 --query "Visio" --json
npx --yes @dmfaster/cli@2.7.6 company timeline campaign_123 outreach_456 --json
npx --yes @dmfaster/cli@2.7.6 companies list refine --input reviewed-refinement.json --json
npx --yes @dmfaster/cli@2.7.6 companies fit start --input fit-review.json --json
npx --yes @dmfaster/cli@2.7.6 companies fit advance --input fit-run.json --json
npx --yes @dmfaster/cli@2.7.6 companies fit results --input fit-page.json --json
npx --yes @dmfaster/cli@2.7.6 companies fit proposal --input fit-run.json --json
npx --yes @dmfaster/cli@2.7.6 history export campaign_123 > campaign-history.jsonl

npx --yes @dmfaster/cli@2.7.6 campaign validate --state campaign-state.json --json
npx --yes @dmfaster/cli@2.7.6 audience preview --state campaign-state.json --json > audience-preview.json
# Review the exact count and sample in audience-preview.json before continuing.
npx --yes @dmfaster/cli@2.7.6 campaign prepare --state campaign-state.json --reviewed-audience audience-preview.json --idempotency-key prepare-001 --json
npx --yes @dmfaster/cli@2.7.6 campaign launch preflight campaign_123 --idempotency-key launch-001 --json
npx --yes @dmfaster/cli@2.7.6 campaign launch campaign_123 --idempotency-key launch-001 --authorization-id agent_action_… --json

npx --yes @dmfaster/cli@2.7.6 auth logout --json
```

`auth login` 创建寿命短的 PKCE 设备请求,打印确认 代码,在用户浏览器中打开相同的请求,并进行民调直至用户 批准,否认,或让它失效. 用户必须比较浏览器和 CLI 编码和审查确切的工作空间、期限和权限。 浏览器永远不会 获得签发的证书.

登录默认值为完整 `full` 简介。 使用 `--access` 只允许 所需能力集:

| 简介 | 能力 |
| --- | --- |
| `read` | 检查工作空间、活动、发送、答复和管道 |
| `plan` | `read` + 行业浏览、验证和准确观众预览 |
| `draft` | `plan` 加上私人列表/运动准备和核准的暂停请求 |
| `full` | `draft` 加上运动控制、收件箱答复、管道更新、以及根据业主赠款和明确指示取消后续活动 |

服务器仍然检查每个精确范围,工作空间成员,只检查所有者 规则 和行动授权 访问配置文件是证书上限,不是 行动批准.

`campaigns list` 接受 `--query`, (中文(简体) ), `--channel`,以及 `--cursor` 并列状态 并限制。 其结果包括精确的过滤总数和 `nextCursor`保留 后页的相同过滤器。 如果收藏在呼号时发生变化, 没有光标的重新启动; 部分集从未报告为完整 .

`conversations list` 接受收件箱过滤器和光标为旗帜。 这个 `conversation inspect` 命令要准确的对白 ID 和可选 信件光标。 双方都接受 `--input FILE` 用于输入完整的输入.

`history export CAMPAIGN_ID` 沿着已确认的发送历史光标并 将 JSON Lines 写入标准输出。 它检查每一页 之前写任何 行,所以一个API或光标失败不能产生部分导出. 默认 最多为一万行; 使用 `--max` 对于较小的束缚或 `--cursor` 开始 从已保存的历史光标中. `history list --input FILE` 仍为所打, 大历史和MCP客户端的逐页路径.

登录在 stdout 上发布两个新线限定的 JSON 事件: 第一 `authorization_required`,则 `authenticated` 成功交换后. 人类的指令和警告都转到了Stderr, 所以脚本可以解析 stdout 而不刮去道词.

使用 `auth upgrade --access full` 当现有证书需要更广泛的 权限。 在浏览器批准时存储了旧的证书遗存. 拒绝 在安全存储确认替换后 CLI取消旧证书. 如果旧远程撤销失败, 则 CLI 报告 在保留新的工作联系的同时, 最终JSON 事件包括 `priorCredentialRevoked` 所以脚本可以分辨是否清理 结束了.

核准证书存放于macOS Keychain或Linux特勤局 (单位:千美元)`secret-tool`) (中文(简体) ). 不支持的证书存储失败关闭, 永远不会写入 简文倒置. `auth status` 使用 服务器. `auth logout` 在本地删除之前取消存储的证书.

运动状态文件包含完整的最新状态返回或确认 打电话的人 重新发送到每个验证、观众或准备状态 调用; MCP/API 进程不保留隐藏的规划会话 。 筹备 命令创建私人资源,并需要稳定的一能键。 他们也 需求 `--reviewed-audience` 已保存的、经人审查的产出 匹配精确的预览 。 CLI回應由服务器发行的受众身份从 其结果不变;它从未从国家文件中获得签名.

代理商应该假设用户不知道DM Fraster的字段或命令名: 将用户的目标转换为完整状态, 只要求缺少材料 准确的预览和私人编写草案 秩序。 秩序. `dmfaster --help` 包含相同的只针对 CLI 的快速启动序列 师曰.

这个 `full` 连接配置包含 `campaigns:control`。在拥有者之后 作出明确指示,如“发射”就够了。 打电话 ,然后返回时立即执行 `ready`,使用返回的 授权ID 和相同的竞选ID 和 idepotency 密钥。 授权 时间仍然很短,而且与竞选版本完全一致.

更老的连接保持每个动作浏览器的批准. 再连接一次 `dmfaster auth upgrade --access full` 以启用对话控制,或跟踪 返回时 `approval_required` 单一动作的 URL 。 只有人类才能行动 连接和动作核准页。 如果发射返回 `setup_required`显示 `setup.setupUrl` 重复 `setup.resume` 扩展后重新连接.

`--json` jSON是每个API命令的默认值. `dmfaster doctor` 检查节点运行时间、 安全存储可用性、 远程 认证、工作空间身份、授予范围和符合范围要求的工具. 它会打印一些动作来恢复断开的连接而不会暴露符号. 范围资格不能绕过工作空间的作用、计划或行动检查. 运行 `dmfaster --help` 用于完整代理2.0命令列表,或 `dmfaster COMMAND --help` 说明重点. `dmfaster describe COMMAND` 返回精确的输入方案、所需的范围以及不签名的效果. 接受的图标 `--input FILE`, (中文(简体) ), `--state FILE`, (中文(简体) ), `--reviewed-audience FILE`, (中文(简体) ), 或者说 `--file FILE` 还接受 `-` 以读取标准输入中的一项输入。 留着 已审查的受众预览作为服务器发布的结果;标准输入不 取消审查要求。 生产 API URL 默认为 `https://app.dmfaster.com`。 。 。 .

CLI也读到 `$XDG_CONFIG_HOME/dmfaster/config.json` (或 `~/.config/dmfaster/config.json`:

```json
{
  "baseUrl": "https://app.dmfaster.com"
}
```

环境变量优先. `DMFASTER_API_URL` 覆盖基准 URL用于本地开发或自宿. `DMFASTER_TOKEN` 仍然是明确的 开发者证书覆盖并优先于操作系统 存储; CLI 拒绝 JSON 配置中的纯文本符号字段。 永远不要贴上 DM 快速令牌进入聊天或MCP配置.

## 导入Instagram 用户名

保存已审查过的用户名收藏为私有列表 :

```bash
dmfaster list import --name "Finland Coaches" --file instagram-usernames.csv --json
```

使用带有可选选项的一栏 CSV `username` 或者说 `instagram_username` 标题, 或每行有一个用户名。 UTF-8 BOM,引用的单元格,和 CRLF 支持. 最多 1000行和64KiB被接受. 无效行拒绝整个导入 。 大小写 和领导@实现正常化;重复报告并删除。 命令 从名称和唯一用户名中获取一个稳定的重试密钥; 提供新 `--idempotency-key` 故意创建另一个副本.

SDK当量是 `client.invoke("list.import", { name, usernames, idempotencyKey })`它要求 `campaigns:write` 并且在所有计划中,包括Basic上都可以使用。 成功的结果包括: `listId`, (中文(简体) ), `name`, (中文(简体) ), `importedCount`, (中文(简体) ), `inputCount`, (中文(简体) ), `duplicateCount`, (中文(简体) ), `created`,以及 `replayed`。 。 。 . 更改的有效载荷或编辑后保存的列表返回 `idempotency_conflict`。 。 。 . 该列表可在竞选建设者中选择;没有创建竞选 无所寄出. 导入验证语法,而不是活的Instagram账户存在.

## 现有Instagram列表 (1.1

查找已保存的列表, 检查整个受众是否准确的用户名, 删除 a 并且通过同一合同筹备一场未启动的运动:

```bash
dmfaster lists list --query "Coaches" --json
dmfaster list inspect LIST_ID --username pt.j.jylha --json
dmfaster list target remove LIST_ID --username pt.j.jylha --expected-version INSPECTED_UPDATED_AT --json
dmfaster campaign draft prepare --input draft.json --json
```

JSON草案载有 `listId`, (中文(简体) ), `expectedListUpdatedAt`, (中文(简体) ), `expectedTargetCount`, (中文(简体) ), `name`, (中文(简体) ), `messageVariants` (1-4个字符串), `dailyCap`, (中文(简体) ), `pacingSeconds`, (中文(简体) ), `onlyNewChats`, (中文(简体) ), `skipPreviouslyMessaged`,以及 `idempotencyKey`。使用该版本 以及最新检查/搬运的准确总数。 核查 保存副本和设置, 并总是返回已禁用 `Draft`它不会 启动或发送手臂。 重用不同设置或编辑对象的密钥 失败而不改变原来的竞选.

SDK 操作名称为 `lists.list`, (中文(简体) ), `list.inspect`, (中文(简体) ), `list.target.remove`, (中文(简体) ), `campaign.draft.prepare`,以及 `campaign.draft.update`; MCP 名称以下划线取代点. 列表 读取要求 `campaigns:read`; 删除需要所有者 `campaigns:write`· ; 起草草案需要两种范围。 不需要公司搜查权 这些Instagram列表。 现有的运动发起/暂停批准没有变化.

Instagram运动总是排除已知的联系人: `onlyNewChats` 财务报告和审定财务报表 `skipPreviouslyMessaged` 都一样 `true`未支持的值被拒绝 在起草之前.

修改现有的残疾、未启动的社会运动草案,使用 `dmfaster campaign draft update --input update.json --json`供应 `campaignId`, (中文(简体) ), `expectedCampaignUpdatedAt` 和无能的 `updates` 包含任何支持设置的对象:社交频道切换,链接In邀请 模式和注释,后续序列,描述, `name`, (中文(简体) ), `messageVariants`, (中文(简体) ), `dailyCap` (1至60个), `pacingSeconds` (12–3,600),或发-窗田. 外出设置和观众保存. Stale版本和开始的竞选活动被拒绝. 在不确定之后 回答,在重试前检查运动。 无需批准发射 编辑已禁用的草稿.

用于混合Instagram/Facebook/LinkedIn草稿,使用 `campaign copy inspect CAMPAIGN_ID --json` 读取确切邀请模式,注意, 保存的序列, Instagram/ 脸书 `messageVariants`,并有效 `linkedinAcceptedMessage`。 。 。 . 不带便条就发出邀请,然后设置一个DM `linkedinInviteMode` 改为 `invite_only` 财务报告和审定财务报表 `linkedinFollowUpSequence` 到第一个启用的序列 链接 在包含DM文本的步骤中. 第一步一到就排队 连接被接受,或者如果该人已经连接; 所需员额 `delayDays: 1` 不延迟接收消息。 以后的步骤 使用他们所配置的延迟 。 在另一条竞选渠道上,一个已知的人类答复 已链接 步骤中,在发送前进行最后检查. 仅链接 运动用途 `followUpSequence` 为这些步骤。 更新后检查 校验已保存的副本; 编辑时从未启动草稿 .

自动发送窗口也可以通过编辑 `campaign.draft.update`数字 : `instagramSendingWindowEnabled` 是一个布尔; `instagramSendingWindowStartMinute` 0-1380为; `instagramSendingWindowEndMinute` - 60-1440;以及 `instagramSendingWindowWeekdays` 是1–127(星期一=1,星期二=2)的位图, 周日=64;周一至周五=31。 间隔必须至少为60分钟 在同一天里,我们开始讨论 时间使用工作空间时区返回 `campaign.inspect` 内 `settings`,与当前窗口并列,复制,节奏,并启用状态. 更改间隔时发送两个端点 。 保存的窗口可切换 草案停止使用时进行或关闭;只有单独的发射操作 手持时间表。 已经开始的运动不能用这个工具草案来编辑.

检查正在进行的运动 `campaign delivery inspect --input FILE`。 。 。 . 更新上限、速度或发送时数 `campaign delivery update --input FILE`, (中文(简体) ), 包括检查修订和 " 公正 " 钥匙。 这能保持运行 还有观众 启动并暂停返回操作引用; 使用 `campaign operation inspect --input FILE --wait 30` 最多等待30秒钟 它的收据。 待办业务可再次使用同一身份证进行检查. 浏览器承认和确认的交货是分别的事实.

## 保存公司联系方式

公司搜索支持当前公司应用过滤器,包括 `technologies: ["shopify"]` 合并 `metaAdsActiveOnly: true`发现 国别选项,先检查返回的公司身份 在准备私人短名单之前.

保存公司列表 保存可用的真实邮件, LinkedIn, 电话, Instagram, 和脸书路线。 名称和角色与每个选定的联系人保持一致 频道;检查所有决策者的全公司概况。 已生成 `company.…` 身份从来不是Instagram的目标 和无联系的公司 保留研究行。 所保存的路由是快照,而不是经过验证的可交付性. 旧的列表不会自动回填先前丢失的联系人 . 这种服务器行为与公布的1.4.0 CLI和MCP服务器相通; 保存一份研究清单不会造成任何运动,也不会发出任何东西.

## 恢复审查(自1.8.0起)

```bash
npx --yes @dmfaster/cli@2.7.6 companies fit run --input run.json --until-complete --max-seconds 1800
npx --yes @dmfaster/cli@2.7.6 companies fit export fit_RETURNED_ID --output complete-review.json
```

`run.json` 持有返回 `runId` 和可选 `limit` (1–8) (中文(简体) ). 短暂 重试运行的再使用; 在中断或预算退出后重复命令 . 进取到Stderr, 最终JSON去Studout。 出口需要全面审查, 在一个版本对齐所有公司,并拒绝覆盖文件。 它能产生 没有部分文件 。 对于状态,恢复,取消,组别,历史副本, 日历和呼叫读取,使用生成的 `describe` 财务报告和审定财务报表 `--input FILE` 命令. 日历预订发送邀请并需要准确的用户授权加所有者 日历范围。 现有赠款必须首先通过浏览器升级.

## 常见问题

### @dmfaster/cli 是什么？

DM快速代理1\.0的命令行接口\.

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

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

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

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

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

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

### @dmfaster/cli 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js 24\.x。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

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

@dmfaster/cli 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

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

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

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

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

