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.
npx skills add akiotanaka847/qaio-desktop --skill log-an-expensegit clone --depth 1 https://github.com/akiotanaka847/qaio-desktopWrote 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.
[](https://agentmods.dev/skills/akiotanaka847/qaio-desktop/log-an-expense)<a href="https://agentmods.dev/skills/akiotanaka847/qaio-desktop/log-an-expense"><img src="https://agentmods.dev/badge/skills/akiotanaka847/qaio-desktop/log-an-expense/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.
<a href="https://agentmods.dev/skills/akiotanaka847/qaio-desktop/log-an-expense"><img src="https://agentmods.dev/badge/skills/akiotanaka847/qaio-desktop/log-an-expense.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00139 | $0.02395 |
| Opus 5 | $0.00069 | $0.01197 |
| Sonnet 5 | $0.00028 | $0.00479 |
| Haiku 4.5 | $0.00014 | $0.00239 |
Grade A, and why
log-an-expense 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 10d ago.
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.
How it starts
The opening of the file, as written. The whole thing — 117 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Log an Expense
One receipt in, one categorized expense and one balanced journal entry out. For founder reimbursements, out-of-pocket vendor payments, or any expense that didn't show up in the bank or card feed. Every receipt either produces a balanced journal entry with the account code validated against your chart of accounts, or lands in Suspense with the image attached.
Drafts only: the journal entry is written at status: "draft". I never auto-post to QuickBooks or Xero.
When to use
- User forwards single receipt (image, PDF, email) or says "book this receipt" / "categorize this reimbursement".
- Expense absent from bank / card feed (reimbursed on personal card, ACH paid from another entity, cash).
mode=batch- "process these 20 receipts for Q1" / "book founder's reimbursement batch" - produces one summary journal entry crediting Founder Loan Payable (or Accrued Reimbursements if same-period).
Connections I need
I run external work through Composio. Before this skill runs I check that the categories below are linked. Missing → I name the category, ask you to connect it from the Integrations tab, stop.
- Gmail or Outlook (inbox) — optional, lets me pull a forwarded receipt and its attachments straight from your email. If not connected, you can drop the file into chat or into the receipts inbox folder.
- QuickBooks Online or Xero (accounting) — optional, used only if you want me to look up vendor history. The journal entry itself stays draft on disk; I never post.
This skill never blocks on a missing connection. You can always drop the receipt as a file.
Information I need
I read your bookkeeping context first. For every required field that's missing I ask ONE plain-language question (best modality: connected app > file drop > URL > paste) and wait.
- A chart of accounts — Required. Why: every category I assign has to come from your chart of accounts. If missing I ask: "Do we have a chart of accounts yet? If not, let's draft one first."
- A finished bookkeeping context — Required. Why: I need your accounting method and registered accounts to book the credit side correctly. If missing I ask: "Have we set up the books yet? If not, run the setup first."
- The receipt itself — Required. Why: vendor, date, and total are extracted from it. If missing I ask: "Can you forward the receipt, drop the PDF or image, or paste the vendor / date / amount?"
- How the expense was paid — Required. Why: drives the credit line (corp card vs. founder loan vs. cash). If missing I ask: "How was this paid, on a corporate card (which one?), a personal card you'll get reimbursed for, cash, or an ACH from another entity?"
- A registered Founder Loan Payable account — Optional. Why: needed only if the receipt was paid out-of-pocket. If you don't have it I ask once and add it to your chart of accounts.
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.
- 10d ago First seen · 117 lines · 139 tokens per session scan A f975bc305daa
log-an-expense is a skill published in the GitHub repository akiotanaka847/qaio-desktop (2 stars, last pushed 7d ago), licensed MIT. It adds 139 tokens to every session and 2,395 once invoked, about $0.0007 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-31.
Other skills, from other repositories
jangbu-import
A data-import workflow for turning bank files, card records, spreadsheets, receipts, tax invoices, and statement PDFs into a standard set of 13 transaction fields. OCR, or optical character recognition, is used to read information from document images and PDFs.
reading-payment-statement
An image-reading workflow for extracting structured information from Japanese payment statements, which report payments such as fees, compensation, contracts, or prizes.
reading-invoice
A guide for reading invoice images or PDFs and returning structured details such as the supplier, date, and amount.
extract-bank-statement
Extract bank PDF/CSV to transactions.json with running-balance proof (pull bank lines with balance proof). Prefer CSV; Maybank Islamic PDF adapter when needed.
extract
Extract bank statements to proved transaction lines.
invoice
A printable invoice page — sender + recipient block, line items table, tax breakdown, totals, and payment instructions. Use when the brief mentions "invoice", "bill", "billing statement", or "发票".