# @botozap/cli 中文文档

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

版本：0\.24\.0
npm 元数据更新时间：2026-10-30T17:39:11.466Z
中文译文更新时间：2026-11-08T12:40:56.644Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：196 kB，34 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=22\.12
- 运行依赖：3 个
- 首次发布：2026-07-15T06:18:32.233Z
- 最新版本发布：2026-10-30T17:39:11.264Z
- 近 30 天下载量：2042（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：30（近 12 个月 30 个）

## 中文简介

CLI dev-first para a API pública do BotoZap (WhatsApp Cloud API多租户).

## 安装

```sh
npm install @botozap/cli
```

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

## README

# @botozap/ cli (英语)

CLI dev-第1段a **API pública do BotoZap (英语:** - 平面多租户 (原始内容存档于2018-10-21). WhatsApp Cloud API official, também com o Instagram. 羡慕众生 克伦西·康塔托斯, 客户端, números, 模板 e webhooks serito 做终端 ou de脚本 .

官方的CLI e uma casca fina sbre o SDK [`@botozap/sdk`](https://npmcn.com/package/%40botozap/sdk) 有活活活活活活 {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}再过一次.

> 重新定义 **节点 22.12**推进我们a **小时** (nunca npm/npx/yarn/bun).

> **状态:预览 `0.x`。 。 。 .** 总统夫人 昏迷者/受难者 `1.0`A级 [API REST (英语)](https://botozap.com.br/docs) e e estável-se algo faltar na CLI, chame的界面 `https://botozap.com.br/api/v1` 紧急( t)`curl` + 键 `Authorization: Bearer`) (中文(简体) ). CLI cobre hoje um SUBCONJUNTO da API: 传输员(`broadcasts`) 存在 没有SDK/REST, mas ainda não têm commando。 错误 : [单发问题](https://github.com/bytecraft-fernando/botozap-js/issues) ——"无"(nunica inclua sua chave de API)无"再".

## 英斯特拉桑

全球通讯:

```bash
pnpm add --global @botozap/cli
botozap --version
```

Para 实验 sem instalar 全球:

```bash
pnpm dlx @botozap/cli --help
```

## 厄立特里亚

一个CLI fala com `/api/v1` 自动端口 com o header `Authorization: Bearer bz_live_…` (赫达多做SDK). 护法护卫 `X-API-Key`{\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}我爱她 **守护者**{\\fn方正黑体简体\\fs18\\b1\\bord1\\shad1\\3cH2F2F2F}波多扎普的口香糖 **/ 闲置**。 。 。 .

沙丘( e a URL base) são resolvidas 巢穴 **优先赔偿**数字 :

| 项目 | 1o(矿井) | 2° | 3个 | 几内亚 |
| --- | --- | --- | --- | --- |
| API 密钥 | `--api-key` | `BOTOZAP_API_KEY` | `~/.botozap/cli/config.json` | —— 说 |
| URL 基础 | `--api-url` | `BOTOZAP_API_URL` | `~/.botozap/cli/config.json` | `https://botozap.com.br/api/v1` |

欧 `config.json` 费卡 `~/.botozap/cli/`德菲纳州 `BOTOZAP_CONFIG_DIR` (单位:千美元) `BOTOZAP_CONFIG_DIR=/caminho/do/config botozap login`) (中文(简体) ).

> **塞古兰察:** 语法 `BOTOZAP_API_KEY` (env) 欧 `botozap login` 传球 `--api-key` commando)- CLI ficam 不作螺旋形外壳 (原始内容存档于2018-09-21) (英语). e visíveis em `ps`阿尔格夫。 有一面旗子是Conveniência e CI, mas trata a crave (原始内容存档于2018-09-21). Como segredo em argv. 欧 `config.json` 总统府 `0600` (德雷多里奥) `0700`) (中文(简体) ).

### 葛拉凡多一个洞

