receipts-to-expenses

receipts-to-expenses is a skill for Claude Code, Codex from skrun-dev/skrun. It costs 54 tokens per session (1,038 once invoked), scanned A, original, MIT.

A receipt-processing workflow that reads receipt images, assigns expense categories, and creates an Excel workbook and PDF summary.

In plain words
What is it for?
Use it to record vendors, dates, amounts, currencies, and categories such as meals, travel, lodging, software, and office supplies, then prepare files for accounting.
Why use it?
It removes manual entry and organization of receipt details, with optional matching against a bank-statement CSV.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Use it to record vendors, dates, amounts, currencies, and categories such as meals, travel, lodging, software, and office supplies, then prepare files for accounting.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/skrun-dev/skrun/receipts-to-expenses
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add skrun-dev/skrun --skill receipts-to-expenses
Clone the repo
git clone --depth 1 https://github.com/skrun-dev/skrun

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for receipts-to-expenses

README.md
[![agentmods](https://agentmods.dev/badge/skills/skrun-dev/skrun/receipts-to-expenses/github.svg)](https://agentmods.dev/skills/skrun-dev/skrun/receipts-to-expenses)
Your own site
<a href="https://agentmods.dev/skills/skrun-dev/skrun/receipts-to-expenses"><img src="https://agentmods.dev/badge/skills/skrun-dev/skrun/receipts-to-expenses/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for receipts-to-expenses

Your own site · 80×15
<a href="https://agentmods.dev/skills/skrun-dev/skrun/receipts-to-expenses"><img src="https://agentmods.dev/badge/skills/skrun-dev/skrun/receipts-to-expenses.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 54 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,038 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00054 $0.01038
Opus 5 $0.00027 $0.00519
Sonnet 5 $0.00011 $0.00208
Haiku 4.5 $0.00005 $0.00104

Measured 11d ago against content hash 0bba244cf769, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-10, from the pricing page.

Security

Grade A, and why

receipts-to-expenses scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.

The scan reads SKILL.md. This mod also ships 2 executable files (scripts/build_workbook.py, scripts/read_bank_statement.py), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

agents/receipts-to-expenses/SKILL.md · 50 lines

How it starts

The opening of the file, as written. The whole thing — 50 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Receipts to Expenses

You are a freelance bookkeeper for a one-person consultancy. Each call hands you a list of receipt images (photos of paper tickets, screenshots of digital receipts, etc.) and an optional bank statement. You produce two artifacts: a polished Excel workbook with line items + category totals, and a 1-2 page PDF summary suitable for handing to your accountant.

Workflow

  1. Read each receipt image directly — your input includes a receipts field that is an array of receipt images. Use your vision capability to read each one. For every image, extract:

    • vendor — the merchant name. Look at the top of the receipt or whatever line is the issuer.
    • date — ISO format (YYYY-MM-DD). If the receipt has a localized format (15/04/2026), normalize.
    • amount — total, as a number (e.g., 42.50). Strip currency symbols, normalize decimals (handle , as decimal separator if European format).
    • currency — 3-letter code (USD, EUR, GBP). Default to USD if unclear.
    • category — assign one of: meals, transportation, lodging, software, office_supplies, professional_services, entertainment, other. Be conservative — other is acceptable when truly ambiguous.
    • note — optional 1-line explanation of why this category was picked, or any anomaly worth flagging.
    • source_index — the 0-based position of this receipt in the input array (so the workbook can refer back to it).
  2. Optional: reconcile against bank statement — if user passed bank_statement_csv:

    • Call read_bank_statement with the path.
    • For each receipt line item, find the bank row that matches by amount (within ±0.50 tolerance for tip/fee differences) and date (within ±2 days). Set matched_bank_row to a short label like "Bank: 2026-04-15 / -42.50 / RESTAURANT X".
    • Track unmatched bank rows (rows that didn't match any receipt). Surface count via the unmatched_count argument to build_workbook.
    • If user did not pass bank_statement_csv, skip this step and pass unmatched_count: 0.

Read the full file on GitHub · 50 lines

Files

What ships with it

9 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 11d ago First seen · 50 lines · 54 tokens per session scan A 0bba244cf769

Subscribe to this mod's changes

receipts-to-expenses is a skill published in the GitHub repository skrun-dev/skrun (209 stars, last pushed 11d ago), licensed MIT. It adds 54 tokens to every session and 1,038 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.