How to post to LinkedIn from Claude Code
claude mcp add --transport http postwire https://postwire.io/api/mcp, sign in with your email, connect your LinkedIn profile once, and ask "post this on my LinkedIn". Claude Code writes the post with generate_posts (the hook in the first 210 characters, the link in the first comment), shows it to you, and publishes it with post_to_social or schedules it with schedule_post. It posts to your personal LinkedIn profile through LinkedIn's official API, and the free plan covers it: 1 business, 20 posts a month, 5 AI drafts a day, 2 networks per post, no card.The same works without the MCP server: npx skills add https://postwire.io --skill linkedin-post installs PostWire's LinkedIn skill, which calls the REST API with your key. Either way Claude Code never sees your LinkedIn password, and a scheduled post goes out from PostWire's servers with your terminal closed.
Updated . Written from PostWire's own code; vendor prices read on Oct 15, 2026. Live networks: TikTok, Instagram, YouTube, LinkedIn (personal profiles), Facebook Pages, Bluesky, Mastodon, Telegram, Discord, and X on paid plans.
Set it up and post, step by step
Prompt to copy once LinkedIn is connected: Read CHANGELOG.md, write a LinkedIn post about what we shipped this week, show it to me, and schedule it for Tuesday at 8:30 my time.
- Add PostWire to Claude Code
In your terminal run
claude mcp add --transport http postwire https://postwire.io/api/mcp(add--scope userto have it in every project), then type/mcpin Claude Code and pick postwire to sign in. The sign-in asks for your email and a 6-digit code, which also creates a free PostWire account if you have none: no password and no card. - Or install the LinkedIn skill instead
npx skills add https://postwire.io --skill linkedin-postadds the skill to Claude Code (and to the other agents on the machine). It uses your key from the environment: copy it in the dashboard under API & MCP and setPOSTWIRE_API_KEY. The skill is a plain file you can read first: linkedin-post/SKILL.md. - Connect your LinkedIn profile
Ask "connect my LinkedIn". Claude Code calls
create_connect_linkand prints a link; open it, sign in on LinkedIn's own page and press Allow. PostWire asks LinkedIn only for permission to post as you (w_member_social), plus your name and photo to show which profile is connected. - Ask for the post
"Write a LinkedIn post about the bug we fixed today."
generate_postsreturns a draft and publishes nothing. It is written for LinkedIn: first person, the hook in the first 210 characters (about two lines, what the feed shows before "see more"), short paragraphs, up to 3 hashtags at the end and a question to close. A link goes in the first comment, not in the body, where LinkedIn shows it less. Claude Code can read files in your repo for the facts, and you ask for changes in plain words. - Add images or a PDF carousel, if you want them
Up to 20 images in one post, or one PDF (or PowerPoint or Word file) on its own, which LinkedIn shows as a document you swipe through. Give Claude Code a public https link, or ask for an upload page (
create_upload_link, valid 24 hours) and pick the files there. - Publish now, or schedule it
Say "post it" and Claude Code calls
post_to_social; the result carries the link to the live post and the first comment's status. Say "schedule it for Tuesday at 8:30" and it callsschedule_post, up to 365 days ahead, or withrun_at: "next_slot"for your next free posting hour. This is the call:{ "name": "schedule_post", "arguments": { "platforms": ["linkedin"], "per_platform": { "linkedin": { "text": "We cut our CI time from 9 minutes to 2.\n\nThe fix was not a faster runner. …", "first_comment": "The full write-up: https://example.com/blog/ci-in-2-minutes" } }, "run_at": "2026-10-20T08:30:00-05:00" } }
"What's scheduled on LinkedIn?" calls list_scheduled_posts and "cancel Tuesday's post" calls cancel_scheduled_post; the same queue is on the dashboard's Queue page. Prefer to set it up by hand first? Open the dashboard, connect the account under Accounts and copy your key under API & MCP.
Ways to post to LinkedIn from Claude Code, side by side
How each service plugs into Claude Code and what it costs to start, read on its own Claude Code and pricing pages on Oct 15, 2026.
| Service | How it plugs into Claude Code | Sign-in | Free to start | Cheapest paid plan | Writes the LinkedIn post |
|---|---|---|---|---|---|
| PostWire | claude mcp add with https://postwire.io/api/mcp, or the linkedin-post skill | OAuth (email and a 6-digit code) or API key | Free plan: 1 business, 20 posts a month, 5 AI drafts a day, 2 networks per post, no card | $9/mo — 3 businesses, every network in each post | Yes — generate_posts writes it with LinkedIn's rules and puts the link in the first comment |
| Postiz | claude mcp add with mcp.postiz.com/mcp-oauth-dynamic, or the Postiz skill | OAuth (MCP) or POSTIZ_API_KEY (skill) | 7-day free trial | $29/mo — 5 channels | Not listed |
| Upload-Post | npx skills add Upload-Post/upload-post-skill | API key | Free plan: 10 uploads a month | $24/mo — 5 profiles | Not listed |
Checked on Oct 15, 2026 (2026-10-15) on each vendor's own pricing or docs page, linked in the first column and below. Monthly billing in USD unless noted. "Not listed" means we could not find it on their page, not that it is missing.
Where PostWire is ahead
- The post is written for LinkedIn:
generate_postsputs the hook in the first 210 characters, keeps the link out of the body and in the first comment, and writes every other network's version from the same idea in the same request. - 20 posts a month on the free plan, without a card and without a time limit. Postiz starts with a 7-day trial, and Upload-Post's free plan has 10 uploads a month.
- The cheapest paid plan here: $9 a month for 3 businesses. Upload-Post $24, Postiz $29.
- Both doors, one account: the MCP server for a chat, the
linkedin-postskill or the REST API for a script, with the same queue and the same connected profile. - The next free slot: "put it in my next free slot" queues the post in your next open weekly posting hour.
- A person approves what Claude Code queued: on paid plans, approval rules hold the post until you approve it from an emailed link.
- Postiz — Post to LinkedIn from Claude Code (claude mcp add … https://mcp.postiz.com/mcp-oauth-dynamic, OAuth with no API key, or the Postiz skill with POSTIZ_API_KEY): postiz.com/claude-code/linkedin
- Postiz pricing ("Start with a 7-day free trial"; Standard $29 a month, 5 channels): postiz.com/pricing
- Upload-Post — LinkedIn skill for Claude Code (npx skills add Upload-Post/upload-post-skill; free API key, no card): www.upload-post.com/skills/claude-code/linkedin/
- Upload-Post plans (llms-full.txt: Free 10 uploads a month, without TikTok; Basic $24 a month, 5 profiles): www.upload-post.com/llms-full.txt
Why post from Claude Code and not from the LinkedIn app
- The facts are already in your repo: release notes, a changelog, a README or a benchmark. Claude Code reads them and writes the post from what actually shipped.
- One request, several networks: "post this on LinkedIn and Bluesky" gets each network its own text from
generate_posts. On the free plan one post reaches 2 networks; paid plans (from $9 a month) send it to all of them. - Scripts and hooks:
claude -p "write and schedule a LinkedIn post about the release in CHANGELOG.md" --allowedTools "mcp__postwire__*"runs the same thing without a chat, for a release script. - A person can have the last word: on paid plans, a brand's approval rules hold what Claude Code queues until you approve it from an emailed link. Claude Code cannot approve its own post.
Source: PostWire's MCP server, LinkedIn integration and plans, read Oct 15, 2026.
LinkedIn's rules Claude Code works within
- Up to 3,000 characters in the post and 1,250 in the first comment. If the first comment fails, the post stays published and the comment is retried.
- Images or a document, not both: 1 to 20 images, or one PDF, PowerPoint or Word file on its own.
- Your personal profile, through LinkedIn's official API and the permission you grant on LinkedIn's own page. No browser automation, which LinkedIn restricts accounts for.
What it does not do
PostWire posts to personal LinkedIn profiles. It does not post to company pages, it does not upload video to LinkedIn, and it does not read or answer comments or messages. To post a video, send it to TikTok, Instagram or YouTube in the same request.
Questions people ask
Can Claude Code post to LinkedIn?
Yes, with an MCP server or a skill. Claude Code has no LinkedIn access of its own; with PostWire added (claude mcp add --transport http postwire https://postwire.io/api/mcp) and your LinkedIn profile connected once, it writes, publishes and schedules posts on your profile when you ask.
Do I need a LinkedIn developer app or API key?
No. PostWire's own LinkedIn app does the posting: you sign in on LinkedIn's own page and allow PostWire to post as you. The only key involved is PostWire's, and with the MCP server you sign in with your email instead.
Can Claude Code schedule LinkedIn posts?
Yes. It calls schedule_post with a time up to 365 days ahead, or "next_slot" for your next free posting hour, and PostWire publishes the post at that time with Claude Code closed. The free plan keeps 3 posts waiting at once; paid plans have no such limit.
Can it post to a LinkedIn company page?
No. PostWire posts to personal LinkedIn profiles. It can send the same idea to a Facebook Page, X, Bluesky or the other networks in the same request.
Can I post a PDF carousel or images?
Yes. One PDF, PowerPoint or Word file is posted as a LinkedIn document readers swipe through, or up to 20 images in one post. Video is not posted to LinkedIn.
Should I use the MCP server or the skill?
Use the MCP server if you talk to Claude Code and want to sign in with your email; use the linkedin-post skill (npx skills add https://postwire.io --skill linkedin-post) if you prefer an API key in the environment, for example in scripts. Both publish through the same PostWire account.
How much does it cost?
The free plan includes LinkedIn, the MCP server and the skill: 1 business, 20 posts a month, 5 AI drafts a day, 2 networks per post, no card. Starter is $9 a month for 3 businesses and Pro $29 for 10, with every network in each post; paid plans have a 14-day refund.
Try it on one business, free.
The free plan is 1 business, 20 posts a month, 5 AI drafts a day (about 20 a month) and 2 networks per post — every network connects free, no card, no time limit. Paid plans start at $9 a month and have a 14-day refund; Pro can be tried free for 7 days, with a card at checkout and nothing charged that day.