```bash
# stub amigável: explica /chaves e oferece colar a chave
botozap login

# sem perguntar (CI); a chave fica no histórico do shell
botozap login --api-key bz_live_xxxxxxxxxxxx

# direto
botozap config set apiKey bz_live_xxxxxxxxxxxx
botozap config set baseUrl https://botozap.com.br/api/v1

botozap config get     # mostra config (apiKey mascarada)
botozap config path    # caminho do config.json
```

> **`botozap login` 额. 斯图布.** O BotoZap aninda não tem 登录 OAuth por navegador; 存档副本; {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}哦 {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}哦 {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}哦 `/chaves` e 严重性 a cavave colada no config local. 当地一个小洞.

### 维基百科

```bash
botozap status
# Autenticado. Conta acessível.
# URL base       https://botozap.com.br/api/v1
# Origem da chave config
# Números        3
```

## 萨伊达:人与JSON

萨伊达岛 **人类** (塔贝拉斯语/林哈斯语). 段落脚本, 使用 `-o json` (单位:千美元) `--output json`), que encrime o JSON (JSON) (英语) **钉子** 已更新 :

```bash
botozap messages list -o json | jq '.data[].id'
```

> **列表** 预览 o 信封 da API`{ data, paging }` por光标, `{ data, meta }` 页:1. **图案** (单位:千美元)`get`, (中文(简体) ), `create`, (中文(简体) ), `update`, (中文(简体) ), `media ingest`, (中文(简体) ), `webhooks test`, (中文(简体) ), `deliveries replay`(中文(简体) ) 萨姆 **乌克托斯省** {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}哦! {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}哦 `data` em volta——小马 (原始内容存档于2019-03-25) (英语). Métodos de project do SDK já entregam a entidade. `messages send` 答复 轮回 `POST /messages` 我们的信封.

## 指挥官

```
botozap messages      send | send-media | send-interactive | send-location | react | list | get
botozap conversations list | get | update | typing | read | request-consent | delete
botozap contacts      list | get | create | update | delete | consents | record-consent
botozap media         ingest
botozap customers     list | get | create | update | delete
botozap setup-links   list | create | update      (--customer <id>)
botozap numbers       list | get | update | health
botozap numbers profile get | update | photo        (perfil do WhatsApp)
botozap numbers prompts get | update | clear        (perguntas prontas e comandos)
botozap numbers qr      list | create | get | update | delete
botozap numbers blocked list | block | unblock
botozap numbers history-import get | set          (conversas antigas do app, coexistência)
botozap channel-accounts list | get
botozap channel-accounts comment-ai get | set | runs   (Instagram)
botozap channel-accounts comment-rules list | get | create | update | delete | metrics   (Instagram)
botozap channel-accounts message-rules list | get | create | update | delete   (Instagram)
botozap channel-accounts messenger-profile get | update | delete | sync   (Instagram)
botozap templates     list | get | create | update | delete | sync
botozap webhooks      list | get | create | update | delete | test
botozap deliveries    list | replay                 (webhook_deliveries)
botozap logs          list                          (api_logs)
botozap users         list
botozap usage         meta-costs                    (custo aproximado da Meta)
botozap billing       (plano, slots e garantia) | slots create | slots cancel
botozap exports       create | list | get           (exportação de dados da Conta)
botozap team-events   list                          (registro de atividades; só Administrador)
botozap config        set | get | path
botozap login
botozap status
```

### Globais 旗帜

-   `--api-key <chave>` 编号 : `--api-url <url>` {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}所以说...
-   `-o, --output <human|json>` 桑达岛(padrão) `human`) (中文(简体) ).
-   列表为 por **光标**数字 : `--limit`, (中文(简体) ), `--after`, (中文(简体) ), `--before`。 。 。 .
-   列表为 por **页:1**数字 : `--page`, (中文(简体) ), `--per-page`。 。 。 .

### 实例

