Claude Skill

pptx

Extract text from Microsoft PowerPoint presentations

LLM Mart · 0 points · 20 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download axoviq-ai-synthadoc-synthadoc_skills_pptx-8dee0ee.zip · 1 KB
Part of axoviq-ai/synthadoc — 10 skills

Install

skills CLI npx skills add https://github.com/axoviq-ai/synthadoc/tree/main/synthadoc/skills/pptx
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install axoviq-ai-synthadoc@llmmart
Git git clone https://github.com/axoviq-ai/synthadoc.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole axoviq-ai/synthadoc collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

PPTX Skill

Extracts text from .pptx files using python-pptx. Each slide is rendered as a titled section; speaker notes are appended when present.

Setup

pip install python-pptx

Standalone usage

import asyncio
from synthadoc.skills.pptx.scripts.main import PptxSkill

skill = PptxSkill()

async def main():
    result = await skill.extract("/path/to/slides.pptx")
    print(result.text)      # slide titles + body text + speaker notes
    print(result.metadata)  # {"slides": N}

asyncio.run(main())

When this skill is used

  • Source path ends with .pptx
  • User intent contains: powerpoint, presentation, pptx
Files (synthadoc)
  • scripts
    • main.py 1.9 KB
      # SPDX-License-Identifier: AGPL-3.0-or-later
      # Copyright (C) 2026 Paul Chen / axoviq.com
      from pptx import Presentation
      from synthadoc.skills.base import BaseSkill, ExtractedContent, SkillMeta
      
      
      class PptxSkill(BaseSkill):
          meta = SkillMeta(name="pptx", description="Extract text from PowerPoint presentations",
                           extensions=[".pptx"])
      
          async def extract(self, source: str) -> ExtractedContent:
              try:
                  prs = Presentation(source)
              except Exception as exc:
                  raise ValueError(
                      f"Cannot read '{source}' as a PowerPoint file: {exc}. "
                      "Ensure the file is a valid .pptx (Office Open XML) document."
                  ) from exc
              sections: list[str] = []
      
              for i, slide in enumerate(prs.slides, start=1):
                  lines: list[str] = []
                  title = ""
                  for shape in slide.shapes:
                      if not shape.has_text_frame:
                          continue
                      text = shape.text_frame.text.strip()
                      if not text:
                          continue
                      if shape.shape_type == 13:  # picture — skip
                          continue
                      if not title and shape.name.lower().startswith("title"):
                          title = text
                      else:
                          lines.append(text)
      
                  notes = ""
                  if slide.has_notes_slide:
                      notes_text = slide.notes_slide.notes_text_frame.text.strip()
                      if notes_text:
                          notes = f"\n_Notes: {notes_text}_"
      
                  heading = f"## Slide {i}" + (f": {title}" if title else "")
                  body = "\n".join(lines)
                  sections.append(f"{heading}\n{body}{notes}" if body or notes else heading)
      
              text = "\n\n".join(sections)
              return ExtractedContent(
                  text=text,
                  source_path=source,
                  metadata={"slides": len(prs.slides)},
              )
      
    • __init__.py 0 B
  • requirements.txt 12 B
    python-pptx
    
  • SKILL.md 990 B
    ---
    name: pptx
    version: "1.0"
    description: Extract text from Microsoft PowerPoint presentations
    entry:
      script: scripts/main.py
      class: PptxSkill
    triggers:
      extensions:
        - ".pptx"
      intents:
        - "powerpoint"
        - "presentation"
        - "pptx"
    requires:
      - python-pptx
    author: axoviq.com
    license: AGPL-3.0-or-later
    ---
    
    # PPTX Skill
    
    Extracts text from `.pptx` files using `python-pptx`. Each slide is rendered
    as a titled section; speaker notes are appended when present.
    
    ## Setup
    
    ```bash
    pip install python-pptx
    ```
    
    ## Standalone usage
    
    ```python
    import asyncio
    from synthadoc.skills.pptx.scripts.main import PptxSkill
    
    skill = PptxSkill()
    
    async def main():
        result = await skill.extract("/path/to/slides.pptx")
        print(result.text)      # slide titles + body text + speaker notes
        print(result.metadata)  # {"slides": N}
    
    asyncio.run(main())
    ```
    
    ## When this skill is used
    
    - Source path ends with `.pptx`
    - User intent contains: `powerpoint`, `presentation`, `pptx`
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related