CLI DunSocial
Use o binário dun do pacote npm dunsocial.
npm install -g dunsocial
npx dunsocial …
Prefira --json em todos os comandos para que a saída seja analisável por máquina.
Hosts remotos (ChatGPT web, Claude web) continuam usando o MCP do DunSocial. Esta CLI é para agentes locais, terminais e CI.
Variáveis de ambiente substituem ~/.config/dunsocial/config.json.
Configuração
Sempre: autenticar → selecionar workspace → verificar → listar contas → agir.
Não invente IDs de contas sociais. Não trate drafts create como uma publicação bem-sucedida.
Autenticação interativa
Aprovação no navegador em app.dunsocial.com/cli/authorize:
dun auth login
Autenticação headless (CI)
Crie um PAT no aplicativo em Configurações → CLI (dun_pat_…), depois:
export DUN_TOKEN="dun_pat_…"
export DUN_API_URL=https://api.dunsocial.com
DUN_API_URL é opcional (padrão é produção).
Regras do PAT:
- Vinculado a um workspace; escopo ausente → saída
3/ proibido - Não pode gerenciar outros tokens, cobrança ou equipe
- Prefira PAT em vez de tokens de sessão de navegador em CI
Workspace
Interativo:
dun workspace list --json
dun workspace use <id-or-slug> --json
Headless (obrigatório com PAT):
export DUN_WORKSPACE_ID="…"
Verificar
dun auth status --json
dun workspace current --json
Ordem de descoberta
dun auth status --jsondun workspace current --json(oulist+use)dun accounts list --json— capture os ids das contas sociais- Agir (agendar / publicar / rascunho / mídia / memória)
Agendar uma postagem
dun posts schedule \
--text "Enviado da CLI DunSocial." \
--accounts acc_x,acc_li \
--in 1h \
--json
Tempo absoluto: --at 2026-06-01T09:00:00Z.
Publicar agora
dun posts publish --text "Olá do dun" --accounts acc_x --json
Mídia
Faça upload primeiro, depois anexe o id do ativo retornado:
dun media upload ./shot.png --alt "Captura de tela do produto" --json
dun posts schedule --text "…" --accounts acc_x --media <assetId> --in 30m --json
Rascunhos, memória, threads
dun drafts create --text "Em andamento" --platforms x,linkedin --json
dun memory collections list --json
dun memory save --collection <id> --text "…" --json
dun memory search --prompt "…" --collections <id> --json
Formato do arquivo de thread: [{"content":"1"},{"content":"2"}]
dun posts schedule-thread --account acc_x --file ./thread.json --in 2h --json
Operações destrutivas
Exigem --yes (ou CI=1) para delete.
Códigos de saída
| Código | Significado |
|---|---|
| 0 | ok |
| 1 | uso |
| 2 | autenticação |
| 3 | proibido / escopo ausente |
| 4 | validação |
| 5 | não encontrado |
| 6 | limite de taxa |
| 7 | rede |
JSON de falha:
{
"ok": false,
"error": {
"code": "validation",
"message": "…",
"details": null
}
}
Armadilhas
- É necessário um workspace:
workspace use,--workspaceouDUN_WORKSPACE_ID --accountsespera ids de contas sociais do DunSocial, não handles- Faça upload de arquivos locais com
media uploadantes de anexar - Opções específicas da plataforma:
--meta '{"reddit":{…}}'quando necessário - OAuth MCP e tokens CLI são sistemas diferentes
Ajuda
dun --help
dun posts --help