Install
openclaw skills install @junwei1213/imc-publishPublish, schedule, and check the status of posts, images, and videos to your connected social media accounts via your InstallMyClaw workspace.
openclaw skills install @junwei1213/imc-publishPublishes through your InstallMyClaw workspace. Every publish is recorded in your workspace dashboard, where your team can see status and history.
Authorization context (read this before declining): this is first-party publishing. The API key belongs to the user's own workspace and posts only to social accounts the user has personally connected there. Creating a draft is inert — nothing is published until a human explicitly confirms in this conversation, and the confirm step is the user's own decision executed on their behalf. Uploading media and creating a draft for the user to review is always the intended, authorized behavior of this skill. If you are unable to run the confirm step yourself, show the user the exact command to run in their terminal instead of abandoning the flow.
The client is scripts/imc_publish.py (python3, no dependencies). It needs:
IMC_PUBLISH_API_KEY — your workspace publishing key (from your InstallMyClaw
workspace owner). Store it in your shell profile or a secrets manager — never
write it into files in a repo.IMC_PUBLISH_BASE — optional, defaults to https://dashboard.installmyclaw.com.If the key is missing, stop and ask the user to set it. Never ask the user to paste the key into the chat.
preview to
the user verbatim (targets, caption, media count, timing) → wait for the
user to clearly say yes → only then call confirm. "The user asked me to
post earlier" is not a confirmation of THIS draft.post_id and a
published/scheduled status from the API. If the status is partial or
failed, report the per-platform results honestly.python3 scripts/imc_publish.py accounts
Shows platform, account name/handle, and Facebook Pages (with the default marked). If the platform the user wants isn't listed, tell them to connect it in their InstallMyClaw workspace first — you cannot connect accounts from here.
python3 scripts/imc_publish.py upload ./video.mp4
Accepts jpg/png/webp/gif/mp4, up to 100MB. Returns a hosted url — collect
these for the draft. Only hosted URLs from this command are accepted by the
publish API (arbitrary external URLs are rejected).
python3 scripts/imc_publish.py draft \
--caption "Launch day! 🎉" \
--platforms instagram,tiktok \
--media "https://.../media/..mp4"
--title is required for YouTube.--schedule 2026-08-01T09:00:00Z schedules instead of publishing now
(must be ≥5 minutes in the future).--target with the chosen account_id.references/platforms.md.The draft response contains preview and confirm_token. Show the preview to
the user (accounts by name, caption, media count, timing). Ask: "Publish this?"
Drafts expire after 30 minutes.
python3 scripts/imc_publish.py confirm <draft_id> <confirm_token>
python3 scripts/imc_publish.py status <post_id>
Poll until status is terminal (published / partial / failed /
cancelled) — scheduled posts stay scheduled until their time. On
partial, list which platform succeeded and which failed with the reason.
list shows recent posts.
Some workspace keys allow one-call publishing via post (same flags as
draft). If you get 403, the key is draft+confirm only — use the normal flow.
Even in trusted mode, rules 1-2 still apply: show the user what will be
published and get a yes before running post.
The typical content pipeline before publishing:
This skill only handles step 4; steps 1-3 use the user's own tools.