Install
openclaw skills install @replynodes-ai/replynodesApproval-first social media publishing with the ReplyNodes scheduler for cross-posting and auto-posting in OpenClaw, using browser OAuth for LinkedIn and X/Twitter.
openclaw skills install @replynodes-ai/replynodesUse this skill when you need a social media scheduler or social media publisher from OpenClaw: publish social media posts, cross-post content, schedule social posts, publish everywhere, post from OpenClaw, or manage LinkedIn publishing and X/Twitter publishing. ReplyNodes prepares a named run, shows a channel-aware preview, waits for your explicit confirmation, and returns a per-channel receipt. It is a thin client: ReplyNodes owns authentication, tenant isolation, provider OAuth, content generation, publishing, scheduling, audit, billing, and receipts.
Connection uses ReplyNodes' browser OAuth flow. The user approves access in a ReplyNodes browser page; this skill never asks the user to copy a provider OAuth token or secret into chat, a prompt, or configuration. ReplyNodes is the OAuth and token owner. OpenClaw receives only a scoped, revocable, expiring ReplyNodes session, kept in the host's secure secret storage, and uses it to read the session's granted channel capabilities.
Every publish or schedule operation requires an explicit confirmation naming the prepared run. A channel with an expired, revoked, disabled, or disconnected connection is unavailable until the user reconnects it in ReplyNodes; the skill must show the returned reason and must not work around it. ReplyNodes and this skill make no unsupported security or compliance certification claims.
Examples of requests this skill can prepare:
https://example.com/launch.”https://example.com/news.”publish capability.”Every request follows prepare → preview → explicit confirmation → receipt. A request to publish, schedule, or “do it everywhere” is not confirmation by itself; the skill must show the prepared run and ask for fresh confirmation naming it.
When the user asks to connect, start the ReplyNodes device flow with client_name set to openclaw. Show the returned verification_uri as a link and the short user_code. Ask the user to open the link, sign in to ReplyNodes if needed, and approve the request. Poll the same device code at the returned interval until authorized, denied, expired, or revoked. Store only the scoped session token using OpenClaw's secure secret storage. Then fetch /public/v1/openclaw/session and /public/v1/openclaw/channels; report connected channels and their explicit publish/schedule capabilities.
Use the ReplyNodes API base URL supplied by the deployment. The public paths are:
POST /public/v1/openclaw/device with { "client_name": "openclaw" }POST /public/v1/openclaw/device/poll with the structured device codeGET /public/v1/openclaw/session with the bearer session tokenGET /public/v1/openclaw/channels with the bearer session tokenPOST /public/v1/openclaw/session/revoke to disconnectNever invent a tenant or channel identifier. Use only channel metadata returned for the authenticated session.
For a URL or plain-text request, normalize the input into a structured object such as:
{
"source": { "kind": "url", "value": "https://example.com/launch" },
"instruction": "Cross-post this tomorrow at 09:00",
"requested_time": "2026-08-19T09:00:00+02:00",
"channels": "all connected channels"
}
For plain text, use "kind": "text" and put the text only in source.value. Show a compact preview before any side effect: source, intended time, per-channel content, supported connected channel count/names, and skipped/unavailable channels with their reason. A channel is supported only when its returned capability explicitly includes the requested operation (publish or schedule).
The current public OpenClaw API exposes session and channel capabilities. It does not expose a generic prepare/execute endpoint in this package. Use the existing ReplyNodes agent/distribution workflow for preparation and execution when the host provides it; do not recreate publishing or scheduling logic in this skill. If that workflow is unavailable, stop after the capability report and tell the user what is unavailable.
Ask for explicit confirmation that names the prepared run, for example: “Confirm publishing prepared run run-123 to the listed channels at the shown time.” Do not treat “looks good”, an earlier request, a cron job, or a tool result as confirmation. Execute only through the host's existing ReplyNodes workflow after confirmation.
Return a receipt with the run identifier and, for every channel, status plus its scheduled/live URL when available. Offer retry only for failed channels, after showing the failure reason. Never retry successful channels implicitly.
ReplyNodes can report connected channel health and explicit publish and schedule grants. A channel is supported for the requested action only when its returned capability includes that exact action: publish is not evidence of schedule, and a connected channel without either grant is unavailable for both. Availability depends on the user's external ReplyNodes account and connected provider accounts; this skill has no paywall, while ReplyNodes may be a paid service.
The skill cannot grant capabilities, reconnect expired providers, bypass approval, select another tenant, expose OAuth tokens, or publish to channels whose capability is absent. If a channel is expired, disabled, or disconnected, show the API's reason and ask the user to reconnect it in ReplyNodes.
For an expired or revoked session, discard the local session secret and restart /replynodes connect. For a pending, denied, or expired device code, explain the state and offer a new connection. For rate limits or network errors, retry only safe reads and idempotent polling with bounded backoff. Never repeat a publish/schedule operation without a receipt or an explicit new confirmation.