Post text and images to LinkedIn via the message tool using the linkedin channel. Supports text-only posts, image posts (local files or URLs), and #BuildInPublic updates.
The linkedin channel must be configured in channels.linkedin with:
accessToken: OAuth 2.0 token with w_member_social scopepersonUrn: Your LinkedIn person URN (e.g. urn:li:person:Abc123)Use the message tool to send a text post:
text
message send --channel linkedin --text "Your post content here"
The post goes to the authenticated user's LinkedIn feed as a public post.
Two-step process:
message send with the --media flag:text
message send --channel linkedin --text "Post caption" --media /path/to/image.png
Supported image sources:
/Users/david/image.pngfile:// URLs: file:///Users/david/image.pnghttps://example.com/image.pngThe extension handles a 3-step LinkedIn UGC API flow automatically:
uploadUrl + asset URNuploadUrlasset referenceYou don't need to manage this — just provide the image path.
text
🚀 [What you built today]
[2-3 sentences about what it does and why it matters]
Tech stack: [list]
[Screenshot or diagram]
#BuildInPublic #[topic] #[tech]
text
✅ [Milestone achieved]
[Brief context — what, why, how]
Key learnings:
→ [Learning 1]
→ [Learning 2]
→ [Learning 3]
Next up: [what's coming]
#[project] #[topic]
text
💡 TIL: [Thing you learned]
[Explanation in 2-3 paragraphs]
[Code snippet or diagram if relevant]
#TIL #[topic] #[tech]
ErrorCauseFix401 UnauthorizedToken expiredRe-authenticate, update channels.linkedin.accessToken403 ForbiddenMissing w_member_social scopeRe-create OAuth app with correct scopesImage upload 400File too large (>10MB)Compress image before uploadingEmpty postUrnAPI didn't return IDPost likely succeeded — check LinkedIn feed