Shared Sessions for Claude Code
Share a Claude Code session with a link. Teammates join from their own Claude Code and work in it together.
AI agents post to X, Bluesky and LinkedIn via MCP server, REST API or CLI. No X developer account. Full AI scheduler included. 7-day free trial from $11.99/mo.
PluginsTypeScriptGitHub @opentweetioOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
OpenTweet plugin for OpenClaw. Schedule and publish X posts, threads and long-form articles from your agent.
Loading the full README. The saved excerpt is shown below.
Schedule and publish X, Bluesky and LinkedIn posts, threads and long-form articles from OpenClaw, using your OpenTweet account.
Create an API key at opentweet.io/developer, then add it to openclaw.json:
baseUrl is optional and only needed for self-hosted OpenTweet instances.
Multi-account users should call opentweet_accounts first and pass the resulting x_account_id to the other tools.Read the full README ↗Schedule and publish X, Bluesky and LinkedIn posts, threads and long-form articles from OpenClaw, using your OpenTweet account.
openclaw plugins install clawhub:@opentweetio/openclaw-plugin
openclaw plugins enable opentweet
openclaw gateway restart
Create an API key at opentweet.io/developer, then add it to openclaw.json:
{
plugins: {
entries: {
opentweet: {
enabled: true,
config: { apiKey: "ot_..." }
}
}
}
}
baseUrl is optional and only needed for self-hosted OpenTweet instances.
| Tool | What it does |
|---|---|
opentweet_accounts | Connected X accounts, subscription status, remaining daily quota |
opentweet_list_platforms | Connected networks, the auto cross-post setting, and what an unspecified post targets |
opentweet_post | Create a post or thread on X, Bluesky, LinkedIn or any combination: draft, schedule, or publish now |
opentweet_list_posts | List drafts, scheduled, published or failed posts |
opentweet_update_post | Edit, reschedule, publish or delete an existing post |
opentweet_upload_media | Upload an image or video and get a media URL |
opentweet_analytics | Publishing overview, top posts, best times to post |
opentweet_article | Create, update, publish or delete long-form X articles |
opentweet_search_inspiration | Search X for high performing posts on a topic |
opentweet_repurpose_tweet | Rewrite a post in your voice and save it as a draft |
opentweet_import_csv | Turn each row of a CSV into a post with an AI prompt, as drafts or scheduled from a date column |
Multi-account users should call opentweet_accounts first and pass the resulting x_account_id to the other tools.
opentweet_post takes a platforms array. Pass ["x", "bluesky", "linkedin"] to publish the same content to all three networks in one call, or any subset such as ["bluesky"] for Bluesky only or ["x", "linkedin"]. An explicit list is always honoured exactly.
Leaving platforms out is not the same as pinning the post to X. An unspecified post follows the account's auto cross-post setting, which sends it to every connected network when that setting is on. Call opentweet_list_platforms to see what an unspecified post would target.
opentweet_list_platforms reports default_targets (what an unspecified post is attempted on) and deliverable_targets (the subset that will actually land) separately, and likewise connected and usable. A network whose authorisation has expired is still connected but has usable: false and needs_reconnect: true, and cannot publish until it is reconnected.
Every post comes back with a results array carrying one entry per network: published with a url, failed with an error, or skipped with a skip_reason. A skip is not a failure, so read the array before reporting the outcome.
opentweet_search_inspiration, opentweet_repurpose_tweet and opentweet_import_csv consume the daily search and AI generation quotas on your OpenTweet plan.failed Bluesky entry while X publishes fine.skipped LinkedIn entry with a skip_reason. Hashtags and mentions publish as plain text, and there are no LinkedIn analytics.opentweet_list_platforms shows LinkedIn as usable: false with needs_reconnect: true.Requires Node 22.22.3+, 24.15+, or 25.9+, matching OpenClaw's own engine range.
npm install
npm run build
npm run manifest # regenerate openclaw.plugin.json from the entry point
npm run validate
npm pack --pack-destination /tmp
openclaw plugins install npm-pack:/tmp/opentweetio-openclaw-plugin-0.1.0.tgz --force
openclaw plugins inspect opentweet --runtime --json
clawhub package publish . --dry-run
clawhub package publish .
MIT