```bash
# Enviar texto simples
botozap messages send --to 5511999999999 --text "Olá do BotoZap!"

# Enviar payload completo (template, mídia, etc.) via arquivo ou stdin
botozap messages send --input ./mensagem.json
cat ./mensagem.json | botozap messages send --stdin

# Repetir sem mandar em dobro: a mesma chave com o mesmo corpo devolve a
# resposta original. Derive a chave do evento, não gere uma nova a cada chamada.
# Vale em send, send-media, send-interactive, send-location e react.
botozap messages send --input ./entrega.json --idempotency-key entrega-123-2026-10-20

# Botões/lista/link (objeto interactive da Cloud API), localização e reação
botozap messages send-interactive --to 5511999999999 --input ./botoes.json
botozap messages send-location --to 5511999999999 --latitude -3.119 --longitude -60.0217 --name "Loja"
botozap messages react --to 5511999999999 --message-id <uuid-ou-wamid> --emoji 👍
botozap messages react --to 5511999999999 --message-id <uuid-ou-wamid> --remove

# Mídia por link (WhatsApp ou Instagram; o Instagram não aceita --caption)
botozap messages send-media --to 5511999999999 --type image --link https://exemplo.com/foto.jpg --caption "Seu pedido"

# Instagram: --to é o IGSID do contato; --from aceita o id da conta na Meta ou o
# UUID da Conta de canal. O recibo traz wamid null e o mid em external_id.
botozap messages send --to 17841400000000123 --text "Tenho estes horários:" \
  --quick-reply "9h=sabado_09" --quick-reply "10h30=sabado_1030"
botozap messages send-media --to 17841400000000123 --type image --link https://exemplo.com/foto.jpg
botozap messages react --to 17841400000000123 --message-id <mid> --emoji ❤️
# Opções de resposta: só Instagram, só com --text, até 13 (título ≤ 20 caracteres),
# dentro da janela de 24h. Formato completo (content_type user_email/user_phone_number):
botozap messages send --to 17841400000000123 --text "Qual seu e-mail?" \
  --quick-replies-json '[{"content_type":"user_email"}]'

# Contas de canal e conversas de uma origem
botozap channel-accounts list --channel instagram   # coluna TOKEN: saúde da conexão
botozap conversations list --channel instagram --channel-account-id <uuid>

# Regras de comentário do Instagram (comment-rules:read / comment-rules:write)
botozap channel-accounts comment-rules list <conta>
botozap channel-accounts comment-rules create <conta> --keyword preço --dm-text "Te mandei os valores!" --reply-text "Te chamei no direct!"
botozap channel-accounts comment-rules update <conta> <regra> --active false
botozap channel-accounts comment-rules delete <conta> <regra>

# Listas JSON preservam frases; [] limpa. next-post true aguarda o próximo post.
botozap channel-accounts comment-rules create <conta> --dm-text "Oi!" \
  --keywords '["preço","valor"]' --excluded-keywords '["não quero"]' \
  --reply-variations '["Te chamei!","Veja o direct!"]' --next-post true
botozap channel-accounts comment-rules update <conta> <regra> --keywords '[]' --next-post false

# Instagram: interactive button (web_url/postback) ou generic (1–10 cards)
botozap messages send-interactive --to 17841400000000123 --from <conta> --input ./cards.json
cat cards.json | botozap messages send-interactive --to 17841400000000123 --from <conta> --stdin
# --tag human_agent é opcional, sujeito à flag e janela da API.

# Perguntas e menu (messenger-profile:read/write; sem sandbox)
botozap channel-accounts messenger-profile get --channel-account-id <conta>
botozap channel-accounts messenger-profile update --channel-account-id <conta> \
  --json '{"ice_breakers":[{"question":"Horários?","payload":"horarios"}]}'
botozap channel-accounts messenger-profile update --channel-account-id <conta> --input ./perfil.json
cat perfil.json | botozap channel-accounts messenger-profile update --channel-account-id <conta> --stdin
# PATCH: ausente preserva; null ou [] remove a seção.
botozap channel-accounts messenger-profile update --channel-account-id <conta> --json '{"persistent_menu":null}'
botozap channel-accounts messenger-profile sync --channel-account-id <conta>
botozap channel-accounts messenger-profile delete --channel-account-id <conta>

# Listar mensagens com filtro e paginação por cursor (coluna ORIGEM = source)
botozap messages list --direction inbound --limit 20
botozap messages list --after <cursor>
botozap messages list --sort event_at   # ordem real; reuse o cursor com o mesmo --sort

# Webhook com a categoria opt-in de mensagens do app (coexistência)
botozap webhooks create --url https://exemplo.com/hook --events messages,app_messages

# Encerrar uma conversa
botozap conversations update <id> --status ended

# Criar contato (display_name = nome dado pela empresa; o profile_name vem do canal)
botozap contacts create --wa-id 5511999999999 --display-name "Maria (loja centro)"
botozap contacts update <id> --clear-display-name

# Consentimento. Pedido na conversa (botões no WhatsApp, respostas rápidas no
# Instagram; só com a janela de 24h aberta: outside_window ou window_closed):
botozap conversations request-consent <id> --purpose marketing
# Consentimentos do contato (vigente e histórico) e registro de um novo (origem api).
# Sobre uma recusa do contato: consent_opted_out (409), nada é gravado.
botozap contacts consents <id>
botozap contacts record-consent <id> --channel whatsapp --purpose marketing --state granted --evidence "site"
# Palavras de saída/volta e textos de confirmação do Cliente (sem lista padrão):
botozap customers update <id> --opt-out-keyword sair --opt-out-keyword parar \
  --opt-in-keyword voltar --opt-out-confirmation "Pronto, sem mais mensagens."
# Botões de resposta rápida do template que são de saída (o toque grava a recusa):
botozap templates update <id> --opt-out-button "Sair"
# Editar o conteúdo (volta para análise da Meta) e excluir (sem volta):
botozap templates update <id> --components novo.json [--category UTILITY]
botozap templates delete <id> --yes
# Status parado (ex.: PENDING muito depois do normal)? Traz o estado real da Meta:
botozap templates sync                      # --customer-id <id> limita a um cliente
# Excluir conversa: SEM VOLTA (mensagens, notas, vínculos e mídia; o contato fica).
# Só Administrador; pede confirmação (use --yes fora de um terminal).
botozap conversations delete <id>

# "Digitando…" enquanto prepara a resposta (só com mensagem recebida e janela aberta;
# repetir em menos de 20 s não chama a Meta de novo) e marcar como lida (tiques azuis):
botozap conversations typing <id>
botozap conversations read <id>

# Responder citando uma mensagem da conversa (UUID ou wamid/mid; não vale em react)
botozap messages send --to 5511999999999 --text "Combinado!" --reply-to <message_id>
# Mensagem de voz (só audio, WhatsApp; arquivo .ogg com Opus mono)
botozap messages send-media --to 5511999999999 --type audio --link https://cdn.exemplo.com/oi.ogg --voice

# Modelos prontos de Régua (os mesmos da galeria de Automações) e ligar um no Cliente
botozap journeys catalog
botozap journeys enable-model boas_vindas --customer-id <id> [--phone-number-id <id>]

# Diagnóstico do agente de IA (o mesmo do painel; só lê, sem custo)
botozap ai agents diagnostic --input-file diag.json   # {"customer_id":"…","id":"…"}

# Configurações do número do WhatsApp (direto na Meta; sem sandbox)
botozap numbers profile get <id>
botozap numbers profile update <id> --about "Atendemos de segunda a sábado" --website https://loja.com.br
botozap numbers profile photo <id> logo.png      # JPG ou PNG até 4 MB
botozap numbers prompts update <id> --prompt "Ver horários" --command "cardapio=Receber o cardápio"
botozap numbers qr create <id> --message "Oi! Vi o cartaz na loja." --format SVG
botozap numbers qr delete <id> <code>            # sem volta; pede confirmação (--yes)
botozap numbers blocked block <id> --contact-id <uuid>   # só quem escreveu nas últimas 24 h
botozap numbers blocked unblock <id> <wa_id>

# Conversas antigas do app WhatsApp Business (número em coexistência, logo depois de conectar)
botozap numbers history-import get <id>
botozap numbers history-import set <id> --days 180   # 0, 30 ou 180; uma vez por conexão

# Exportação de dados (exports:read / exports:write) e registro de atividades (team:read)
botozap exports create --customer-id <id> --format csv
botozap exports get <exportId>
botozap team-events list --action export.requested --since 2026-10-01

# Ingerir mídia por URL (WhatsApp: sobe para a Meta pelo Número; não envia mensagem)
botozap media ingest --phone-number-id <id> --source https://exemplo.com/foto.jpg

# Clientes (offset). A coluna SUSPENSO marca o Cliente acima do teto do Free
# (1 negócio): recebe, mas não envia (402 free_cap). No Free, criar o 2º Cliente
# também responde 402 free_cap.
botozap customers list --page 1 --per-page 25
botozap customers create --name "Acme LTDA" --external-customer-id acme-001

# Setup links de um cliente
botozap setup-links list --customer <customerId>
botozap setup-links create --customer <customerId> \
  --success-redirect-url "https://seu-app.com/whatsapp/ok" \
  --failure-redirect-url "https://seu-app.com/whatsapp/erro"
# Redirects só em estado final: concluído → success (status=completed); link
# esgotado → failure (status=failed); cliente volta num erro recuperável →
# failure (status=cancelled, o link segue válido). Todo destino recebe
# setup_link_id; URLs https, sem usuário/senha, até 2048 caracteres.

# Link do Instagram (um canal por link; padrão whatsapp). O cliente confirma que
# a conta é profissional e que as mensagens estão liberadas e entra com o
# Instagram. --connection-types não vale aqui (422 invalid_connection_types).
botozap setup-links create --customer <customerId> --channel instagram \
  --success-redirect-url "https://seu-app.com/instagram/ok"

# Números, rótulo local e saúde. A coluna SUSPENSO marca o número acima do teto
# do Free (1 número), ou de um Cliente suspenso: recebe, mas não envia
# (402 free_number_cap ou free_cap). Assine ou desconecte o outro número.
botozap numbers list
botozap numbers update <id> --label "Recepção"   # --clear-label remove
botozap numbers health <phoneNumberId>
# Mensagens pararam de chegar com a autorização valendo (checks.webhook_subscription
# "missing"): inscreve o BotoZap de novo na Meta, sem refazer a conexão.
botozap numbers resubscribe-webhooks <phoneNumberId>

# Custo aproximado da Meta (custo ausente aparece como "indisponível", nunca 0)
botozap usage meta-costs --customer-id <customerId> --from 2026-09-01 --to 2026-09-25

# Plano e slots adicionais (só chave de API; scopes billing:read / billing:write).
# O plano pago inclui 1 negócio; cada negócio a mais ocupa um slot de R$ 47/mês.
botozap billing
# Compra um slot vazio (gera cobrança). A mesma --idempotency-key devolve o mesmo
# slot em vez de comprar outro. Recusas: plan_required (assine o plano),
# slot_limit (pague uma fatura em aberto), billing_customer_required (fale com o suporte).
botozap billing slots create --idempotency-key compra-2026-10-17
# Cancela um slot vazio, sem reembolso (ocupado: slot_in_use, desconecte o negócio antes).
botozap billing slots cancel <slotId>

# Templates (componentes via arquivo JSON)
botozap templates create --name boas_vindas --language pt_BR \
  --category UTILITY --components ./components.json

# Webhooks (eventos válidos: messages, statuses, crm, account, app_messages (opt-in); secret: 16–256 caracteres)
botozap webhooks create --url https://meu.app/webhook \
  --events messages,statuses --secret troque-por-um-segredo-longo
# Só entregas de um cliente; --clear-customer volta a receber de toda a conta
botozap webhooks update <id> --customer-id <customerId>
# Só eventos de alguns canais (ids de `channel-accounts list`, 1 a 100;
# repetível ou separado por vírgula). Omitido no create = todos os canais.
botozap webhooks create --url https://meu.app/webhook --events messages \
  --channel-account-id <canalA> --channel-account-id <canalB>
botozap webhooks update <id> --channel-account-id <canalA>,<canalB>   # substitui a lista
botozap webhooks update <id> --all-channels                           # volta a todos
# get mostra os canais (todos | lista | nenhum) e a saúde por canal: só canais
# com falha, com falhas seguidas, próxima tentativa e pausa. Um canal pausado
# (15ª falha) não para os outros; health_status do webhook resume o pior canal.
# Na listagem, CANAIS e SAÚDE ("degraded (1 canal com falha)").
botozap webhooks get <id>
botozap webhooks test <id>

# Entregas e logs
botozap deliveries list --status failed
botozap deliveries list --status failed --channel-account-id <id-do-canal>
# reenvia uma entrega esgotada (exhausted) ou cortada pelo limite (limited), como o Reenviar do painel
botozap deliveries list --status exhausted
botozap deliveries replay <id-da-entrega>
botozap logs list --status-code 500
```

