Last updated: September 2026

Post to LinkedIn and Bluesky from OpenClaw

Install the OpenTweet plugin with openclaw plugins install clawhub:@opentweetio/openclaw-plugin, add your ot_ key, and connect LinkedIn and Bluesky once in OpenTweet. Your agent then calls opentweet_post with platforms: ["linkedin", "bluesky", "x"], or any subset. No LinkedIn developer app and no Bluesky App Password.

LinkedIn posts go to your personal profile. The same call can publish now, schedule, or save a draft, and it returns one result per network.

7-day free trial. Cancel anytime.

1. Install the plugin

The plugin is published on ClawHub as @opentweetio/openclaw-plugin (version 0.2.0 as of September 2026). It needs OpenClaw 2026.8.1 or later.

terminal
openclaw plugins install clawhub:@opentweetio/openclaw-plugin
openclaw plugins enable opentweet

Plugin commands apply to a running Gateway. If yours was stopped, start it so the plugin loads.

2. Add your OpenTweet key

Sign up, open Settings > API keys and create a key. It starts with ot_. Put it in openclaw.json:

openclaw.json
{
  plugins: {
    entries: {
      opentweet: {
        enabled: true,
        config: { apiKey: "ot_your_key" }
      }
    }
  }
}

Prefer a skill over a plugin? The ClawHub skill opentweet-x-poster covers the same three networks through the REST API and reads the key from the environment:

terminal
clawhub install opentweet-x-poster
export OPENTWEET_API_KEY="ot_your_key"

3. Connect LinkedIn and Bluesky in OpenTweet

In the OpenTweet dashboard go to Settings > Accounts. Click Connect LinkedIn, sign in with LinkedIn and approve. Connect Bluesky the same way, over atproto OAuth. OpenClaw never sees either credential, only the ot_ key.

Networks are connected in the dashboard, not through the plugin. To check what the agent can reach, ask it to run opentweet_list_platforms: it reports each network as connected and usable, and where a post without platforms would go.

4. Ask the agent to post

Name the networks in plain language. The agent maps them to the platforms list:

prompts
Post this to LinkedIn only: "We cut our build time from 9 minutes to 2. Here is what changed."

Take today's changelog, write a short version for X and Bluesky
and a longer one for LinkedIn, and schedule both for tomorrow 9am UTC.

Which networks would a post go to if I don't name one?

Always name the networks

A post with no platforms follows your auto cross-post setting, which can send it to every connected network. An explicit list is honoured exactly.

What the tool call looks like

opentweet_post takes text, optional thread_tweets, platforms, and either scheduled_date or publish_now. With neither, the post is saved as a draft.

tool call
opentweet_post({
  text: "We cut our build time from 9 minutes to 2. Three changes did most of it.",
  thread_tweets: [
    "1. Cached dependencies between runs.",
    "2. Split the test suite across 4 workers.",
    "3. Stopped rebuilding images nobody changed."
  ],
  platforms: ["linkedin", "bluesky", "x"],
  scheduled_date: "2026-09-24T09:00:00Z"
})

Once it goes out, each post carries a results entry per network:

response excerpt
"results": [
  { "platform": "x", "status": "published", "url": "https://x.com/you/status/1834000000000000001" },
  { "platform": "bluesky", "status": "published", "url": "https://bsky.app/profile/you.bsky.social/post/3l..." },
  { "platform": "linkedin", "status": "published", "url": "https://www.linkedin.com/feed/update/urn:li:share:7300000000000000000/" }
]

A skipped entry is not a failure: the post went out elsewhere and skip_reason says why that network was left out. A failed entry carries the network's error.

DIY LinkedIn skill vs the OpenTweet plugin

A typical DIY LinkedIn skill calls the LinkedIn API directly with an app you register yourself.

DIY LinkedIn skillOpenTweet plugin
LinkedIn developer appYou create one, request Share on LinkedIn, and paste the Client ID and Client Secret into openclaw.jsonNone. You click Connect LinkedIn in OpenTweet and sign in
Credential the agent holdsLinkedIn client secret and a token stored on your machineOne ot_ key you can revoke in Settings
60-day LinkedIn sign-inUp to you and the skill author to notice and re-authorizeOpenTweet emails you to reconnect and holds scheduled LinkedIn posts until you do
SchedulingPosts when the agent runsscheduled_date on the same call, held in the OpenTweet queue
NetworksLinkedIn onlyLinkedIn, Bluesky and X from one call
Per-network outcomeWhatever the skill returnsA results array with published, failed or skipped per network

