Files
awesome-copilot/plugins/eyeball
Dan Velton 5bb464f433 Add eyeball plugin: document analysis with inline source screenshots
Eyeball generates Word documents where every factual claim includes a
highlighted screenshot from the source material. Supports PDFs, Word
docs, and web URLs. Designed for verifying AI-generated document
analysis against the original source.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-03 23:47:23 -07:00
..

Eyeball

When AI analyzes a document and tells you "Section 10 requires mutual indemnification," how do you know Section 10 actually says that? Eyeball lets you see for yourself.

Eyeball is a Copilot CLI plugin that generates document analyses as Word files with inline screenshots from the source material. Every factual claim in the analysis includes a highlighted excerpt from the original document, so you can verify each assertion without switching between files or hunting for the right page.

What it does

You give Copilot a document (Word file, PDF, or web URL) and ask it to analyze something specific. Eyeball reads the source, writes the analysis, and for each claim, captures a screenshot of the relevant section from the original document with the cited text highlighted in yellow. The output is a Word document on your Desktop with analysis text and source screenshots interleaved.

If the analysis says "Section 9.3 allows termination for cause with a 30-day cure period," the screenshot below it shows Section 9.3 from the actual document with that language highlighted. If the screenshot shows something different, the analysis is wrong and you can see it immediately.

Prerequisites

  • Copilot CLI installed and authenticated
  • Python 3.8 or later
  • One of the following for Word document support (PDFs and web URLs work without these):
    • Microsoft Word (macOS or Windows)
    • LibreOffice (any platform)

Setup

After installing the plugin, install the Python dependencies:

pip3 install pymupdf pillow python-docx playwright
python3 -m playwright install chromium

Verify setup:

python3 <plugin-path>/skills/eyeball/tools/eyeball.py setup-check

Usage

In a Copilot CLI conversation:

use eyeball on ~/Desktop/vendor-agreement.docx -- analyze the indemnification
and liability provisions and flag anything unusual
run eyeball on https://example.com/terms-of-service -- identify the
developer-friendly aspects of these terms
use eyeball to analyze this NDA for non-compete provisions

Eyeball reads the source document, writes the analysis with exact section references, and generates a Word document on your Desktop with source screenshots inline.

Supported source types

Source type Requirements
PDF files Python + PyMuPDF (included in setup)
Web pages Python + Playwright + Chromium (included in setup)
Word documents (.docx) Microsoft Word (macOS/Windows) or LibreOffice

How it works

  1. Eyeball reads the full text of the source document
  2. It writes analysis with exact section numbers, page references, and verbatim quotes
  3. For each claim, it searches the rendered source for the cited text
  4. It captures a screenshot of the surrounding region with the cited text highlighted in yellow
  5. It assembles a Word document with analysis paragraphs and screenshots interleaved
  6. The output lands on your Desktop

The screenshots are dynamically sized: if a section of analysis references text that spans a large region, the screenshot expands to cover it. If the referenced text appears on multiple pages, the screenshots are stitched together.

Why screenshots instead of quoted text?

Quoted text is easy to fabricate. A model can generate a plausible-sounding quote that doesn't actually appear in the source, and without checking, you'd never know. Screenshots from the rendered source are harder to fake -- they show the actual formatting, layout, and surrounding context of the original document. You can see at a glance whether the highlighted text matches the claim, and the surrounding text provides context that a cherry-picked quote might omit.

Limitations

  • Word document conversion requires Microsoft Word or LibreOffice. Without one of these, you can still use Eyeball with PDFs and web URLs.
  • Text search is string-matching. If the source document uses unusual encoding, ligatures, or non-standard characters, some searches may not match.
  • Web page rendering depends on Playwright and may not perfectly capture all dynamic content (e.g., content loaded by JavaScript after page load, content behind login walls).
  • Screenshot quality depends on the source formatting. Dense multi-column layouts or very small text may produce less readable screenshots.

License

MIT