wlzh-invoice-scanner

Extracts invoice data from images and PDFs into categorized Markdown expense reports.

611|75|Updated Jan 10, 2026
One-click install
npx skills add https://github.com/wlzh/skills --skill wlzh-invoice-scanner
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: wlzh-invoice-scanner
Source: https://github.com/wlzh/skills/tree/main/wlzh-invoice-scanner
Command: npx skills add https://github.com/wlzh/skills --skill wlzh-invoice-scanner

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Manually sorting travel, accommodation, and meal invoices for expense reimbursement is slow and error-prone. This Skill scans a folder of invoice images, PDFs, or ZIP archives, recognizes each invoice type, extracts key fields, deduplicates receipts, and produces a categorized Markdown report with verified totals.

Core Features & Use Cases

  • Full invoice recognition: Identifies local transport, long-distance transport (flights, rail), accommodation, refund fees, and other expenses from JPG, PNG, and PDF files, including automatic ZIP extraction and cleanup of XML/OFD metadata files.
  • Verified totals and deduplication: Uses Python-based arithmetic validation to confirm category subtotals match the grand total, and deduplicates invoices by invoice number and supporting documents like itineraries.
  • Dual output modes: Default mode generates a five-category statistical report with an invoice-number summary line; a client entertainment mode (triggered by keywords like 招待费 or 客户) outputs per-invoice entertainment expense rows without aggregation.
  • Use Case: After a business trip, point the Skill at a folder of train tickets, hotel invoices, and taxi receipts to get a ready-to-submit Markdown expense report plus a packaged ZIP archive.

Quick Start

Ask the assistant to run the invoice scanner on your receipts folder, for example: scan the folder ./trip-invoices and generate a categorized expense report.

Frequently Asked Questions about wlzh-invoice-scanner

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I scan a folder of invoices into an expense report?

Point the Skill at a directory containing JPG, PNG, or PDF invoices, or a ZIP archive. It extracts each invoice's number, date, and amount, classifies them into five categories, and writes a Markdown report named after the folder.

What invoice types and file formats are supported?

Supported inputs are JPG, JPEG, PNG, PDF, and ZIP archives. Recognized invoice types include taxi and transit receipts, flight and train tickets, hotel invoices, refund fees, and general expenses like meals and office supplies.

How does the Skill prevent duplicate invoices from being counted?

Deduplication runs during recognition using invoice numbers, so identical invoices count once. Supporting documents like trip itineraries and hotel folios are treated as evidence for the formal invoice and are not billed separately.

How are expense totals verified for accuracy?

After extraction, the Skill runs an independent Python calculation summing all invoice amounts and comparing the result against the report total within a 0.02 tolerance. If validation fails, the report is recalculated until it passes.

Can I process client entertainment expenses separately?

Yes. Including the keywords 招待费, 招待, or 客户 in the input path or prompt switches to entertainment mode, which outputs one row per invoice with invoice number, amount, and merchant, skipping totals and category statistics.

What happens to ZIP files and metadata files during scanning?

ZIP archives are automatically extracted, their contents flattened into the report directory, and the originals deleted. XML and OFD metadata files are removed before scanning, and a final ZIP of the cleaned folder is created.