## 错误的悲剧

API 我们O信封 `{ "error": { "code", "message" } }`CLI 允许 a `message` 没有 **标准** e sai com (英语) **科迪戈1号**数字 :

```
Erro [authentication_error]: Chave de API inválida ou expirada.
```

数字 `429 rate_limited`,一个CLI 英亩centao `Retry-After` (单位:千美元) `X-RateLimit-*`, (中文(简体) ), (原始内容存档于2018-09-25) (英语). squando senters) à mensagem (spere sesse antes de reenviar.

{\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}一个CLI mostra o código {\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}我需要你帮忙 da Meta junto da mensagem: (原始内容存档于2018-09-29)

```
Erro [meta_error]: <mensagem da API> — código da Meta: 131026
```

科姆语 `-o json`,错误的 saem **无阶梯** (sdout fica limpo para ) (英语: 管子: `{ "error": { "code", "message", "status", "meta_code"?, "rate_limit"? } }`O 退出 代码 e **1个** para qulquer 错误 (`0` - 不,不,不,不 `code` 做JSON,não pelo 退出代码.

## 埃斯特鲁拉

```
src/
  index.ts            # entrada (bin), parsing com commander, tratamento de erro
  client.ts           # resolve config e instancia `BotoZap` de @botozap/sdk
  config.ts           # leitura/escrita de ~/.botozap/cli/config.json + resolução
  output.ts           # formatação human/json (tabelas, detalhes, paginação)
  commands/*.ts        # um arquivo por recurso
```

## 德森沃尔维门托

```bash
pnpm --filter @botozap/cli typecheck   # tsc --noEmit
pnpm --filter @botozap/cli test        # vitest
pnpm --filter @botozap/cli build       # tsc -> dist/
node packages/cli/dist/index.js --help
```

## Atendimento,客户关系管理电子议程

指挥官: `saved-replies`, (中文(简体) ), `inbox-tools`, (中文(简体) ), `opportunities`, (中文(简体) ), `demands`, (中文(简体) ), `radar`, (中文(简体) ), `journeys`, (中文(简体) ), `appointments`, (中文(简体) ), `calendar`, (中文(简体) ), `assignments`, (中文(简体) ), `contact-stages` 电子 `contact-fields`CAS e em. 卡达分公司 `--help`; os campos e (英语) filtros são lidos de (法语) `--input-file arquivo.json`启用 `-o json` 段落脚本. O arquivo mantém listas, objetos, 无效的 e 时标 prittisos sem slem 逃出外壳.

```sh
botozap saved-replies list --input-file filtros.json -o json
botozap opportunities create --input-file oportunidade.json -o json
botozap appointments availability --input-file disponibilidade.json -o json
```

[Contotos e exemplos dos arquivos JSON (英语)](https://github.com/bytecraft-fernando/botozap-js/blob/main/docs/attendance-release.md)。 。 。 .

(英文) IA usa exclusionamente credenciais próprias (BYOK): SDK (英语) `client.ai`,CLI 数据 `botozap ai` e- ferramentas MCP `ai_*`代理版本多斯, 验证器, Credenciais, conhecimento, 记忆、技能、跟随、转接、接力, avisos, propostas de aprendizado e comerciais, control de acesso (elegibilidade), (意大利语), 女演员、女演员、模特儿、女演员、女演员 范围 `agents:read/write`; aprovação exige chave criada por ; 翻译 : (原始内容存档于2018-10-21). owners/admin aninda autorizado. (原始内容存档于2018-09-29). Prévia não envia WhatsApp. 圣母领报社 {\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你来帮帮帮忙 {\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你来帮帮帮忙. [Contotos e 实例 IA](https://github.com/bytecraft-fernando/botozap-js/blob/main/docs/ai.md)。 。 。 .

## (原始内容存档于2018-09-21). Instagram-onda 2

科门塔里奥岛 `dm_button_title`, (中文(简体) ), `delivery_text` 电子 `delivery_media`。 。 。 . 男士(男士)`message-rules:read/write`(三); 国家科学院 `from`编号 :`to` (单位:千美元)`comment-rules:read`) (中文(简体) ). [Controto e exemplos de SDK, CLI e MCP 相向](https://npmcn.com/package/docs/instagram-wave-two.md)。 。 。 .

### 缩写: Conexão, QR 或 seguidores

```sh
botozap channel-accounts connection get CONTA
botozap channel-accounts connection resubscribe CONTA
botozap channel-accounts connection disconnect CONTA
botozap channel-accounts message-rules qr CONTA REGRA --out campanha.png --format png
botozap channel-accounts message-rules qr CONTA REGRA --out campanha.svg --format svg
botozap channel-accounts comment-rules update CONTA REGRA --live true
botozap channel-accounts comment-rules update CONTA REGRA --require-follow true --non-follower-text 'Siga a conta e toque de novo'
botozap channel-accounts message-rules update CONTA REGRA --require-follow false --clear-non-follower-text
botozap contacts list --follows-business true
botozap conversations list --follows-business false
```

Conexão exige chave live e pissès (英语). 克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克 `numbers:read`编号 :`numbers:write`一种无痛药 QR 任务 `message-rules:read`, (中文(简体) ), `--out` (原始内容存档于2019-10-21) (英语). e usa PNG por por paderão. `--live true|false` 国家保护协会 `422 feature_unavailable`。 。 。 . `--require-follow true|false`, (中文(简体) ), `--non-follower-text` 电子 `--clear-non-follower-text` 国家妇女委员会 Nas regras de mensagem, essas旗补充了JSON字体; Campos duplicados content JSON e são recusados。 Nas de commentário,使用campos ou uma fonte JSON,como nos demais campos. 中国植物物种信息数据库.

### 国际印第安人协会

```sh
botozap channel-accounts comment-ai get CONTA
botozap channel-accounts comment-ai set CONTA --enabled true --agent AGENTE --daily-limit 50
botozap channel-accounts comment-ai runs CONTA --page 1 --per-page 30 -o json
botozap channel-accounts comment-ai set CONTA --enabled false
botozap channel-accounts comment-ai set CONTA --agent null
```

请使用 o UUID interno da Conta de Canal 。 获取/运行Exigem `agents:read`; 设置外观 `agents:write` e plano com IA, exceto quando somente desliga. 中国植物物种信息数据库. 沙盒; PATCH 没有OAuth e exclusivo做苦艾酒。 Ativar reposte repostas públicas e DMs 存档副本 自动操作。 以众旗为羡慕; `--agent null` 跛脚一 (原始内容存档于2019-10-21). seleção quando desligada. O Limite aceita inteiros de 1 a 200 e renova no dia de `America/Sao_Paulo`. 保留保留地 (包括incertas, pré-requisitos; 运行 inclui decisão, motivo legível) (包含 incertas, pré-requisitos; 运行在 dicisão, motivo legível (原始内容存档于2018-10-21) (英语). estado dos envios.

## 常见问题

### @botozap/cli 是什么？

CLI dev-first para a API pública do BotoZap \(WhatsApp Cloud API多租户\)\.

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

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

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

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

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

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

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

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

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

@botozap/cli 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

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

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

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

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

