Reads the visual content of slides, pages, and images the way a human would, not just their embedded text. Use when a PPTX or PDF has image slides, screenshots, charts, scanned figures, or flattened-to-image layouts that the built-in pptx/pdf skills read as empty; when asked to transcribe, describe, OCR, or extract what is shown in an image, slide deck, or document page; or when embedded-text extraction returned little or nothing from a visually rich file. Triggers on 'read this deck', 'what's on these slides', 'transcribe', 'OCR', 'extract text from image', 'describe this chart/diagram', .pptx/.pdf/.png/.jpg with visual content.
npx skills add https://github.com/oaustegard/claude-skills --skill transcribing-images
Read what a slide, page, or image actually *shows* — text plus charts,
diagrams, screenshots, and layout — by rasterizing it and sending the picture
to a vision model. This is the fix for the gap the built-in pptx and pdf
skills leave: they extract embedded text only, so an image slide, a chart, or a
scanned figure reads as empty. Visual transcription reads it the way a person
looking at the slide would.
Use the pptx / pdf skills first for text-native documents — a normal
deck or report where the content is real text boxes. They are faster and exact.
Switch to this skill when text extraction comes back thin or empty on a file
you can see is visually rich, or whenever the meaningful content is a picture:
chart, graph, diagram, screenshot, photo, scanned page, or a slide exported as
one flat image. Don't guess which case you're in — if pptx/pdf returned
little from a file that clearly has content, that *is* the signal.
Everything routes through scripts/transcribe_pages.py, which handles all
three ingress paths and one bad page never aborts the rest:
.pptx / .ppt → LibreOffice headless → PDF → pdftoppm → one PNG per slide.pdf → pdftoppm → one PNG per pageEach page image is then transcribed by a vision model. Run it directly:
python3 scripts/transcribe_pages.py deck.pptx # all slides
python3 scripts/transcribe_pages.py report.pdf --pages 3-7 # subset
python3 scripts/transcribe_pages.py slide.png --model opus # one image
python3 scripts/transcribe_pages.py deck.pptx --json out.json # structured
Or import transcribe_file(...) for programmatic use; it returns a list of
{page, image, text, error} dicts.
The transcription core and its empirical cost/recall data are reused from
browsing-bluesky/scripts/image_transcribe.py — same registry, kept in sync.
Pick with --model:
gemini-lite (default) — cheapest and fastest, ~95% token recall on densescreenshots. Right for routine deck reading.
gemini-flash — token-perfect, ~3x the cost. Use when exact text matters.gemini-3.5-flash — frontier reasoning alongside transcription, ~19x cost.Use when a page needs interpretation, not just reading.
opus — for interactive sessions where you want the reading in your owncontext anyway.
haiku — only if constrained to single-vendor Anthropic; weak at densetranscription (tends to summarize instead of transcribe).
Default to gemini-lite and escalate only when recall or reasoning demands it.
Tesseract 5.x is installed (eng + osd language packs only) and is exposed
as --engine tesseract. It returns glyphs, not a reading — no chart
interpretation, no diagram description, no layout meaning. Use it only for
pages you already know are plain scanned text, when you want a zero-cost,
fully-offline pass. For anything with a chart, diagram, or visual layout, the
vision path is the correct tool; tesseract on those pages will quietly lose the
content that mattered.
In an interactive session you can often skip the model call entirely:
rasterize with scripts/transcribe_pages.py … --json to get the page PNGs, or
just convert and view each page image yourself — Claude reads images natively.
The script's vision-model path exists for batch and autonomous runs where no
human-in-loop reader is available, or when a deck has more pages than is
practical to view one by one.
Default raster is 150 DPI — legible for a vision model and safely under the
5 MB/image base64 ceiling. Bump to --dpi 200–300 only for pages with dense
small fonts; higher DPI risks exceeding the per-image size limit and costs more
tokens for no gain on normal slides.
Comprehensive document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction. When Claude needs to work with professional documents (.docx files) for: (1) Creating new documents, (2) Modifying or editing content, (3) Working with tracked changes, (4) Adding comments, or any other document tasks
Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms. When Claude needs to fill in a PDF form or programmatically process, generate, or analyze PDF documents at scale.
Presentation creation, editing, and analysis. When Claude needs to work with presentations (.pptx files) for: (1) Creating new presentations, (2) Modifying or editing content, (3) Working with layouts, (4) Adding comments or speaker notes, or any other presentation tasks
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.
Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text/tables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting/decrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.
Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files). Triggers include: any mention of 'Word doc', 'word document', '.docx', or requests to produce professional documents with formatting like tables of contents, headings, page numbers, or letterheads. Also use when extracting or reorganizing content from .docx files, inserting or replacing images in documents, performing find-and-replace in Word files, working with tracked changes or comments, or converting content into a polished Word document. If the user asks for a 'report', 'memo', 'letter', 'template', or similar deliverable as a Word or .docx file, use this skill. Do NOT use for PDFs, spreadsheets, Google Docs, or general coding tasks unrelated to document generation.
Use this skill any time a .pptx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx file (even if the extracted content will be used elsewhere, like in an email or summary); editing, modifying, or updating existing presentations; combining or splitting slide files; working with templates, layouts, speaker notes, or comments. Trigger whenever the user mentions \"deck,\" \"slides,\" \"presentation,\" or references a .pptx filename, regardless of what they plan to do with the content afterward. If a .pptx file needs to be opened, created, or touched, use this skill.
Create and edit Obsidian Flavored Markdown with wikilinks, embeds, callouts, properties, and other Obsidian-specific syntax. Use when working with .md files in Obsidian, or when the user mentions wikilinks, callouts, frontmatter, tags, embeds, or Obsidian notes.
Take oaustegard/transcribing-images from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.