with one click
image
Extract text from images using a vision LLM
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Extract text from images using a vision LLM
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Extract text from PDF documents
Extract text from Microsoft Word documents
Ingest Markdown and plain text files
Extract text from Microsoft PowerPoint presentations
Fetch and extract text from web URLs
Search the web and ingest results as wiki pages
| name | image |
| version | 1.0 |
| description | Extract text from images using a vision LLM |
| entry | {"script":"scripts/main.py","class":"ImageSkill"} |
| triggers | {"extensions":[".png",".jpg",".jpeg",".webp",".gif",".tiff"],"intents":["image","screenshot","diagram","photo"]} |
| requires | [] |
| author | axoviq.com |
| license | AGPL-3.0-or-later |
Base64-encodes the image and passes it to a vision-capable LLM that extracts
all text and key information. Returns the LLM's response as result.text.
No pip dependency — the skill uses only the Python standard library plus a
LLM provider you supply at construction time. The provider can be any object
that implements the complete() interface (see below).
import asyncio
from synthadoc.skills.image.scripts.main import ImageSkill
# ImageSkill REQUIRES a vision-capable provider — calling extract() without
# one raises ValueError immediately.
skill = ImageSkill(provider=my_provider)
async def main():
result = await skill.extract("/path/to/screenshot.png")
print(result.text) # extracted text from the image
print(result.metadata) # {"tokens_input": N, "tokens_output": N}
asyncio.run(main())
Provider interface — any object with this async method:
async def complete(
messages: list, # list of Message objects from synthadoc.skills.base
system: str | None = None,
temperature: float = 0.0,
max_tokens: int = 4096,
) -> object # must have .text (str), .input_tokens (int), .output_tokens (int)
Build the provider with any vision-capable model. Message is importable
from synthadoc.skills.base — no dependency on synthadoc.providers:
from synthadoc.skills.base import Message
Supported image formats: .png, .jpg/.jpeg, .webp, .gif, .tiff
.png, .jpg, .jpeg, .webp, .gif, or .tiffimage, screenshot, diagram, photo