The DIY column describes a typical self-hosted LinkedIn skill. Individual skills differ.

What LinkedIn does differently

As of September 2026.

Personal profile only

Posts go to the LinkedIn member profile you connected. Company Pages are not supported.

Threads become one post

A thread sent to LinkedIn goes out as a single post, with the parts joined by a blank line. X and Bluesky still get a real thread.

3,000 characters, counted strictly

LinkedIn allows 3,000 characters and an emoji counts as 2. A post over the limit is skipped on LinkedIn with a reason while the other networks still publish.

No video

A post with a video comes back as skipped for LinkedIn with a skip_reason. Images work.

Hashtags and mentions are plain text

#tags and @names publish as text, not links. There are no LinkedIn analytics in OpenTweet.

Reconnect every 60 days

LinkedIn gives self-serve apps a 60-day token and no refresh token. When it lapses, opentweet_list_platforms shows LinkedIn as usable: false with needs_reconnect: true.

A note on ClawHub security

ClawHub lets anyone with a GitHub account publish. In February 2026 researchers reported hundreds of malicious skills there, many dressed up as popular tools and using look-alike names. Before you install anything that touches your social accounts:

  • Install only from publishers you can trace to a real product. The OpenTweet plugin is published by opentweetio and linked to its public source repo, github.com/opentweetio/openclaw-plugin.
  • Check the exact package name before you run the install command.
  • Give the agent a key, not a password. Your ot_ key can be deleted in Settings > API keys at any time, which cuts the agent off without touching your LinkedIn, Bluesky or X sign-ins.

Frequently asked questions

Can OpenClaw post to LinkedIn?

Yes, with the OpenTweet plugin. Install @opentweetio/openclaw-plugin from ClawHub, add your ot_ API key, connect LinkedIn once in OpenTweet under Settings > Accounts, and ask the agent to post. It calls opentweet_post with platforms set to ["linkedin"]. Posts go to your personal profile.

Do I need a LinkedIn developer app to post from OpenClaw?

Not with OpenTweet. OpenTweet uses its own self-serve Share on LinkedIn app, so you only sign in with LinkedIn. DIY LinkedIn skills on ClawHub usually ask you to create a developer app and paste its Client ID and Client Secret into your config.

Can OpenClaw post to Bluesky?

Yes. Connect Bluesky in OpenTweet under Settings > Accounts, then pass platforms: ["bluesky"], or include "bluesky" alongside the other networks. The Bluesky connection uses atproto OAuth, so you do not paste an App Password into OpenClaw. Bluesky caps posts at 300 characters.

Can one OpenClaw command post to LinkedIn, Bluesky and X at once?

Yes. One opentweet_post call with platforms: ["x", "bluesky", "linkedin"] sends the same content to all three and returns a results entry per network. If a post is too long for one network, read that entry: the others still go out.

What happens if I leave platforms out?

The post follows your account auto cross-post setting, which can mean every connected network. An explicit platforms list is always honoured exactly, so tell the agent to pass it every time. opentweet_list_platforms shows where an unspecified post would go.

Should I use the plugin or the ClawHub skill?

The plugin (@opentweetio/openclaw-plugin) gives OpenClaw typed tools such as opentweet_post and opentweet_list_platforms. The skill (opentweet-x-poster) teaches the agent the OpenTweet REST API instead and reads OPENTWEET_API_KEY from the environment. Both post to X, Bluesky and LinkedIn through the same backend.

Is it safe to install social media skills from ClawHub?

Be selective. Security researchers found hundreds of malicious ClawHub skills in early 2026, many disguised as popular tools. Install only from publishers you can trace to a real product and source repo, and prefer a setup where the agent holds one revocable key rather than your LinkedIn or X passwords.

One plugin, three networks

OpenClaw posts to LinkedIn, Bluesky and X with one ot_ key. From $11.99 a month.

7-day free trial. Cancel anytime.