DunSocial CLI
使用 npm 包 dunsocial 中的 dun 二进制文件。
npm install -g dunsocial
npx dunsocial …
建议在每个命令上使用 --json 以便输出为机器可解析格式。
远程主机(ChatGPT 网页版、Claude 网页版)仍使用 DunSocial MCP。此 CLI 适用于本地代理、终端和 CI。
环境变量可覆盖 ~/.config/dunsocial/config.json。
设置
始终:认证 → 选择工作区 → 验证 → 列出账户 → 执行操作。
不要自行发明社交账户 ID。不要将 drafts create 视为成功发布。
交互式认证
在浏览器中批准 app.dunsocial.com/cli/authorize:
dun auth login
无头认证(CI)
在应用中的 设置 → CLI 创建一个 PAT(dun_pat_…),然后:
export DUN_TOKEN="dun_pat_…"
export DUN_API_URL=https://api.dunsocial.com
DUN_API_URL 可选(默认为生产环境)。
PAT 规则:
- 绑定到单个工作区;缺少作用域 → 退出代码
3/ 禁止访问 - 不能管理其他令牌、计费或团队
- 在 CI 中优先使用 PAT 而非浏览器会话令牌
工作区
交互式:
dun workspace list --json
dun workspace use <id-or-slug> --json
无头(使用 PAT 时必须):
export DUN_WORKSPACE_ID="…"
验证
dun auth status --json
dun workspace current --json
发现顺序
dun auth status --jsondun workspace current --json(或list+use)dun accounts list --json— 捕获社交账户 id- 执行操作(排期/发布/草稿/媒体/记忆)
排期帖子
dun posts schedule \
--text "从 DunSocial CLI 发布。" \
--accounts acc_x,acc_li \
--in 1h \
--json
绝对时间:--at 2026-06-01T09:00:00Z。
立即发布
dun posts publish --text "来自 dun 的问候" --accounts acc_x --json
媒体
先上传,然后附加返回的资源 ID:
dun media upload ./shot.png --alt "产品截图" --json
dun posts schedule --text "…" --accounts acc_x --media <assetId> --in 30m --json
草稿、记忆、线程
dun drafts create --text "进行中" --platforms x,linkedin --json
dun memory collections list --json
dun memory save --collection <id> --text "…" --json
dun memory search --prompt "…" --collections <id> --json
线程文件格式:[{"content":"1"},{"content":"2"}]
dun posts schedule-thread --account acc_x --file ./thread.json --in 2h --json
破坏性操作
删除操作需要 --yes(或 CI=1)。
退出码
| 代码 | 含义 |
|---|---|
| 0 | 成功 |
| 1 | 用法错误 |
| 2 | 认证错误 |
| 3 | 禁止访问/缺少作用域 |
| 4 | 校验错误 |
| 5 | 未找到 |
| 6 | 速率限制 |
| 7 | 网络错误 |
失败 JSON:
{
"ok": false,
"error": {
"code": "validation",
"message": "…",
"details": null
}
}
常见陷阱
- 需要指定工作区:
workspace use、--workspace或DUN_WORKSPACE_ID --accounts参数需要 DunSocial 社交账户 id,而非用户名- 上传本地文件前先用
media upload上传 - 平台特定选项:必要时使用
--meta '{"reddit":{…}}' - MCP OAuth 和 CLI 令牌是不同的系统
帮助
dun --help
dun posts --help