# Broadcast

Multi-platform social syndication CLI: post text and media to X, LinkedIn, Bluesky, and...

- Repository: https://github.com/danielmiessler/LifeOS (19669 stars)
- Category: Marketing
- License: MIT
- Last updated: 2026-10-28
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add danielmiessler/LifeOS --skill Broadcast -g -a claude-code -y`
Codex: `npx skills add danielmiessler/LifeOS --skill Broadcast -g -a codex -y`
Cursor: `npx skills add danielmiessler/LifeOS --skill Broadcast -g -a cursor -y`
Gemini CLI: `npx skills add danielmiessler/LifeOS --skill Broadcast -g -a gemini-cli -y`

## Description

Multi-platform social syndication CLI: post text and media to X, LinkedIn, Bluesky, and Instagram from one command, with per-platform limits, --dry-run, status checks; also X Articles, podcast episodes to Omny, newsletter shares. USE WHEN broadcast, post to social media, cross-post, post to all, syndicate, publish to all platforms, post to Instagram, check platform status, post this everywhere, share the newsletter, edition share card, newsletter share card, sponsor thank-you in the share. NOT FOR writing the copy itself, X-only ops (X), Substack.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Broadcast Skill

**Contents:** Ideal State · Intent Routing · Platforms · Data & Config · Gotchas · Examples

Posts to X/Twitter, LinkedIn, Bluesky and Instagram from one command, and also publishes X Articles, podcast episodes to Omny Studio and newsletter share posts. It checks each platform's character and media limits before sending, previews with `--dry-run`, and reports per-platform status. Auth is per platform (table under Platforms; first-time setup in `Setup.md`, day-two auth in `Intents/Auth.md`). X posting runs through the public `X` skill's tools and its OAuth 2.0 token store. This skill posts; it does not write the copy, which comes from a copywriting skill or the principal first.

## Ideal State

- A broadcast reaches every platform the principal named, and "all channels", "everywhere", "all three" or "all four" means all four; a platform that fails or is skipped is reported with its reason while the rest still post.
- Each platform gets text that fits its own limit and format before anything is sent: X text is weighed and never sliced, and styled LinkedIn text goes in a run of its own.
- When the principal hands over written prose, their words go out verbatim with only platform markup added; drafting new copy belongs to a copywriting skill.
- A cross-post of the principal's latest X post ("put my latest tweet on LinkedIn and Insta") carries that post's exact text and media, read back from X with `X/Tools/read.ts`, with t.co links expanded to their real URLs and nothing added beyond LinkedIn styling.
- Nothing public goes out unpreviewed: a `--dry-run` comes first, irreversible publishes (an X Article, a live podcast episode) wait for confirmation, and success is reported from what the platform returned (post links, X `expanded_url` matching the canonical URL, a verified Omny publish).

## Intent Routing

The rest: https://github.com/danielmiessler/LifeOS/blob/HEAD/LifeOS/install/skills/Broadcast/SKILL.md
