receipt-raccoon
Extracts structured data from receipt text (OCR/photo description) and generates monthly spending reports. Parses merchant, date, line items, tax, total, and category. Produces summary stats: top merchants, category breakdown, total spend. Skill: receipt-raccoon Owner: voronindenis5 Summary: Extracts structured data from receipt text (OCR/photo description) and generates monthly spending reports. Parses merchant, date, line items, tax, total, and category. Produces summary stats: top merchants, category breakdown, total spend. Tags: latest:0.1.1 Version history: v0.1.1 | 2026-08-11T11:58:13.597Z | auto - Removed the file skill-card.md. - No other chang
Rank
62
Safety
84
Downloads
2.6k
Updated
Oct 9, 2026
Version
0.1.1
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 2.6K downloads reported by the source. Last updated 10/9/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 9, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 9, 2026
- Adoption signal
- 2.6K downloadsadoption · observed Oct 9, 2026
- Latest release
- 0.1.1release · observed Aug 11, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s17b6amkd3wzqgg640v03a9r1n83gxs1:receipt-raccoon- Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.
- Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-receipt-raccoon/snapshot"
Documentation
CLAWHUB
38,476 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
---
name: receipt-raccoon
description: >
Extracts structured data from receipt text (OCR/photo description) and generates
monthly spending reports. Parses merchant, date, line items, tax, total, and
category. Produces summary stats: top merchants, category breakdown, total spend.
version: 1.0.0
author: Denis Voronin
license: MIT
tags:
- receipts
- expense-tracking
- finance
- ocr
- budgeting
---
# Receipt Raccoon
Never manually enter receipt data again. Feed it receipt text and get clean structured data out.
## When to use
- The user provides receipt text from OCR, a photo description, or copy-paste.
- The user wants to track expenses from receipts.
- The user wants a monthly or category-based spending summary.
- The user wants to export receipt data as structured JSON.
## How it works
1. Receive raw receipt text (multiline string).
2. Run `scripts/receipt_parser.py parse --text "..."` or pipe via stdin.
3. The script extracts: merchant name, date, line items with prices, subtotal, tax, total.
4. Each item is categorised using keyword matching (groceries, dining, electronics, etc.).
5. Store parsed receipts in a JSONL ledger file for accumulation.
6. Run `scripts/receipt_parser.py report --ledger receipts.jsonl` to generate summary stats.
## Usage
### Parse a single receipt
```bash
# From command line argument
python3 scripts/receipt_parser.py parse --text "$(cat receipt.txt)"
# From stdin
cat receipt.txt | python3 scripts/receipt_parser.py parse
# From a file
python3 scripts/receipt_parser.py parse --file receipt.txt
```
### Accumulate receipts
```bash
# Parse and append to a ledger
python3 scripts/receipt_parser.py parse --file receipt.txt --append receipts.jsonl
```
### Generate reports
```bash
# Summary of all receipts in ledger
python3 scripts/receipt_parser.py report --ledger receipts.jsonl
# Filter by month
python3 scripts/receipt_parser.py report --ledger receipts.jsonl --month 2024-01
# JSON output
python3 scripts/receipt_parser.py report --ledger receipts.jsonl --json
```
### Output format
Parsed receipt JSON:
```json
{
"merchant": "WHOLE FOODS MARKET",
"date": "2024-01-15",
"items": [
{"name": "ORGANIC BANANAS", "price": 2.99, "category": "groceries"},
{"name": "ALMOND MILK", "price": 3.49, "category": "groceries"}
],
"subtotal": 6.48,
"tax": 0.52,
"total": 7.00,
"currency": "USD"
}
```
Report output includes:
- Total spend, receipt count, average receipt
- Top merchants by spend
- Category breakdown with percentages
- Monthly trend
- Tax total
## Categorisation
Items are categorised using keyword matching against these categories:
| Category | Example keywords |
|----------|-----------------|
| Groceries | milk, bread, eggs, vegetable, fruit, meat, cheese |
| Dining | burger, pizza, coffee, restaurant, cafe, taco |
| Electronics | cable, charger, battery, phone, laptop, usb |
| Clothing | shirt, pants, shoes, dress, jacket |
| Health | pharmacy, medicine, vitamin, bandage README.md
# Receipt Raccoon 🦝
Extract structured data from receipts and generate spending reports. No more manual data entry.
[](https://opensource.org/licenses/MIT)
## The Problem
Nobody likes manually entering receipt data for expense tracking. Every receipt has the same fields — merchant, date, items, prices, tax, total — but typing them all in is tedious and error-prone.
## The Solution
**Receipt Raccoon** takes raw receipt text (from OCR, a photo description, or copy-paste) and automatically:
1. **Extracts** merchant, date, line items, prices, subtotal, tax, and total
2. **Categorises** every item using keyword matching (groceries, dining, electronics, etc.)
3. **Accumulates** receipts in a JSONL ledger for ongoing tracking
4. **Generates** spending reports with top merchants, category breakdown, and monthly trends
## Quick Start
```bash
# Parse a receipt from text
python3 scripts/receipt_parser.py parse --text "$(cat receipt.txt)"
# Parse from a file
python3 scripts/receipt_parser.py parse --file receipt.txt
# Parse and save to ledger
python3 scripts/receipt_parser.py parse --file receipt.txt --append my_receipts.jsonl
# Generate a spending report
python3 scripts/receipt_parser.py report --ledger my_receipts.jsonl
# Filter by month
python3 scripts/receipt_parser.py report --ledger my_receipts.jsonl --month 2024-01
# Run the demo with sample receipts
python3 scripts/receipt_parser.py demo
```
## Example Output
### Parsed Receipt (JSON)
```json
{
"merchant": "WHOLE FOODS MARKET #12345",
"date": "2024-01-15",
"items": [
{"name": "ORGANIC BANANAS", "price": 2.99, "category": "groceries"},
{"name": "ALMOND MILK", "price": 3.49, "category": "groceries"},
{"name": "FREE RANGE EGGS", "price": 5.99, "category": "groceries"}
],
"subtotal": 49.93,
"tax": 4.00,
"total": 53.93,
"currency": "USD"
}
```
### Spending Report
```
============================================================
🦝 RECEIPT RACCOON — Spending Report
============================================================
Total spend: $186.16
Receipts: 5
Average/receipt: $37.23
Total tax: $13.87
📊 TOP MERCHANTS
1. WHOLE FOODS MARKET #12345 — $53.93 (1 visits)
2. BEST BUY #09999 — $59.37 (1 visits)
3. TRADER JOE'S #444 — $27.47 (1 visits)
🏷️ CATEGORY BREAKDOWN
groceries $ 49.93 ( 26.8%) █████ [7 items]
electronics $ 54.97 ( 29.5%) █████ [3 items]
dining $ 9.00 ( 4.8%) █ [2 items]
```
## Features
- **Smart parser** — handles US, EU, ISO, and written date formats
- **9 spending categories** — groceries, dining, electronics, clothing, health, household, transport, entertainment, office (+ "other" fallback)
- **Weighted keyword matching** — longer keyword matches score higher for better accuracy
- **JSONL ledger** — append-only storage, easy to version control or import elsewhere
- **Mont_meta.json
{
"ownerId": "kn75wwn4x6djaf28jbykeamazd81gtdp",
"slug": "receipt-raccoon",
"version": "0.1.1",
"publishedAt": 1786449493597
}references/categories.md
# Category Keyword Reference Full list of keywords used for automatic categorisation of receipt items. ## Categories ### groceries **Keywords:** milk, bread, eggs, cheese, butter, yogurt, cream, chicken, beef, pork, bacon, turkey, fish, salmon, shrimp, rice, pasta, flour, sugar, oil, salt, pepper, spice, onion, garlic, potato, tomato, carrot, lettuce, spinach, broccoli, apple, banana, orange, lemon, lime, berry, avocado, cucumber, mushroom, corn, juice, water, cereal, oats, granola, jam, honey, peanut butter, nut, almond, tofu, lentil, bean, soup, sauce, ketchup, mustard, mayo, vinegar, soy, noodle, tortilla, bun, bagel, pita, cracker, cookie, chocolate, candy, chip, wine, beer, frozen, ice cream, deli, ham, sausage, organic, kale, zucchini, cauliflower, grape, melon, pineapple, mango, peach, pear, plum, cherry, coconut, and many more. ### dining **Keywords:** burger, pizza, sandwich, taco, burrito, sushi, ramen, curry, fried rice, coffee, espresso, latte, cappuccino, tea, smoothie, beer, draft, cocktail, margarita, appetizer, wings, nachos, fries, brunch, breakfast, pancake, steak, lobster, dessert, cake, cheesecake, restaurant, cafe, diner, bistro, grill, takeout, delivery, gratuity, tip, and more. ### electronics **Keywords:** cable, charger, usb, hdmi, adapter, battery, phone, laptop, tablet, monitor, keyboard, mouse, headphone, speaker, webcam, router, ssd, hard drive, memory, ram, gpu, motherboard, cpu, screen protector, phone case, smartwatch, camera, lens, power bank, surge protector, light bulb, smart plug. ### clothing **Keywords:** shirt, t-shirt, blouse, pants, jeans, trouser, short, skirt, dress, suit, blazer, jacket, coat, sweater, hoodie, shoe, sneaker, boot, sandal, sock, underwear, hat, cap, glove, scarf, tie, belt, wallet, purse, backpack, watch, ring, necklace. ### health **Keywords:** pharmacy, drug, medicine, medication, prescription, vitamin, supplement, aspirin, ibuprofen, acetaminophen, bandage, antiseptic, ointment, thermometer, toothbrush, toothpaste, floss, deodorant, shampoo, conditioner, soap, lotion, sunscreen, tissue, razor, contact lens, first aid. ### household **Keywords:** detergent, fabric softener, bleach, dish soap, dishwasher, sponge, paper towel, toilet paper, napkin, trash bag, cleaning spray, mop, broom, vacuum, candle, air freshener, laundry, light bulb, aluminum foil, plastic wrap, container, plate, bowl, cup, fork, knife, pan, pot. ### transport **Keywords:** gas, fuel, diesel, unleaded, uber, lyft, taxi, bus, train, metro, transit, parking, meter, toll, oil change, tire, brake, wiper, car wash, bike, flight, airline. ### entertainment **Keywords:** movie, cinema, theater, concert, game, video game, steam, book, magazine, streaming, netflix, spotify, board game, museum, zoo, amusement, bowling, sport, lottery. ### office **Keywords:** pen, pencil, marker, paper, notebook, binder, stapler, tape, glue, scissors, printer, ink, toner, envelope, stamp, desk, chair, calendar, planner, whiteboard.
references/receipt_formats.md
# Supported Receipt Formats Receipt Raccoon is designed to handle the "messy text" that comes out of OCR tools and manual transcription. ## What Works Well ### Standard grocery receipt ``` WHOLE FOODS MARKET #12345 123 Organic Street, Portland, OR 97201 01/15/2024 14:32 ORGANIC BANANAS 2.99 ALMOND MILK 3.49 FREE RANGE EGGS 5.99 SUBTOTAL 49.93 TAX 4.00 TOTAL 53.93 ``` ### Restaurant receipt ``` OLIVE GARDEN #234 Jan 20, 2024 LASAGNA 16.99 COCA COLA 2.99 TIRAMISU 7.49 TIP 5.00 SUBTOTAL 27.47 TAX 2.20 TOTAL 34.67 ``` ### Gas station receipt ``` SHELL STATION #5678 02/01/2024 UNLEADED 10.326 GAL 34.99 SUBTOTAL 34.99 TOTAL 34.99 ``` ## Parsing Logic ### Merchant Detection - The merchant is taken from the **first meaningful line** (non-date, non-phone-number). - Lines 1-5 are scanned. Lines with only numbers, dates, or phone numbers are skipped. ### Date Detection Multiple date formats are recognised: - `2024-01-15` (ISO) - `01/15/2024` or `1/15/24` (US slash) - `15.01.2024` (EU dot) - `Jan 15, 2024` or `January 15 2024` (written) - `15 Jan 2024` (day-first written) The first valid date found anywhere in the text is used. ### Item Detection A line is treated as a line item if: 1. It contains a monetary value (pattern: `XX.XX` or `$XX.XX`) 2. It is NOT a summary line (subtotal, tax, total, tip) 3. It does NOT contain skip keywords (phone, address, card info, etc.) The item name is extracted as everything before the price, cleaned up by: - Removing leading item numbers (e.g., `1 BANANA` → `BANANA`) - Removing trailing quantities - Trimming extra whitespace and special characters ### Summary Line Detection Lines containing these keywords are treated as summary lines: - **Subtotal:** "subtotal", "sub total", "sub-total" - **Tax:** "tax", "vat", "gst", "hst", "pst", "sales tax" - **Total:** "total", "balance due", "amount due", "grand total" - **Tip:** "tip", "gratuity" ### Fallback Logic - If no subtotal is found, it's calculated by summing all line items. - If no total is found, it's calculated as subtotal + tax. ## Limitations ### OCR Errors The parser is fairly robust to whitespace variations but cannot fix garbled OCR text. For best results: - Ensure the OCR output has one item per line - Fix obvious character recognition errors before parsing ### Multi-line Items Items that span multiple physical lines (e.g., long product names that wrap) may be split into two items. The parser treats each line independently. ### BOGO and Discounts "Buy one get one" offers, percentage discounts, and loyalty point redemptions on their own line are typically skipped (they contain keywords like "discount", "savings", "reward"). Negative-value discount lines are also handled. ### Currency All amounts are assumed to be in USD. The `currency` field is set t
AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/voronindenis5/skills/receipt-raccoon",
"sourceUrl": "https://clawhub.ai/voronindenis5/skills/receipt-raccoon",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-09T13:22:49.180Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-receipt-raccoon/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-receipt-raccoon/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-09T13:22:49.180Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "2.6K downloads",
"href": "https://clawhub.ai/voronindenis5/receipt-raccoon",
"sourceUrl": "https://clawhub.ai/voronindenis5/receipt-raccoon",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-09T13:22:49.180Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "0.1.1",
"href": "https://clawhub.ai/voronindenis5/receipt-raccoon",
"sourceUrl": "https://clawhub.ai/voronindenis5/receipt-raccoon",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-08-11T11:58:13.597Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-receipt-raccoon/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-receipt-raccoon/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 0.1.1",
"description": "- Removed the file skill-card.md. - No other changes to documentation or core functionality.",
"href": "https://clawhub.ai/voronindenis5/receipt-raccoon",
"sourceUrl": "https://clawhub.ai/voronindenis5/receipt-raccoon",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-08-11T11:58:13.597Z",
"isPublic": true
}
]
}Record generated Oct 10, 2026.
