ig-reply
Skill34 starsChanged 29 days agoMITView on GitHub
Handle the comments under the user's own reels and posts - draft replies to the ones worth answering, sorted by which ones are. Use when the user pastes their comments, says "reply to these", "handle my comments", "someone said X on my reel", or is dealing with a critic, a hater or a lead in the comments.
7 other projects use a version of this, 6 of them edited.
Adopted by
Most recently taken up by
- aipphilie/claude-skillsedited, first seen Nov 1, 2026
- Oumi-Mez/Claude-skillsedited, first seen Oct 25, 2026
- lodhaarihant/instagram-agent-arihantedited, first seen Oct 17, 2026
- nessalazne/instagram-agent-skilledited, first seen Sep 28, 2026
- larkinmd7/instagram-agent-skilledited, first seen Sep 27, 2026
- Jakeschincariol/instagram-agent-skilledited, first seen Sep 13, 2026
Other versions7 projects use a version of this.
Word for word · 0
None found.
Edited · 6
- Jakeschincariol/instagram-agent-skill★ 8895% same
- nessalazne/instagram-agent-skill★ 395% same
- aipphilie/claude-skills★ 095% same
- larkinmd7/instagram-agent-skill★ 095% same
- lodhaarihant/instagram-agent-arihant★ 095% same
- Oumi-Mez/Claude-skills★ 095% same
Wrote their own version · 1
- vava2684/ig-reply★ 19same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository13 other files it gives its agents.
- ig-auditSkill
- ig-captionSkill
- ig-carouselSkill
- ig-commentSkill
- ig-dmSkill
- ig-humanSkill
- ig-planSkill
- ig-profileSkill
- ig-publishSkill
- ig-reelSkill
- ig-repurposeSkill
- ig-storySkill
- ig-viralSkill
The file
We split this skill into the rules it gives an agent
6 rules. 4 are common, 1 is distinctive, and 1 is very specific to this project.
4
Common
Most of the 6 edited versions we read keep these.
1
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Common: line 64
Write in that order and stop when the value stops.
- Common: line 68
If a question in the comments is one that thirty other people also have,
- Common: line 76
Answer the actual question: If someone asks how, tell them how, in the reply.
- Common: line 92
If the post used a keyword ask, those comments are the whole point of the post.
- Very specific: line 93
Every one of them is a person who raised their hand.
- Distinctive: line 98
Never bulk-DM people who did not comment.
“Common” is measured: kept by at least 6 in 10 of the 6 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
ig-reply
The comment thread under your own post is where reach is decided. Every reply is another interaction on the post, replies arriving in the first hour do most of the work, and on Instagram a reply can also be a Reel, which is the single most underused move on the platform.
But the value is not equal across comments, so this skill sorts before it writes.
Input
The user pastes the comments, ideally with handles. Screenshots are fine. Do not scrape the thread with a browser tool.
Or, if the PostZen MCP tools are in this session, fetch them:
listAccounts({ platform: "instagram" })and take the account's_id.- Find the post. The comment tools want the Instagram media id, not a
PostZen id, because the inbox covers every post on the account, including
ones published by hand.
- A post that went out through
/ig-publish: it is in the log line, orlistPosts({ platform: "instagram", accountId, status: "published" })and readplatforms[].platformPostIdandplatformPostUrl. - Any post from the last 30 days, including native ones:
syncExternalPosts({ accountId })returns up to 20 withplatformPostId,platformPostUrl,contentandpublishedAt. Passurlwith the permalink to get one specific post. A second call within 15 seconds comes back withsynced.skipped: true; that is a debounce, not an error. - Older posts:
getAnalytics({ platform: "instagram", accountId, source: "all", sortBy: "date" })and readplatformAnalytics[].platformPostId.
- A post that went out through
listInboxPostComments({ postId: "<media id>", accountId, limit: 100 }). Page withcursorwhilepagination.hasMoreis true. PasscommentIdto read the replies under one comment. Each comment carriesid,message,from,likeCount,isHidden,canReplyandcanHide. Reads refresh from Instagram, so this is the live thread, not a snapshot.
Pasting still works when PostZen is not connected, and the triage below is the same either way.
Triage first
Sort every comment into one of six buckets and say the counts out loud:
| bucket | what it is | what it gets |
| KEYWORD | the word you asked them to comment | the promised thing, sent by hand or by your approved tool |
| LEAD | someone describing the problem you solve | a real answer in public, then a door |
| SUBSTANCE | adds data, disagrees, extends | the longest reply on the thread |
| QUESTION | a question a lot of people have | this one becomes a Reel, not just a reply |
| SUPPORT | "🔥", "great post", a tag | a like, and 3 to 8 words at most |
| NOISE | pitch, spam, bad faith, bait | nothing, or one line and out |
Write in that order and stop when the value stops.
The move most people miss
If a question in the comments is one that thirty other people also have,
reply to it with a Reel. Instagram will attach the comment to the new video
as a sticker, the person who asked gets notified, and a question with real
demand behind it becomes a post with the hook already written for you. Flag
every QUESTION that qualifies and hand it to /ig-reel as formula #16.
How to reply
- Answer the actual question. If someone asks how, tell them how, in the reply. Do not send them to the DMs to hear an answer they could have had.
- Use their name once, at the start, without an exclamation mark.
- Match their length. A four-word comment does not get a four-line reply.
- To a critic: concede the true part first, in their words, then hold the line. Never delete, never get defensive, never reply twice on the same thread.
- To a hater: nothing. A reply is reach, and reach is what they came for. Hide the comment if it is abusive. Instagram's comment controls exist and using them is not losing.
- To a lead: answer fully in public. The door is one sentence at the end and it is an offer of help, not a pitch. The public answer is what makes the next person DM you.
Keyword comments
If the post used a keyword ask, those comments are the whole point of the post.
Every one of them is a person who raised their hand. Reply to each, then send
what was promised. If a comment-to-DM automation is running on the post
(/ig-dm sets one up through PostZen; listCommentAutomations({ accountId })
shows what exists), the DM side is already handled and only the public reply
is yours. If not, the deliveries are manual and that is fine at this volume.
Never bulk-DM people who did not comment.
Output
One block, grouped by bucket, each reply copy-ready and already humanized:
REPLIES · 84 comments · 41 KEYWORD, 2 LEAD, 3 SUBSTANCE, 2 QUESTION, 34 SUPPORT, 2 NOISE
KEYWORD (41) send the clause. One line each, same warmth, not copy-paste.
LEAD
@handle - "we had this exact thing happen in June"
> The bit that fixed it for us was moving the payment trigger off approval
> entirely. Happy to send the wording if it is useful.
QUESTION -> REEL
@handle - "what do you do if they refuse to sign it?"
34 likes on this comment. That is a Reel, not a reply. Formula #16.
NOISE (2) skipped. Replying gives them reach.Then the gate: nothing is posted until the user says yes to this block. If PostZen is not connected, they paste the replies.
Sending through PostZen
With the tools in this session and the yes given, send the block as shown, nothing edited after the yes:
- Reply:
replyToInboxPost({ postId: "<media id>", accountId, commentId, message }), one call per reply. WithoutcommentIdit posts a top-level comment on the post, which is almost never what you want here. A reply to a reply lands on the top-level parent, because Instagram threads are two levels deep. No attachments on Instagram replies:attachmentUrlreturnsattachmentUnsupported. - NOISE: hide, do not delete.
hideInboxComment({ postId, commentId, accountId })leaves the comment visible to its author and nobody else, which is the quiet outcome you want with a hater.unhideInboxCommentreverses it.deleteInboxCommentexists; use it only when the user asks for that comment by name, because deletion is visible and final. - Limits: 120 replies an hour and 120 hides an hour per user, and Meta
has its own caps underneath. A thread with 84 comments fits. A thread
with 300 keyword comments does not, so say so and send the top of the
triage first. A
429carriesRetry-After; wait that long, do not loop. - Errors worth translating:
platformCapabilityMissing(403) means the account was connected without the comment-management permission, and the fix is to reconnect it in PostZen.connectionDead(424) means the connection itself needs reauthorizing, same fix.postNotPublishedmeans the post has not published yet, so there is no thread to read.
Report what was sent and what was not, by handle. If a call fails, say which one and why, and do not resend the whole batch.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

