DunSocial CLI
Verwende die dun-Binary aus dem npm-Paket dunsocial.
npm install -g dunsocial
npx dunsocial …
Bevorzuge --json bei jedem Befehl, damit die Ausgabe maschinenlesbar ist.
Remote-Hosts (ChatGPT Web, Claude Web) verwenden weiterhin DunSocial MCP. Diese CLI ist für lokale Agenten, Terminals und CI gedacht.
Env-Vars überschreiben ~/.config/dunsocial/config.json.
Einrichtung
Immer: Authentifizieren → Workspace auswählen → verifizieren → Accounts auflisten → handeln.
Erfinde keine Social-Account-IDs. Behandle drafts create nicht als erfolgreiche Veröffentlichung.
Interaktive Authentifizierung
Browser-Zustimmung unter app.dunsocial.com/cli/authorize:
dun auth login
Headless-Authentifizierung (CI)
Erstelle einen PAT (Personal Access Token) in der App unter Einstellungen → CLI (dun_pat_…), dann:
export DUN_TOKEN="dun_pat_…"
export DUN_API_URL=https://api.dunsocial.com
DUN_API_URL ist optional (Standard: Produktion).
PAT-Regeln:
- An einen Workspace gebunden; fehlender Scope → Exit
3/ Forbidden - Kann keine anderen Tokens, Abrechnungen oder Teams verwalten
- PATs sind Browser-Session-Tokens in CI vorzuziehen
Workspace
Interaktiv:
dun workspace list --json
dun workspace use <id-oder-slug> --json
Headless (erforderlich mit PAT):
export DUN_WORKSPACE_ID="…"
Verifizieren
dun auth status --json
dun workspace current --json
Erkennungsreihenfolge
dun auth status --jsondun workspace current --json(oderlist+use)dun accounts list --json– Social-Account-IDs erfassen- Handeln (planen / veröffentlichen / entwerfen / Medien / Speicher)
Beitrag planen
dun posts schedule \
--text "Vom DunSocial CLI aus versendet." \
--accounts acc_x,acc_li \
--in 1h \
--json
Absolute Zeit: --at 2026-06-01T09:00:00Z.
Jetzt veröffentlichen
dun posts publish --text "Hallo von dun" --accounts acc_x --json
Medien
Zuerst hochladen, dann die zurückgegebene Asset-ID anhängen:
dun media upload ./shot.png --alt "Produktscreenshot" --json
dun posts schedule --text "…" --accounts acc_x --media <assetId> --in 30m --json
Entwürfe, Speicher, Threads
dun drafts create --text "WIP" --platforms x,linkedin --json
dun memory collections list --json
dun memory save --collection <id> --text "…" --json
dun memory search --prompt "…" --collections <id> --json
Thread-Datei-Format: [{"content":"1"},{"content":"2"}]
dun posts schedule-thread --account acc_x --file ./thread.json --in 2h --json
Zerstörende Operationen
Erfordern --yes (oder CI=1) für delete.
Exit-Codes
| Code | Bedeutung |
|---|---|
| 0 | OK |
| 1 | Verwendung |
| 2 | Authentifizierung |
| 3 | Verboten / fehlender Scope |
| 4 | Validierung |
| 5 | Nicht gefunden |
| 6 | Ratenbegrenzung |
| 7 | Netzwerk |
Fehler-JSON:
{
"ok": false,
"error": {
"code": "validation",
"message": "…",
"details": null
}
}
Fallstricke
- Ein Workspace wird benötigt:
workspace use,--workspaceoderDUN_WORKSPACE_ID --accountserwartet DunSocial-Social-Account-IDs, keine Handles- Lokale Dateien zuerst mit
media uploadhochladen, dann anhängen - Plattformspezifische Optionen:
--meta '{"reddit":{…}}'falls erforderlich - MCP-OAuth- und CLI-Tokens sind unterschiedliche Systeme
Hilfe
dun --help
dun posts --help