From popcorn
Pull recent channel messages into context. USER-TRIGGERED ONLY — never invoke pre-emptively. For general message reading, use the CLI directly (popcorn message list).
How this skill is triggered — by the user, by Claude, or both
Slash command
/popcorn:messagesThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Loads recent messages from a Popcorn channel into the current session so the developer can iterate based on team feedback.
Loads recent messages from a Popcorn channel into the current session so the developer can iterate based on team feedback.
If the user provided a #channel-name or bare name after /messages, use it directly.
POPCORN_AGENT=1 popcorn site targets
If there's a default target, use its site_name. Tell the user: "Reading messages from #<site_name>."
Tell the user: "No linked channel found. Provide a channel name (e.g. #my-app), or run /popcorn:pop first to publish this project."
Recent messages:
POPCORN_AGENT=1 popcorn message list '#<channel-name>' --limit 25
Targeted search (when looking for specific feedback):
POPCORN_AGENT=1 popcorn message search 'login button' --limit 10
Use search when the user asks about a specific topic — it's more useful than reading the last 25 messages.
Pagination: Check .data.pagination.next in the response. If non-null, it contains flags for the next page:
# First page:
POPCORN_AGENT=1 popcorn message list '#<channel-name>' --limit 25
# If .data.pagination.next is {"before": "msg-abc-123"}:
POPCORN_AGENT=1 popcorn message list '#<channel-name>' --limit 25 --before msg-abc-123
Offer to load more when pagination indicates additional messages.
Parse the response envelope — messages are in .data.messages. If the CLI is not installed or auth fails, run setup first:
bash "${CLAUDE_PLUGIN_ROOT}/skills/popcorn/setup.sh"
Then retry.
If the CLI is unavailable, use the MCP tool:
read_messages(conversation_id="<conversation_id>", limit=25)
The conversation_id comes from site targets output or from resolving the channel name via get_channel.
Summarize the recent conversation concisely:
Format as a scannable list, not a wall of text. The developer can now iterate on the code and /popcorn:pop to publish the next version.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub popcornaihq/popcorn-claude-code --plugin popcorn