Guide · Agent skill
How to use the Broadcast agent skill: post to X, LinkedIn, Bluesky and Instagram
Updated · written with AI from the project's own documentation and checked against our catalogue data
Broadcast is an agent skill, a folder of instructions and a bundled command-line tool that lets your AI agent publish to social platforms for you. It posts text and media to X, LinkedIn, Bluesky and Instagram from one request, and it can also publish X Articles, podcast episodes to Omny Studio and newsletter share posts. This guide explains what the skill does, how to install it, how to trigger it, what it needs, and what to check before anything goes live.
Quick start
- 1Download and unzip. Download the Broadcast ZIP and unzip it into ~/.claude/skills/ or a project's .claude/skills/ folder, or upload it under Settings → Capabilities → Skills in the Claude apps.
- 2Create your Config.md. Create LIFEOS/USER/CUSTOMIZATIONS/SKILLS/Broadcast/Config.md in your LifeOS directory, following the fields listed in Setup.md.
- 3Add platform credentials. Set up each platform you want, such as X via the X skill, LinkedIn and Bluesky tokens, and Instagram app credentials, following Setup.md.
- 4Run status. Run the status command to see which platforms are configured and whether their credentials work.
- 5Dry-run a test post. Run a post with --dry-run and check the preview before sending anything public.
- 6Broadcast for real. Ask the agent to post, with the text and media you prepared, and review the per-platform results.
What the Broadcast skill makes the agent do
Once installed, the agent can publish one post to several platforms at once, or to a single platform you name. Before sending, the skill checks each platform's character and media limits and can preview the post with a dry run. It can also check whether each platform's login still works and report success or failure for each platform separately.
The skill does not write the copy. The words come from you or from a separate copywriting skill, and Broadcast sends them out, adding only platform formatting such as LinkedIn styling.
- Posts to X/Twitter, LinkedIn, Bluesky and Instagram
- Publishes X Articles (long-form) and podcast episodes to Omny Studio
- Shares newsletter editions, including edition share cards
- Checks per-platform limits and reports status
Install the Broadcast skill
Download the Broadcast ZIP from this page. Unzip it into your personal skills folder, ~/.claude/skills/, or into a project's .claude/skills/ folder if you want the skill available only in that project. The folder should be named Broadcast so the skill can be found at ~/.claude/skills/Broadcast/.
If you use the Claude apps instead of a folder on disk, open Settings, go to Capabilities, then Skills, and upload the ZIP there.
- Option A: unzip into ~/.claude/skills/ (all projects)
- Option B: unzip into a project's .claude/skills/ (that project only)
- Option C: upload the ZIP in the Claude apps under Settings → Capabilities → Skills
Set up credentials for each platform
Setup is the hard part. Each platform needs its own developer app and credentials, and the skill does not work until the platforms you want are configured. Read Setup.md inside the skill folder for the full list of Config.md fields and each platform's account and secrets.
Account-bound settings go in a Config.md file inside your LifeOS directory, at LIFEOS/USER/CUSTOMIZATIONS/SKILLS/Broadcast/Config.md. Per-platform API key names are kept in ~/.claude/.env. LinkedIn, Bluesky and Instagram sessions are stored in ~/.broadcast/credentials.json. X uses the token store of the separate X skill, configured in that skill's own Config.md.
- X: OAuth 2.0 user token through the X skill
- LinkedIn: OAuth access token
- Bluesky: app password
- Instagram: app ID and secret from a Meta developer app (Instagram Login)
- Podcasts: Omny Studio API key
Check which platforms are configured
Run the status check before your first broadcast. It shows which platforms are configured and whether their credentials are working. Status checks report success or failure per platform, so you can see exactly which one needs attention.
bun ~/.claude/skills/Broadcast/src/index.ts statusTrigger the skill with natural requests
You do not need to type commands. Ask the agent in plain language and the skill's routing picks the right workflow. Phrases such as "broadcast", "post to all", "cross-post" and "syndicate" start a multi-platform post. Naming one platform, such as "post to Bluesky" or "post to Instagram", sends the post only there.
"All channels", "everywhere", "all three" and "all four" all mean every platform. Instagram needs an image or video, so include media whenever you have it. If a platform fails or is skipped, the others still post and the failure is reported with its reason.
- "Post this everywhere: [your text], image attached"
- "Put my latest tweet on LinkedIn and Instagram"
- "Post to Bluesky only: [your text]"
- "Check platform status"
Preview with a dry run before posting
Nothing public should go out unpreviewed. The skill runs a --dry-run first and shows a preview of how each platform will receive the text. A dry run sends nothing and needs no credentials for the check. The example below is the project's own test command: it runs a dry run for X only and should print a TWITTER preview box and "Dry run complete".
Drop --dry-run when the preview looks right. Success is reported from what each platform returns, such as post links.
- Text that is over a platform's limit is not sliced by the tool for X; X text is weighed and never cut
- Bluesky text over 300 characters is shortened before sending, with the link moved to the end
bun "${CLAUDE_CONFIG_DIR:-$HOME/.claude}/skills/Broadcast/src/index.ts" post --content "**Testing** my Broadcast setup" --platforms twitter --dry-runKnow the limits and media rules
Each platform has its own text limit and media rules. The skill applies these before sending. Media must be local file paths; remote URLs are rejected with "Media file not found". Supported image formats are JPG, JPEG, PNG, GIF and WebP, and video formats are MP4, MOV, AVI and WebM. Instagram converts images to JPEG automatically, but it requires media for every post and does not accept text-only posts.
- X: 280 weighted characters (URLs count as 23); up to 4 images or 1 video; images 5MB, video 512MB
- LinkedIn: 3,000 characters; up to 20 images; 1 video; images 8MB, video 500MB
- Bluesky: 300 characters; up to 4 images; 1 video; images 1MB, video 50MB
- Instagram: 2,200 characters; up to 10 images in a carousel or 1 Reel; images 8MB JPEG, video 300MB
Safety notes: scripts, network and public posts
This skill runs scripts and uses the network. It publishes to public accounts, so treat every live post as real. Irreversible actions such as X Articles and live podcast episodes depend on the agent following its confirmation step, so review those requests carefully before saying yes.
Keep credentials out of git. Post logs are written to LIFEOS/MEMORY/STATE/Broadcast-YYYY-MM-DD.jsonl under your LifeOS directory, outside the skill folder, so you can review what was sent.
- The skill runs scripts and makes network calls
- Public accounts can receive posts immediately
- Do not commit credentials to version control
- Tokens need periodic renewal; LinkedIn and Instagram have 60-day lifespans and the Setup guide covers scheduled renewal
Tips for reliable broadcasts
Write the copy first, in your own words or with a copywriting skill, then ask Broadcast to send it. If you have an image, attach it, so Instagram is included. When you cross-post your latest X post, the skill reads back its exact text and media and expands t.co links to their real URLs, so do not paste a different version.
If you turn on the house_style setting in Config.md, LinkedIn posts need a bold hook line or header lines, and hashtags are not used on Bluesky. Both settings are off by default.
- Run status before the first post and after a token problem
- Keep one clear dry run per change
- Ship an image whenever one exists
What people use it for
- Publish the same update with an image to X, LinkedIn, Bluesky and Instagram at once
- Cross-post your latest X post to LinkedIn and Instagram with its exact text and media
- Share a newsletter edition on LinkedIn, with an edition share card if configured
- Publish a podcast episode to Omny Studio
Frequently asked questions
Is the Broadcast skill free to use?
The skill is released under the MIT licence. The source does not state any price. You still need your own developer accounts and credentials for each platform you post to.
What do I need to install the Broadcast skill?
You need the Bun runtime to run the TypeScript command-line tool, plus credentials for each platform you want to use. You also need a LifeOS directory with a Config.md file, and local media files for posts.
How do I install the Broadcast agent skill?
Download the ZIP from the skill page and unzip it into ~/.claude/skills/ for all projects, or into a project's .claude/skills/ folder. You can also upload the ZIP in the Claude apps under Settings → Capabilities → Skills.
Can Broadcast post without my approval?
It can publish automatically, but the skill is designed to preview with --dry-run first and to wait for confirmation before irreversible actions such as X Articles and live podcast episodes. It is not suitable if you want posts to go out with no review.
Why does my post fail on Instagram?
Instagram requires at least one image or video and does not accept text-only posts. Images must be JPEG, which the skill converts automatically, and media must be local files, since remote URLs are rejected with "Media file not found".
Does Broadcast write my posts for me, and how does it compare to the X skill?
No. Broadcast sends text you or a copywriting skill has written. For X-only operations, the separate X skill is the right tool, and the source notes that Substack is not covered by Broadcast.
New agent skills, repos and AI tools — every week
The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.
Our verdict
Broadcast suits creators, founders and newsletter writers who already have developer credentials for X, LinkedIn, Bluesky or Instagram and want one request to publish everywhere with a preview first. It is a poor fit if you do not want to set up developer apps and API keys, or if you want fully automatic posting with no review step.
Download the skill