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 agentmods add skills/caprista/karvyloop/expensenpx skills add Caprista/KarvyLoop --skill expensegit clone --depth 1 https://github.com/Caprista/KarvyLoopWhat 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 | $0.00165 | $0.02086 |
| Opus 5 | $0.00082 | $0.01043 |
| Sonnet 5 | $0.00033 | $0.00417 |
| Haiku 4.5 | $0.00016 | $0.00209 |
Grade A, and why
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 3d 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 — 126 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Expense receipt reading (system template)
A receipt is worth structuring only if the structure is trustworthy. The value here isn't "read some text off a picture" — it's turning a crumpled, mis-scanned slip into one line you can put in a claim without re-checking it by hand: right merchant, right date, right total, and — the part people skip — line items that actually add up to that total. This skill is a method, not a canned answer, and its scope is deliberately narrow: recognition and structuring, not judgment. It does not decide what your company will reimburse, does not submit anything, does not do your bookkeeping. It hands you a clean, checked record and a category hint — you stay the one who decides.
Honest input contract
This skill reads text or an image:
- Text — paste the receipt's text, or the export from a bill/e-invoice. Cleanest path, always works.
- Image — a photo or scan (jpg/png/…) is read via
read_file, which OCRs it on this machine through the optional OCR extra (pip install "karvyloop[ocr]"; first use downloads a model, nothing is uploaded). If that extra isn't installed and the running model can't see images, the honest move is to say so and ask you to paste the text — never to invent a receipt from a filename. A vision-capable model may read the image directly instead; either way the same method below applies to the text.
The accountability rule
I (atom) answer to the role; the role answers to you. A structured line with a
wrong total or an invented tax id is far worse than a field left blank and
flagged. Money and tax numbers are unforgiving. When in doubt, leave it null
and flag it — never a confident fabrication.
Procedure — do not skip steps
- Identify what the document is. receipt / invoice (发票, has a tax id and payee) / shopping list / itinerary / other. This decides which fields matter (an invoice's 税号 and 抬头; an itinerary's route and dates).
What ships with it
1 file 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.
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.
- 3d ago First seen · 126 lines · 0 tokens per session scan A 71eff85dd9d5
expense is a skill published in the GitHub repository Caprista/KarvyLoop (10 stars, last pushed 7d ago), licensed MIT. It adds 165 tokens to every session and 2,086 once invoked, about $0.0008 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
risk-scoring
Score how concentrated and risky a portfolio is on a 0-100 scale from its position weights. Use when the user asks how risky their portfolio is, whether it is too concentrated, or for a diversification check.
valuation
Estimate whether a stock looks cheap or expensive using a price-to-earnings (P/E) based fair-value method. Use when the user asks if a stock is over- or under-valued, or for a fair-value / target price.
travel-expense-audit
Audit travel / 差旅报销 claims against uploaded policy handbooks and rate tables (lodging caps, transport, per diem). Use for 差旅费审核, travel expense review, or lodging over-limit checks.
agent-agentic-payments
Agent skill for agentic-payments - invoke with $agent-agentic-payments.
agent-payments
Agent skill for payments - invoke with $agent-payments.
agent-framework-py-release
Use when cutting a Python release for the microsoft/agent-framework monorepo. Triggers on "bump py versions", "cut a python release", "prepare release PR for python", "release py packages", "bump python to X.Y.Z", or similar requests to bump Python package versions and prepare a release PR. Handles all four lifecycle…