بنقرة واحدة
group-chats
Analyse your group chat activity — most active groups, top talkers per group, and activity over time.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Analyse your group chat activity — most active groups, top talkers per group, and activity over time.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Use the imessage-analysis MCP server to answer questions about the user's iMessage history.
Compare your messaging activity between two time periods — volume, contacts, and trends side by side.
Check whether imessage-analysis is installed and the MCP server is registered, and fix anything that's missing.
Show the current status of the iMessage analysis dataset — last sync time, total messages, and whether it's up to date.
Summarise your most recent message exchanges — who you've been talking to, what topics came up, and the overall tone of recent activity.
Sync your iMessage history — builds the dataset on first run, updates incrementally after that. Use this to make sure your data is current before analysing.
| name | group-chats |
| description | Analyse your group chat activity — most active groups, top talkers per group, and activity over time. |
Explore your group messaging activity: which groups are most active, who dominates each chat, and how group messaging trends over time.
status()
Sync if stale (last sync more than 6 hours ago).
SELECT
chat_id,
chat_members_contact_info,
COUNT(*) AS total_messages,
SUM(CASE WHEN is_from_me = 1 THEN 1 ELSE 0 END) AS sent,
SUM(CASE WHEN is_from_me = 0 THEN 1 ELSE 0 END) AS received,
MIN(CAST(date AS VARCHAR)) AS first_message,
MAX(CAST(date AS VARCHAR)) AS last_message,
chat_size
FROM messages
WHERE chat_size > 1
GROUP BY chat_id, chat_members_contact_info, chat_size
ORDER BY total_messages DESC
LIMIT 10
This gives you the top 10 group chats. Use chat_id and chat_members_contact_info to identify each group — iMessage doesn't always surface a group name.
To find who sends the most messages in a specific group chat (replace CHAT_ID with the value from step 2):
SELECT
name,
contact_info,
COUNT(*) AS messages,
ROUND(100.0 * COUNT(*) / SUM(COUNT(*)) OVER (), 1) AS pct_of_chat
FROM messages
WHERE chat_id = CHAT_ID
AND is_from_me = 0
AND (name IS NOT NULL OR contact_info IS NOT NULL)
GROUP BY name, contact_info
ORDER BY messages DESC
LIMIT 15
Run this for each top group to understand who drives each conversation. If the user asks about a specific group by name or participant, use search_contacts first to resolve the contact identifier, then cross-reference with chat_members_contact_info.
How much you contribute vs. receive across all group chats:
SELECT
chat_id,
chat_size,
COUNT(*) AS total_messages,
SUM(CASE WHEN is_from_me = 1 THEN 1 ELSE 0 END) AS i_sent,
ROUND(100.0 * SUM(CASE WHEN is_from_me = 1 THEN 1 ELSE 0 END) / COUNT(*), 1) AS pct_i_sent
FROM messages
WHERE chat_size > 1
GROUP BY chat_id, chat_size
ORDER BY total_messages DESC
LIMIT 10
A low pct_i_sent means you're mostly a reader; high means you're a driver.
How group messaging volume has changed month-by-month:
SELECT
year,
month,
COUNT(*) AS messages,
COUNT(DISTINCT chat_id) AS active_groups
FROM messages
WHERE chat_size > 1
GROUP BY year, month
ORDER BY year, month
For a single group's activity over time (replace CHAT_ID):
SELECT
CAST(date AS VARCHAR) AS day,
COUNT(*) AS messages
FROM messages
WHERE chat_id = CHAT_ID
GROUP BY date
ORDER BY date
Quick summary to anchor the narrative:
SELECT
CASE WHEN chat_size > 1 THEN 'group' ELSE 'direct' END AS type,
COUNT(*) AS messages,
ROUND(100.0 * COUNT(*) / SUM(COUNT(*)) OVER (), 1) AS pct
FROM messages
GROUP BY type
ORDER BY messages DESC
Lead with the top group by volume and how it compares to the others. Then cover:
If the user asked about a specific group, focus entirely on that group: participant breakdown, your contribution, activity trend, and the most recent activity.
End by offering to drill into a specific group or compare it with a 1-on-1 relationship.