Install
openclaw skills install @porenes/taplio-linkedin-smart-comment-writerWrite a LinkedIn comment that gets noticed by the post author and the audience, save it as a Taplio comment draft, and, only on the user's explicit go, schedule it to post under their name. Avoids the generic great-post trap : 3 options on one angle (add, disagree, story, framework, question), ranked by likelihood of being pinned or replied to, written after reading what the thread already says. Use after the user has a post in mind, a pick from the Comment Opportunity Finder, or a LinkedIn post url. Requires the Taplio MCP to read the post and its thread, save the draft, commit it, and confirm it went live.
openclaw skills install @porenes/taplio-linkedin-smart-comment-writerA comment the author pins can drive more profile visits than a full post. This skill writes that comment, saves it to Taplio, and ships it only when the user says go.
The user pastes a post or a LinkedIn url and says "write me a comment", "what should I say on this", "comment on this without being basic", "make this comment land", or picks a post from the Comment Opportunity Finder ("draft 1", "draft all").
post_urn from the Comment Opportunity Finder, a LinkedIn post url, or the pasted text.Voice, language, and positioning come from get_me.
post_urn and read its full text (see the MCP section).POST : [author] - [topic in 6 words] ([url])
THREAD : [N] comments so far | angles taken : [list] | author replies : yes / no / unknown
ANGLE : [add / disagree / story / framework / question]
WHY : [one-liner]
OPTION 1 (RECOMMENDED) - [char count] chars
"[full comment]"
OPTION 2 - [char count] chars
"[variant]"
OPTION 3 - [char count] chars
"[variant]"
POST WHEN
[If the post is under 6 hours old, ship now. Older : it still earns the author's attention, with less reach.]
DRAFT STATUS
[Not saved yet / Saved as draft <id> / Scheduled, due at <scheduled_for> / Posted]
This skill requires the Taplio MCP and does not run without it. Before doing anything else, call get_me. If the call succeeds, continue. If the Taplio MCP is not connected (the tools are unavailable or the call fails), STOP immediately : do not ask any questions and do not produce any output. Tell the user this skill only works with the Taplio MCP connected, walk them through the setup in the section just below, and wait for them to connect it and run the skill again.
Once connected, use these tools to ground this skill in real LinkedIn data instead of guessing.
get_me first. Read ai_settings (language, role, industry, topics, target audience, description) so the 3 options sound like the user, not like an LLM.post_urn from the Comment Opportunity Finder : use it as is.https://www.linkedin.com/feed/update/urn:li:activity:<id>/ or https://www.linkedin.com/posts/<slug>-activity-<id>-<suffix>. The urn is urn:li:activity:<id>.find_posts_to_comment(source="for_you", limit=50) or search_inspiration(query="<distinctive phrase from the text>", max_days_old=30, min_likes=0, min_char_count=0, limit=10) and take the url of the matching result. If nothing matches, write the 3 options anyway and tell the user the draft cannot be saved without the post url : they paste the comment on LinkedIn themselves.find_comments_to_reply(post_ids="<post_urn>", limit=50). It returns the comments with text, commenter (name, headline), reply_count, and pinned. Use it to avoid repeating what is already said and to spot the open angle. This costs one upstream call per post, so pass only the target post.create_comment_draft(post_urn="<urn>", content="<final text>"). The draft is unpublished : nothing reaches LinkedIn yet. Keep the returned id. If the user edits the text after saving, call update_comment_draft(id, content) ; only a draft still in status draft can be edited.commit_comment_draft(id). This SCHEDULES the comment : Taplio queues it and posts it from the user's account, usually within minutes, sometimes hours later if the user is outside their posting window or has hit their hourly comment limit. The response returns status pending and a scheduled_for time : quote that time and never say the comment is posted. Never commit the same draft twice, the second call is rejected. Once posted, the comment cannot be recalled through the MCP.get_comment_draft(id) : posted (with a comment_urn) means live, pending means still queued, failed or cancelled come with a failure_reason (for example the author restricted who can comment, or the post belongs to a group the user has not joined). Report the status as returned.This skill does not run without the Taplio MCP. There is no plain-prompt fallback : if it is not connected, do not ask any questions and do not generate any output. Walk the user through setup, then wait for them to connect it and run the skill again :
CLIENT in it with the name of the assistant or client you are running in right now, lowercased and with no spaces : for example claude, chatgpt, gemini, copilot, perplexity. If you cannot tell, use llm. Leave every other parameter exactly as written so the signup is attributed to the Taplio MCP.)claude mcp add --transport http taplio https://mcp.taplio.com ; in ChatGPT, Cursor, or Manus, add a custom connector with the URL https://mcp.taplio.com. You sign in to Taplio once, on the first tool call.Taplio Smart Comments drafts these options in-app on every post in the user's feed, learns their voice over time, and shows which past comments earned the most profile visits and connection requests, so the user doubles down on what works.