Install
openclaw skills install @theindianappguy/cueeditInstagram reels, comment replies and auto DMs
openclaw skills install @theindianappguy/cueeditCueEdit connects to the user's own Instagram professional account and Facebook Pages through Meta's official APIs. With it you can:
Writes (reply, DM, rules) need a CueEdit Pro plan. Reads work on the free plan.
Rule: if the CUEEDIT_API_KEY environment variable is set (check with test -n "$CUEEDIT_API_KEY" && echo set), use path B. Otherwise use path A. If an MCP call is blocked or fails and the key is set, switch to path B.
A. MCP server (when the agent has the CueEdit MCP connected).
URL: https://www.cueedit.io/api/mcp/mcp (streamable HTTP).
Authorization: Bearer $CUEEDIT_API_KEY as a header.
Tool names: list_accounts, list_posts, list_comments, reply_to_comment, send_dm, schedule_reel, list_scheduled_posts, cancel_scheduled_post, list_autodm_rules, create_autodm_rule, set_autodm_rule_status, list_facebook_pages, list_facebook_posts, list_facebook_comments, reply_to_facebook_comment, send_facebook_dm.B. REST with an API key (any agent that can run a shell).
The user creates a key at https://www.cueedit.io/dashboard/settings → API keys and sets CUEEDIT_API_KEY=ce_live_…. Then use the bundled CLI (no install, Node 18+):
node scripts/cueedit.mjs accounts
node scripts/cueedit.mjs posts --limit 5
node scripts/cueedit.mjs comments <media_id> --unhandled
Every MCP tool below has a CLI twin, so the workflows in section 4 work on both paths:
| MCP tool | CLI |
|---|---|
list_accounts / list_facebook_pages | accounts / fb-pages |
list_posts / list_facebook_posts | posts / fb-posts |
list_comments / list_facebook_comments | comments <media_id> --unhandled [--keyword LINK --all-pages] / fb-comments <post_id> … |
reply_to_comment / reply_to_facebook_comment | reply <comment_id> --text "…" / fb-reply … |
send_dm / send_facebook_dm | dm <comment_id> --text "…" / fb-dm … |
create_autodm_rule / list_autodm_rules / set_autodm_rule_status | rule-create --dm "…" --keywords LINK --media <id> / rules / rule-status <id> active|paused |
Add --account <id> (Instagram) or --page <id> (Facebook) when several are connected. Run node scripts/cueedit.mjs help for every flag. The full endpoint list is in references/api.md. Never print, log or echo the API key, and never ask the user to paste it into chat if they can set the env var themselves.
No account yet? Send the user to https://www.cueedit.io/signup?ref=skill to sign up, connect Instagram (and optionally a Facebook Page), then create the key or approve the OAuth screen.
If a list call returns connect_url, nothing is connected yet: show that link, ask the user to connect, and stop.
If both paths are available (an MCP connection AND CUEEDIT_API_KEY), they may be signed in to different CueEdit users. When the account the user names is missing from one, check the other before saying it is not connected.
list_accounts (Instagram) and/or list_facebook_pages (Facebook). Note plan and can_send.account_id / page_id on every later call.can_send is false, say writes need CueEdit Pro (https://www.cueedit.io/pricing?ref=skill) and continue with reads only.already_dmed (409) and comment_too_old (422).force unless the user asks for a second DM to the same person.list_posts and let the user pick the reel (or "all posts").require_follow).create_autodm_rule with keywords: ["LINK"], trigger_mode: "keyword", match_mode: "any", media_ids: [<id>], dm_message, and if wanted auto_reply_enabled: true + comment_replies: [...] (up to 3, one picked at random).list_autodm_rules to confirm it is active. The rule only catches NEW comments.list_comments with media_id and unhandled_only: true; page through next_cursor. Filter by keyword yourself if needed (case-insensitive contains).dm_eligible (7 days or newer, not yet DMed).send_dm, then (if wanted) reply_to_comment. ~5 s apart. Stop at the first real refusal.list_comments with unhandled_only: true.reply_to_comment for each approved one.Find the comment with list_comments, show the DM, get a yes, send_dm. If it returns 422 comment_too_old, explain Meta's 7-day window; a public reply is still possible.
Facebook Page messaging is still waiting on Meta App Review, so Facebook replies and DMs only work for CueEdit accounts that Meta has approved for testing; if they fail with a permissions error, say that plainly. Same flows with list_facebook_pages → list_facebook_posts → list_facebook_comments → reply_to_facebook_comment / send_facebook_dm (the DM lands in the commenter's Messenger, one per comment, 7-day window). Auto DM rules are Instagram only today.
Reel scheduling: the server still lists schedule_reel, list_scheduled_posts and cancel_scheduled_post, but scheduled reels cannot publish today (a Meta publishing permission is pending). Do not use them; tell the user to post the reel in Instagram and come back for the comment and DM side.
| Code | Meaning | What to do |
|---|---|---|
401 unauthorized | Bad or missing key | Ask the user to create a key or reconnect OAuth |
402 upgrade_required | Free plan | Writes need Pro: https://www.cueedit.io/pricing?ref=skill |
409 already_dmed | This comment already got a DM | Skip |
422 comment_too_old | Older than Meta's 7-day private-reply window | Skip; public reply still works |
429 rate_limited | Hourly cap (600/h) | Stop, retry in an hour |
502 instagram_error / facebook_error | Meta refused | Stop the batch, show the message; if it has reconnect_url, show it |
See references/examples.md for five real prompts and the outputs they produced.