teams-scrape

Extract Microsoft Teams chat messages via clipboard capture and parse them into structured JSON.

6|1|Updated Nov 26, 2025
One-click install
npx skills add https://github.com/nathanvale/side-quest-marketplace-old --skill teams-scrape-nathanvale
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: teams-scrape
Source: https://github.com/nathanvale/side-quest-marketplace-old/tree/main/plugins/teams-scrape/skills/teams-scrape
Command: npx skills add https://github.com/nathanvale/side-quest-marketplace-old --skill teams-scrape-nathanvale

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Manually copying and structuring Microsoft Teams chat history is tedious and error-prone, and there is no built-in way to track which messages are new since your last capture. This Skill automates navigation, clipboard capture, parsing, and persistence of Teams conversations with deterministic new-message detection. ## Core Features & Use Cases - Automated UI Capture: Uses AppleScript via the macos-automator MCP to navigate Teams with Cmd+G and copy chat content to the clipboard. - Structured Parsing: Converts Teams clipboard text into JSON messages with authors, timestamps, replies, reactions, attachments, mentions, and edited flags. - Deterministic Deduplication: Persists chats to ~/.config/teams-scrape/ with stable message IDs, so re-running a scrape reports only genuinely new messages. - Use Case: Ask to scrape your DM with a colleague before a meeting; the Skill navigates Teams, captures the chat, and returns only the messages added since your last scrape. ## Quick Start Ask the assistant to scrape your Teams chat with a specific person or channel, for example: scrape my Teams chat with Jay Pancholi and show me the new messages.

Frequently Asked Questions about teams-scrape

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I export Microsoft Teams chat history to JSON?

Use this Skill to navigate Teams via AppleScript, copy the chat with Cmd+A and Cmd+C, then pipe the clipboard to the teams-scrape CLI. It parses the Teams clipboard format into structured JSON with authors, timestamps, replies, and reactions.

How to detect new Teams messages since the last scrape?

The CLI computes stable message IDs from author, timestamp, and content, then compares them against the stored chat in ~/.config/teams-scrape/. Only messages with unseen IDs are reported as new, so identical scrapes return zero new messages.

Does Teams scraping work on Windows or Linux?

No, this Skill is macOS-only. It depends on AppleScript executed through the macos-automator MCP and requires accessibility permissions granted to the terminal application.

Why does Teams clipboard capture return empty content?

Empty clipboard usually means the chat area lacked focus during capture. The workflow presses Escape before Cmd+A to clear focus, and increasing AppleScript delays helps when Teams responds slowly.

What Teams message elements can be parsed from clipboard text?

The parser handles authors, AU-format timestamps, multi-line content, reply reference blocks, emoji reactions with counts, attachments (GIF, image, file, URL preview, Loop component), mentions, and edited message markers.