Local Context Router
A multimodal model reads a PDF by extracting its text and rendering every page to an image, then paying for both. On a page that is mostly prose, the image is wasted spend. Run this preflight first and send the model only what each page needs.
When to use
Before reading, summarizing, or extracting from a PDF, scan, or screenshot the user has shared.
Requirements
The localcontextrouter package must be installed (pip install localcontextrouter,
macOS). It provides the localctx command used below.
Run
Route the document and read the JSON, rendering any visual pages into a folder:
localctx <path-to-document> --json --vision-dir ./lcr-pages
If the localctx command is not available, run the bundled script with a Python
that has localcontextrouter installed (the script imports the same package):
python scripts/preflight.py <path-to-document> --json --vision-dir ./lcr-pages
Use the result
The JSON has tokens_saved and a pages array. Each page carries source,
text, text_tokens, image_tokens, and image:
source: "text": usetextdirectly; do not attach the image.source: "ocr": the page was image-only and has been OCR'd on-device; usetext.source: "vision": the page is a table, chart, or diagram; attach the image atimageso the model can read it. Thetextis a rough fallback only.
Assemble the text and OCR pages in reading order, attach images only for the
vision pages, and mention tokens_saved if the user cares about cost.
Notes
Everything runs locally and offline; the document does not leave the machine.