Best for
- Use when (1) a meeting transcript is provided and meeting minutes, notes, or a summary are requested; (2) multiple versions of minutes must be merged without losing content; (3) existing minutes need review against the…
daymade/claude-code-skills/daymade-audio/meeting-minutes-taker/SKILL.md
Use it for engineering and operations tasks; the detail page covers purpose, installation, and practical steps.
Decision brief
Transform raw meeting transcripts into comprehensive, evidence-based meeting minutes through iterative review.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/daymade/claude-code-skills --skill "daymade-audio/meeting-minutes-taker"Inspect the Agent Skill "meeting-minutes-taker" from https://github.com/daymade/claude-code-skills/blob/98c21cf79d9900e6bd7c9678af89c42f50d33fb3/daymade-audio/meeting-minutes-taker/SKILL.md at commit 98c21cf79d9900e6bd7c9678af89c42f50d33fb3. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
Pre-processing (Optional but Recommended): - Document conversion: Use doc-to-markdown skill to convert .docx/.pdf to Markdown first (preserves tables/images) - Transcript cleanup: Use transcript-fixer skill to fix ASR/STT errors if transcript quality is poor - Context file: Prep…
Copy this checklist and track progress:
Analyze the transcript to identify: - Meeting topic and attendees - Key decisions with supporting quotes - Action items with owners - Deferred items / open questions
Trigger: Transcript only has generic labels like "Speaker 1", "Speaker 2", "发言人1", etc.
When the transcript comes from a platform that supports manual speaker labeling (Feishu Minutes 飞书妙记, Tencent Meeting 腾讯会议, or any tool with a diarization-editing page), stop and ask the user to label the speakers at the source, then re-export/re-ingest the labeled transcript be…
Permission review
The documentation asks the agent to read local files, directories, or repositories.
Load project-specific context file if provided by user (optional)The documentation asks the agent to read local files, directories, or repositories.
Load team directory sectionThe documentation asks the agent to create, modify, or delete local files.
| [context_file_template.md](references/context_file_template.md) | When helping user create context.md - Contains team directory template |Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 94/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 1,357 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Transform raw meeting transcripts into comprehensive, evidence-based meeting minutes through iterative review.
Pre-processing (Optional but Recommended):
doc-to-markdown skill to convert .docx/.pdf to Markdown first (preserves tables/images)transcript-fixer skill to fix ASR/STT errors if transcript quality is poorcontext.md with team directory for accurate speaker identificationCore Workflow:
Auto-generate output filename from transcript content:
Pattern: YYYY-MM-DD-<topic>-<type>.md
| Component | Source | Examples |
|---|---|---|
| Date | Transcript metadata or first date mention | 2026-01-25 |
| Topic | Main discussion subject (2-4 words, kebab-case) | api-design, product-roadmap |
| Type | Meeting category | review, sync, planning, retro, kickoff |
Examples:
2026-01-25-order-api-design-review.md2026-01-20-q1-sprint-planning.md2026-01-18-onboarding-flow-sync.mdAsk user to confirm the suggested filename before writing.
Copy this checklist and track progress:
Meeting Minutes Progress:
- [ ] Step 0 (Optional): Pre-process transcript with transcript-fixer
- [ ] Step 1: Read and analyze transcript
- [ ] Step 1.5: Speaker identification (if transcript has "Speaker 1/2/3")
- [ ] Phase 0 FIRST: ask user to label speakers on the source platform (Feishu Minutes / Tencent Meeting), re-export, use labeled transcript
- [ ] Fallback only (source labeling unavailable or declined by user):
- [ ] Analyze speaker features (word count, style, topic focus)
- [ ] Match against context.md team directory (if provided)
- [ ] Present speaker mapping with per-speaker evidence to user for confirmation
- [ ] Step 1.6: Generate intelligent filename, confirm with user
- [ ] Step 1.7: Quality assessment (optional, affects processing depth)
- [ ] Step 2: Multi-turn generation (PARALLEL subagents with Task tool)
- [ ] Create transcript-specific dir: <output_dir>/intermediate/<transcript-name>/
- [ ] Launch 3 Task subagents IN PARALLEL (single message, 3 Task tool calls)
- [ ] Subagent 1 → <output_dir>/intermediate/<transcript-name>/version1.md
- [ ] Subagent 2 → <output_dir>/intermediate/<transcript-name>/version2.md
- [ ] Subagent 3 → <output_dir>/intermediate/<transcript-name>/version3.md
- [ ] Merge: UNION all versions, AGGRESSIVELY include ALL diagrams → draft_minutes.md
- [ ] Final: Compare draft against transcript, add omissions
- [ ] Step 3: Self-review for completeness
- [ ] Step 3.5: Retrieval Self-Test (consumption-side verification)
- [ ] Fresh-context subagent extracts future-query claims list from transcript ONLY (never sees draft) → intermediate/<transcript-name>/retrieval-claims.md
- [ ] Hit-test each claim against retrievable layer (Key Decisions / Action Items / Parking Lot / Open Questions), by component, with lexical anchors
- [ ] Revocation scan before ANY promotion; promote with [self-test promoted] tag + greppable verbatim quote; uncertain → Open Questions
- [ ] Report "enumerated N / hits M / promoted K / uncertain list" (never a binary pass); fail-open with visible NOT-RUN note if extraction fails
- [ ] Step 4: Present draft to user for human review
- [ ] Step 5: Cross-AI comparison (if human provides external AI output)
- [ ] Step 6: Iterate on human feedback (expect multiple rounds)
- [ ] Step 7: Human approves final version
Note: <output_dir> = directory where final meeting minutes will be saved (e.g., project-docs/meeting-minutes/)
Note: <transcript-name> = name derived from transcript file (e.g., 2026-01-15-product-api-design)
Analyze the transcript to identify:
Trigger: Transcript only has generic labels like "Speaker 1", "Speaker 2", "发言人1", etc.
When the transcript comes from a platform that supports manual speaker labeling (Feishu Minutes 飞书妙记, Tencent Meeting 腾讯会议, or any tool with a diarization-editing page), stop and ask the user to label the speakers at the source, then re-export/re-ingest the labeled transcript before generating minutes. Send the user the source page link — it is usually in the transcript's frontmatter (minute_url, meeting URL).
Why this beats inference:
[inferred] markers everywhere plus a per-speaker human review round; source labeling produces clean ground truth once.Fall back to Phase A–C below only when: (a) the user explicitly says to proceed by inference, or (b) the source cannot be labeled (raw audio file with no platform page, no edit permission). In the fallback, every mapping must carry evidence and a confidence level, unresolved labels stay as-is (never force-assign), and when the user later labels the source, go back and correct the minutes.
Fallback approach (inspired by Anker Skill):
For each speaker, analyze:
| Feature | What to Look For |
|---|---|
| Word count | Total words spoken (high = senior/lead, low = observer) |
| Segment count | Number of times they speak (frequent = active participant) |
| Avg segment length | Average words per turn (long = presenter, short = responder) |
| Filler ratio | % of filler words (对/嗯/啊/就是/然后) - low = prepared speaker |
| Speaking style | Formal/informal, technical depth, decision authority |
| Topic focus | Areas they discuss most (backend, frontend, product, etc.) |
| Interaction pattern | Do others ask them questions? Do they assign tasks? |
Example analysis output:
Speaker Analysis:
┌──────────┬────────┬──────────┬─────────────┬─────────────┬────────────────────────┐
│ Speaker │ Words │ Segments │ Avg Length │ Filler % │ Role Guess │
├──────────┼────────┼──────────┼─────────────┼─────────────┼────────────────────────┤
│ 发言人1 │ 41,736 │ 93 │ 449 chars │ 3.6% │ 主讲人 (99% of content)│
│ 发言人2 │ 101 │ 8 │ 13 chars │ 4.0% │ 对话者 (short responses)│
└──────────┴────────┴──────────┴─────────────┴─────────────┴────────────────────────┘
Inference rules:
- 占比 > 70% + 平均长度 > 100字 → 主讲人
- 平均长度 < 50字 → 对话者/响应者
- 语气词占比 < 5% → 正式/准备充分
- 语气词占比 > 10% → 非正式/即兴发言
When user provides a project context file (e.g., context.md):
Context file should include:
## Team Directory
| Name | Role | Communication Style |
|------|------|---------------------|
| Alice | Backend Lead | Technical, decisive, assigns backend tasks |
| Bob | PM | Product-focused, asks requirements questions |
| Carol | TPM | Process-focused, tracks timeline/resources |
CRITICAL: Never silently assume speaker identity.
Present analysis summary to user:
Speaker Analysis:
- Speaker 1 → Alice (Backend Lead) - 80% confidence based on: technical focus, task assignment pattern
- Speaker 2 → Bob (PM) - 75% confidence based on: product questions, requirements discussion
- Speaker 3 → Carol (TPM) - 70% confidence based on: timeline concerns, resource tracking
Please confirm or correct these mappings before I proceed.
After user confirmation, apply mappings consistently throughout the document.
Evaluate transcript quality to determine processing depth:
Scoring Criteria (1-10 scale):
| Factor | Score Impact |
|---|---|
| Content volume | >10k chars: +2, 5-10k: +1, <2k: cap at 3 |
| Filler word ratio | <5%: +2, 5-10%: +1, >10%: -1 |
| Speaker clarity | Main speaker >80%: +1 (clear presenter) |
| Technical depth | High technical content: +1 |
Quality Tiers:
| Score | Tier | Processing Approach |
|---|---|---|
| ≥8 | High | Full structured minutes with all sections, diagrams, quotes |
| 5-7 | Medium | Standard minutes, focus on key decisions and action items |
| <5 | Low | Summary only - brief highlights, skip detailed transcription |
Example assessment:
📊 Transcript Quality Assessment:
- Content: 41,837 chars (+2)
- Filler ratio: 3.6% (+2)
- Main speaker: 99% (+1)
- Technical depth: High (+1)
→ Quality Score: 10/10 (High)
→ Recommended: Full structured minutes with diagrams
User decision point: If quality is Low (<5), ask user:
"Transcript quality is low (碎片对话/噪音较多). Generate full minutes or summary only?"
A single pass will absolutely lose content. Use multi-turn generation with redundant complete passes:
Each pass generates COMPLETE minutes (all sections) from the full transcript. Multiple passes with isolated context catch different details. UNION merge consolidates all findings.
❌ WRONG: Narrow-focused passes (wastes tokens, causes bias)
Pass 1: Only extract decisions
Pass 2: Only extract action items
Pass 3: Only extract discussion
✅ CORRECT: Complete passes with isolated context
Pass 1: Generate COMPLETE minutes (all sections) → version1.md
Pass 2: Generate COMPLETE minutes (all sections) with fresh context → version2.md
Pass 3: Generate COMPLETE minutes (all sections) with fresh context → version3.md
Merge: UNION all versions, consolidate duplicates → draft_minutes.md
Pass 1: Read transcript → Generate complete minutes → Write to: <output_dir>/intermediate/version1.md
Pass 2: Fresh context → Read transcript → Generate complete minutes → Write to: <output_dir>/intermediate/version2.md
Pass 3: Fresh context → Read transcript → Generate complete minutes → Write to: <output_dir>/intermediate/version3.md
Merge: Read all versions → UNION merge (consolidate duplicates) → Write to: draft_minutes.md
Final: Compare draft against transcript → Add any remaining omissions → final_minutes.md
MUST use the Task tool to spawn multiple subagents with isolated context, each generating complete minutes:
Implementation using Task tool:
// Launch ALL 3 subagents in PARALLEL (single message, multiple Task tool calls)
Task(subagent_type="general-purpose", prompt="Generate complete meeting minutes from transcript...", run_in_background=false) → version1.md
Task(subagent_type="general-purpose", prompt="Generate complete meeting minutes from transcript...", run_in_background=false) → version2.md
Task(subagent_type="general-purpose", prompt="Generate complete meeting minutes from transcript...", run_in_background=false) → version3.md
// After all complete:
Main Agent: Read all versions → UNION merge, consolidate duplicates → draft_minutes.md
CRITICAL: Subagent Prompt Must Include:
Why multiple complete passes work:
Why isolated context matters:
Critical: Write each pass output to files, not conversation context.
Path Convention: All intermediate files should be created in a transcript-specific subdirectory under <output_dir>/intermediate/ to avoid conflicts between different transcripts being processed.
CRITICAL: Use transcript-specific subdirectory structure:
<output_dir>/intermediate/<transcript-name>/version1.md
<output_dir>/intermediate/<transcript-name>/version2.md
<output_dir>/intermediate/<transcript-name>/version3.md
Example: If final minutes will be project-docs/meeting-minutes/2026-01-14-api-design.md, then:
project-docs/meeting-minutes/intermediate/2026-01-14-api-design/version1.mdintermediate/ folder should be added to .gitignore (temporary working files)// Create transcript-specific subdirectory first
mkdir: <output_dir>/intermediate/<transcript-name>/
// Launch all 3 subagents IN PARALLEL (must be single message with 3 Task tool calls)
Task 1 → Write to: <output_dir>/intermediate/<transcript-name>/version1.md (complete minutes)
Task 2 → Write to: <output_dir>/intermediate/<transcript-name>/version2.md (complete minutes)
Task 3 → Write to: <output_dir>/intermediate/<transcript-name>/version3.md (complete minutes)
Merge Phase:
Read: <output_dir>/intermediate/<transcript-name>/version1.md
Read: <output_dir>/intermediate/<transcript-name>/version2.md
Read: <output_dir>/intermediate/<transcript-name>/version3.md
→ UNION merge, consolidate duplicates, INCLUDE ALL DIAGRAMS → Write to: draft_minutes.md
Final Review:
Read: draft_minutes.md
Read: original_transcript.md
→ Compare & add omissions → Write to: final_minutes.md
Benefits of file-based context offloading:
IMPORTANT: Always preserve intermediate versions in transcript-specific subdirectory:
<output_dir>/intermediate/<transcript-name>/version1.md, version2.md, version3.md - Each subagent outputintermediate/ to .gitignore - These are temporary working files, not final deliverablesmeeting-media/<meeting-name>/ folder and embed inline using  syntax; include brief descriptions with the visuals - this creates "next level" human-readable minutes where readers understand what was discussed before reading the discussionAfter initial generation, immediately review against transcript:
Completeness Checklist:
- [ ] All discussion topics covered?
- [ ] All decisions have supporting quotes?
- [ ] All speakers attributed correctly?
- [ ] All action items have specific owners?
- [ ] Numerical values preserved (ranges, counts)?
- [ ] Entity relationships captured?
- [ ] State machines complete (all states listed)?
If gaps found, add missing content silently without mentioning what was missed.
Why this step exists. The three generation subagents share one prompt and one implicit model of "what a decision looks like" — their errors are correlated, so UNION merge protects against content loss but not against a shared blind spot. Step 3's checklist verifies the decisions you already identified; it cannot find what none of the passes classified as a decision. Meanwhile, minutes are consumed by retrieval: weeks later someone asks "did X ever say we must do Y?" and scans the Key Decisions / Action Items tables. A directive that lives only in Discussion prose fails that query even though no content was "lost". This step tests that terminal property directly. (Honest scope: it is a second, partially-decorrelated recall layer — not an oracle. Known blind spots it does NOT cover: assertions whose pragmatic force contradicts their phrasing ("fine, do it without load-testing, just don't say I didn't warn you" = an on-record objection), and silent-consent moments that produce no utterance at all.)
Procedure (after merge, before presenting the draft):
Reverse-extract a future-query claims list. Spawn ONE fresh-context subagent that reads ONLY the transcript — it must NOT see the draft minutes (a speaker-name mapping is fine; the anchoring risk comes from the draft's structure, not from a roster). Its task:
Imagine project members returning 1–8 weeks from now to verify: "did [person] ever instruct / promise / decide / veto / commit-a-number on X?" Enumerate every such claim. Each claim = who + type (instruction / promise / decision / veto / number-commitment / conditional-consensus) + content + scope (+ expiry condition if any) + timestamp. Include only claims with a clear owner; skip opinions and background narration.
For long transcripts (roughly > 60k characters or > 90 minutes), extract in overlapping chunks and merge — a single pass inherits lost-in-the-middle attention decay exactly where long meetings bury directives. Write the list to <output_dir>/intermediate/<transcript-name>/retrieval-claims.md (auditable evidence that the check ran, and reviewable by the human later).
Hit-test each claim against the retrievable layer (main agent): the retrievable layer = Key Decisions titles + Decision lines, Action Items table, Parking Lot, Open Questions — a hit means a reader scanning ONLY those finds the claim, no prose reading required. Judge hits by component: who / action / deadline / expiry-condition each need to be present (a table row that names the task but drops the expiry condition is a partial miss). Require lexical anchors — the row must share the claim's key actor/action words; do not accept purely semantic "an LLM could argue they match" equivalence, because the future reader is a hurried human, not a charitable model.
Disposition for misses. Before promoting anything, run a revocation scan: grep the transcript for later reversals / modifications / conditioning of the same topic ("earlier we said air-freight — hold that until customs confirms"). A claim that was superseded in-meeting must NOT be promoted as-is; record the final state instead. This scan is mandatory — promoting a revoked decision is the one way this step can make minutes worse than not running it. Then:
[self-test promoted], with a verbatim quote + timestamp that can be grepped back to the transcript (a promotion without a greppable quote is rejected — this caps hallucinated-claim risk).Report, never a binary "passed". Output: enumerated N / hits M / promoted K / uncertain list and show it alongside the draft. Promoted rows are exactly what the human should review hardest — unlike Step 3's silent gap-filling, promotions are never silent.
Fail-open. If the extraction subagent stalls or fails, deliver the minutes anyway with a visible note "Retrieval Self-Test: NOT RUN". This gate must never block delivery — a gate that falsely blocks healthy runs trains its operator to skip it permanently.
On iteration rounds (Step 6 feedback cycles, cross-AI merges): re-run at least the hit-test against the final version before delivery — content added in later rounds otherwise bypasses the check entirely.
Present the complete minutes as a draft for human review. Emphasize:
User may:
When human provides output from another AI tool (e.g., Gemini, ChatGPT, etc.):
This step is valuable because:
Comparison Process:
Example findings from cross-AI comparison:
When user requests deeper review ("deep review", "check again", "anything missing"):
When user provides another version to merge:
Merge Principle: UNION, never remove
During merge phase, MUST aggressively include ALL diagrams from ALL versions.
Diagrams are high-value content that took effort to generate. Different subagents may produce different diagrams based on what they focused on. Missing a diagram during merge is a significant loss.
Merge diagram strategy:
Common diagram types to look for:
Example: Missed diagram from v3 If v3 has a flowchart for "Status Query Mechanism" but v1/v2 don't have it, that flowchart MUST appear in the merged output. Don't assume it's covered by other diagrams.
| File | When to Load |
|---|---|
| meeting_minutes_template.md | First generation - Contains template structure |
| completeness_review_checklist.md | During review steps - Contains completeness checks |
| context_file_template.md | When helping user create context.md - Contains team directory template |
| Project context file (user-provided) | When user provides project-specific context (team directory, terminology, conventions) |
Full pipeline for .docx transcripts:
Step 0: doc-to-markdown # Convert .docx → Markdown (preserves tables/images)
↓
Step 0.5: transcript-fixer # Fix ASR errors (optional, if quality is poor)
↓
Step 1+: meeting-minutes-taker # Generate structured minutes
Commands:
# 1. Install markitdown (one-time)
uv tool install "markitdown[pdf]"
# 2. Convert .docx to markdown
markitdown "录音转写.docx" -o transcript.md
# 3. Then use meeting-minutes-taker on transcript.md
Benefits of combo workflow:
Diagrams elevate meeting minutes beyond pure text. They make complex discussions immediately understandable for human reviewers. Always look for opportunities to add visual diagrams.
sequenceDiagram
participant FE as Frontend
participant BE as Backend
participant SVC as External Service
participant DB as Database
FE->>BE: Click "Submit Order"
BE->>SVC: POST /process (send data)
SVC-->>BE: Return {status}
BE->>DB: Save result
BE-->>FE: Return success
erDiagram
ORDER ||--o{ ORDER_ITEM : "1:N"
ORDER {
uuid id PK
string customer_name
decimal total_amount
}
ORDER_ITEM {
uuid id PK
uuid order_id FK
int quantity
}
sequenceDiagram
participant User
participant System
Note over System: Current: V2 Active
User->>System: Create V3 (inactive)
User->>System: Set V2 inactive
User->>System: Set V3 active
Note over System: New: V3 Active
Quotes MUST use proper markdown blockquote format on separate lines:
❌ WRONG: Inline quote format
* **Quote:** > "This is wrong" - **Speaker**
✅ CORRECT: Blockquote on separate lines
* **Quote:**
> "This is the correct format" - **Speaker**
✅ CORRECT: Multiple quotes
* **Quote:**
> "First quote from the discussion" - **Speaker1**
> "Second quote supporting the same decision" - **Speaker2**
Key formatting rules:
* **Quote:** on its own line (no quote content on this line)* **Quote:**> prefix- **SpeakerName**### 2.X [Category] Decision Title
* **Decision:** Specific decision made
* **Logic:**
* Reasoning point 1
* Reasoning point 2
* **Quote:**
> "Exact quote from transcript" - **Speaker Name**
Items with keywords like "defer to later", "Phase 2", "not in MVP" go to Parking Lot with context.
Meeting minutes are not one-shot outputs. High-quality minutes emerge through multiple review cycles:
Round 1: Initial generation
└─ Human review: "Check original transcript for missing items"
Round 2: Deep transcript review, add omitted content
└─ Human review: "UserProfile conflicts with existing Account entity naming"
Round 3: Update terminology to use "CustomerProfile" instead
└─ Human review: "Note field conflicts with existing Comment system"
Round 4: Update to use "Annotation" instead of "Note"
└─ Human approval: Final version ready
The AI generates the first draft; humans refine to the final version. Never assume the first output is complete or uses correct terminology. Always encourage human review and be ready for multiple iteration cycles.
intermediate/<transcript-name>/ to avoid conflicts> "quote"[doc.md](reviewed-document)); use plain text for external/local documents not in the repositoryAfter structuring meeting minutes, suggest exporting:
Meeting minutes complete: [N] decisions, [M] action items captured.
Options:
A) Export as PDF — run /daymade-docs:pdf-creator (Recommended for sharing)
B) Export as slides — run /daymade-docs:ppt-creator (for presentation)
C) No thanks — the markdown is sufficient
Frequently asked questions
Transform raw meeting transcripts into comprehensive, evidence-based meeting minutes through iterative review.
The source record exposes this install command: npx skills add https://github.com/daymade/claude-code-skills --skill "daymade-audio/meeting-minutes-taker". Inspect the command and pinned source before running it.
Static rules flagged read-files, write-files in the source; the page lists the matching lines and excerpts.
Alternatives
alirezarezvani/claude-skills
App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist
brucesongs/kali-claw
Insecure Design (OWASP A06:2025) focuses on security flaws in system architecture and design phases, rather than code implementation-level bugs.
NintendaDev/unikit-ai
Generate and maintain the project's TECHNICAL documentation from its codebase — scans the project structure, tech stack, and module boundaries, then writes a lean README landing page plus detailed topic pages (architecture, modules, setup, build, APIs), only the docs that are relevant. Use whenever the user wants to create, update, or validate documentation of the CODE or the project itself, e.g. "generate documentation", "create docs", "write the README", "update the project docs", "document th
K-Dense-AI/scientific-agent-skills
Distributed computing for larger-than-RAM pandas/NumPy workflows. Use when you need to scale existing pandas/NumPy code beyond memory or across clusters. Best for parallel file processing, distributed ML, integration with existing pandas code. For out-of-core analytics on single machine use vaex; for in-memory speed use polars.