用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/johnalbertini14-glitch/openclaw-skills --skill finance-reconciler命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Use this skill to create a Polymarket wallet for your agent and trade on prediction markets. Browse markets, place bets, manage positions — all without exposing private keys.
ClawSec suite manager with embedded advisory-feed monitoring, cryptographic signature verification, approval-gated malicious-skill response, and guided setup for additional security skills.
Automated daily security audits for OpenClaw agents with email reporting. Runs deep audits and sends formatted reports.
基于 SOC 职业分类
正在显示 SKILL.md
| name | finance-reconciler |
| description | Privacy-first personal finance tracker with local SQLite storage |
| requires | python3 |
| install | pip3 install pandas ofxparse tabulate python-dateutil |
A privacy-first personal finance skill that imports bank transactions, auto-categorizes them, tracks budgets, answers natural language spending queries, and generates reports. All data stays local in SQLite — nothing is sent to external servers.
On first use, run these two commands before anything else:
pip3 install pandas ofxparse tabulate python-dateutil
python3 scripts/db.py
If either command fails, stop and show the user the error. Do not proceed until setup succeeds.
If the user has no transactions in the database yet (or says something general like "help me track my finances", "get started", or "what can you do"), walk them through this:
When the user wants to import a bank statement:
~/Downloads/chase_jan.csv): use that path directly with the import script.Supported file types: .csv (Chase, BofA, Wells Fargo, generic) and .ofx/.qfx (universal).
For CSV files:
python3 scripts/import_csv.py <file_path> [--format chase|bofa|wells_fargo|generic] [--account <name>]
For OFX/QFX files:
python3 scripts/import_ofx.py <file_path> [--account <name>]
Choose the import script based on file extension (.ofx/.qfx → import_ofx.py, everything else → import_csv.py). The bank format is auto-detected if --format is omitted. Both scripts output JSON.
After a successful import, always run categorization automatically (step 2) without the user asking. Then present a summary like: "Imported 47 transactions from Jan 1–31. Here's the breakdown: Groceries $342, Dining $189, ..."
If the import returns duplicates > 0, mention it: "Skipped 12 duplicate transactions that were already imported."
Run on uncategorized transactions:
python3 scripts/categorize.py run
Re-categorize everything (after adding rules):
python3 scripts/categorize.py run --recategorize
Add a custom rule:
python3 scripts/categorize.py add-rule <category> <pattern> [--type keyword|exact|regex|custom]
Categories: groceries, dining, transport, utilities, subscriptions, shopping, healthcare, entertainment, income, uncategorized.
If more than 20% of transactions land in "uncategorized", proactively tell the user: "I couldn't categorize X transactions. Here are some common ones: [list top uncategorized merchants]. Want me to add rules for any of these?" Then use add-rule for each one they confirm, and re-run with --recategorize.
python3 scripts/query.py "<natural language query>"
The query parser understands:
Translate the user's question into the closest query string. Present results conversationally — for totals state the amount, for lists format as a readable table with dates and amounts.
python3 scripts/budget.py set <category> <amount> [--period monthly|yearly]
python3 scripts/budget.py status [--category <name>] [--period monthly|yearly]
python3 scripts/budget.py list
python3 scripts/budget.py delete <category> [--period monthly|yearly]
Budget statuses: ok (under 80%), warning (80-100%), exceeded (over 100%).
When reporting status, use clear language: "Your dining budget is at 87% ($261 of $300) — you have $39 left this month." Highlight exceeded budgets prominently.
python3 scripts/report.py [--month <1-12>] [--year <year>] [--period monthly|yearly] [--format json|text|html]
Use --format text for conversational summaries. Use --format html when the user wants a file they can open in a browser — save the output to a file and give them the path.
Present report highlights conversationally: biggest spending categories, changes from last month, budget concerns, and top merchants.
All data is stored locally at ~/.openclaw/skills/finance-reconciler/data/transactions.db (SQLite). Set the FINANCE_DATA_DIR environment variable to override.
| User says | What to do |
|---|---|
| "Import my statement" / shares a file | Run import → categorize → show summary |
| "How much did I spend on X?" | Run query.py with their question |
| "Set a budget for groceries" | Ask for the amount if not given, then run budget.py set |
| "Am I over budget?" | Run budget.py status for all categories |
| "Show me my report" / "monthly summary" | Run report.py for current or specified month |
| "What can you do?" / "help" | Explain the 5 operations with examples |
| "Why is X categorized as Y?" | Explain the rule-based system, offer to add a custom rule |
| "I don't have a file yet" | Give them bank-specific download instructions |
All scripts output JSON to stdout. Parse the JSON and present results in clear, conversational language — never dump raw JSON to the user.