CLI
Beiträge verwalten
Beiträge im Terminal erstellen, planen, auflisten, bearbeiten und löschen: Entwürfe, mehrere Netzwerke, Medien, Probeläufe und ein vollständiger JSON-Body.
Jeder Beitrag gehört zu einem Betrieb, deshalb übergibst du dessen ID mit -e. Du findest sie mit sofia establishments:list (siehe Konten).
Beitrag veröffentlichen
Ohne Datum wird der Beitrag sofort veröffentlicht.
sofia posts:create -e $ESTABLISHMENT_ID -p instagram -c "Tarte tatin du jour"Beitrag planen
Übergib mit -s, --date ein Datum im ISO-8601-Format.
sofia posts:create -e $ESTABLISHMENT_ID -p instagram -c "Brunch ce samedi" -s 2026-11-07T09:00:00ZEntwurf speichern
--draft speichert den Beitrag, ohne ihn zu veröffentlichen oder zu planen.
sofia posts:create -e $ESTABLISHMENT_ID -p instagram -c "Brunch ce samedi" --draftMehrere Netzwerke gleichzeitig
Nenne die Netzwerke durch Kommas getrennt in -p, --platforms. Jedes erhält denselben Text.
sofia posts:create -e $ESTABLISHMENT_ID -p instagram,facebook,linkedin -c "Tarte tatin du jour"Medien, Format und Konto gelten ebenfalls für alle. Diese Optionen prägen den Beitrag:
-c, --content: der Text des Beitrags.-f, --format: das Format (post,reel,story,carousel…).-a, --account: das verbundene Konto, von dem veröffentlicht wird.
Medien hinzufügen
-m, --media nimmt Medien-IDs aus deiner Mediathek oder https-Adressen, durch Kommas getrennt.
sofia posts:create -e $ESTABLISHMENT_ID -p instagram -c "Tarte tatin du jour" \
-m $MEDIA_ID,https://images.example.com/tarte-tatin.jpgBei einer Adresse ergibt sich der Typ aus der Endung: Video für mp4, mov, webm und m4v, sonst Bild. Zum vorherigen Hochladen siehe Medien.
Probelauf
--dry-run prüft den Beitrag gegen die Regeln jedes Netzwerks und veröffentlicht nichts. Siehe Probelauf.
sofia posts:create -e $ESTABLISHMENT_ID -p instagram -c "Tarte tatin du jour" --dry-runIdempotenz
Mit --idempotency-key lässt sich ein Befehl gefahrlos wiederholen: derselbe Schlüssel ergibt denselben Beitrag, nie zwei. Siehe Idempotenz.
sofia posts:create -e $ESTABLISHMENT_ID -p instagram -c "Tarte tatin du jour" \
--idempotency-key brunch-2026-11-07Vollständiger Body aus einer Datei
Für Text pro Netzwerk, mehrere Medien oder einen Zeitplan in einem Zug schreibst du den ganzen Body in eine Datei und übergibst ihn mit -j, --json. Er ersetzt die Inhaltsoptionen.
{
"establishmentId": "$ESTABLISHMENT_ID",
"targets": [
{
"platform": "instagram",
"text": "Tarte tatin du jour",
"media": [{ "id": "$MEDIA_ID" }],
"format": "post"
},
{
"platform": "tiktok",
"text": "Tarte tatin du jour",
"media": [{ "url": "https://images.example.com/tarte-tatin.mp4", "type": "video" }]
}
],
"scheduledAt": "2026-11-07T09:00:00Z",
"status": "scheduled"
}sofia posts:create --json post.jsonBeiträge auflisten
Filtere die Liste mit diesen Optionen. Die Antwort ist paginiert: siehe Paginierung.
-e, --establishment: nur dieser Betrieb.--status: nur Beiträge mit diesem Status.--fromund--to: ein Zeitraum.--created-by me|app: von dir selbst geschriebene Beiträge oder per API erstellte.--limitund--cursor: die Seitengröße und die Stelle zum Weitermachen.
sofia posts:list -e $ESTABLISHMENT_ID --status scheduled --from 2026-11-01 --to 2026-11-30 --limit 20Lesen, bearbeiten, löschen
posts:update ändert das Datum (-s), den Status (draft oder scheduled) oder mit -j den ganzen Body.
sofia posts:get $POST_ID
sofia posts:update $POST_ID -s 2026-11-08T09:00:00Z
sofia posts:update $POST_ID --status draft
sofia posts:delete $POST_IDMit jq skripten
Da die Ausgabe JSON ist, holt jq heraus, was du brauchst: IDs, Status, den Cursor der nächsten Seite.
sofia posts:list -e $ESTABLISHMENT_ID --status scheduled | jq '.data[] | {id, status}'
sofia posts:list -e $ESTABLISHMENT_ID | jq -r '.nextCursor'