← 返回 Skills 市场
safaiyeh

Finance Skill

作者 safaiyeh · GitHub ↗ · v0.1.2
cross-platform ✓ 安全检测通过
2293
总下载
1
收藏
10
当前安装
3
版本数
在 OpenClaw 中安装
/install finance-skill
功能描述
Parse and store transactions from bank statements, enable querying and adding personal finance data in JSON format within a local workspace.
使用说明 (SKILL.md)

Finance Skill

Personal finance memory layer. Parse statements, store transactions, query spending.

Data Location

  • Transactions: ~/.openclaw/workspace/finance/transactions.json
  • Raw statements: ~/.openclaw/workspace/finance/statements/

Storage convention: OpenClaw workspace (~/.openclaw/workspace/) is the standard location for persistent user data. This matches where session-memory and other hooks store agent data. Credentials/config would go in ~/.config/finance/ if needed.

Tools

1. Parse Statement

When user shares a statement (image or PDF):

⚠️ IMPORTANT: Telegram/channel previews truncate PDFs! Always extract with pypdf first to get ALL pages:

python3 -c "
import pypdf
reader = pypdf.PdfReader('/path/to/statement.pdf')
for i, page in enumerate(reader.pages):
    print(f'=== PAGE {i+1} ===')
    print(page.extract_text())
"

Then parse the full text output:

  1. Extract transactions from ALL pages
  2. Return JSON array: [{date, merchant, amount, category}, ...]
  3. Run scripts/add-transactions.sh to append to store
  4. Verify total matches statement (sum of expenses should equal "Total purchases")

Extraction format:

Each transaction: {"date": "YYYY-MM-DD", "merchant": "name", "amount": -XX.XX, "category": "food|transport|shopping|bills|entertainment|health|travel|other"}
Negative = expense, positive = income/refund.

Categories:

  • food: restaurants, groceries, coffee, fast food
  • transport: Waymo, Uber, gas, public transit
  • shopping: retail, online purchases
  • bills: utilities, subscriptions
  • entertainment: movies, concerts, theme parks
  • health: pharmacy, doctors
  • travel: hotels, flights

2. Query Transactions

User asks about spending → read transactions.json → filter/aggregate → answer

Example queries:

  • "How much did I spend last month?" → sum all negative amounts in date range
  • "What did I spend on food?" → filter by category
  • "Show my biggest expenses" → sort by amount

3. Add Manual Transaction

User says "I spent $X at Y" → append to transactions.json

File Format

{
  "transactions": [
    {
      "id": "uuid",
      "date": "2026-02-01",
      "merchant": "Whole Foods",
      "amount": -87.32,
      "category": "food",
      "source": "statement-2026-01.pdf",
      "added": "2026-02-09T19:48:00Z"
    }
  ],
  "accounts": [
    {
      "id": "uuid",
      "name": "Coinbase Card",
      "type": "credit",
      "lastUpdated": "2026-02-09T19:48:00Z"
    }
  ]
}

Usage Flow

  1. User: shares statement image
  2. Agent: extracts transactions via vision, confirms count
  3. Agent: runs add script to store
  4. User: "how much did I spend on food?"
  5. Agent: reads store, filters, answers

Dependencies

  • jq — for JSON transaction storage and querying (apt install jq / brew install jq)
  • pypdf — for full PDF text extraction (pip3 install pypdf)

Lessons Learned

  • Telegram truncates PDF previews — always use pypdf to get all pages
  • Verify totals — sum extracted expenses and compare to statement total before importing
  • Coinbase Card — no Plaid support, statement upload only

Future: Plaid Integration

  • Add finance_connect tool for Plaid OAuth flow
  • Auto-sync transactions from connected banks
  • Same query interface, different data source
安全使用建议
This skill appears internally consistent and stores data locally, but review before installing: 1) Ensure you trust the skill source since it will store sensitive financial data under ~/.openclaw/workspace/finance. 2) The scripts expect valid JSON input and rely on jq/pypdf—install those from your package manager. 3) There are minor implementation bugs (e.g., use of 'fabs' in jq output may error depending on your jq version); test on non-sensitive data first. 4) If Plaid or any network sync is later added, expect OAuth credentials and network access—review that change carefully. 5) Back up and encrypt the workspace if you store real financial statements.
功能分析
Type: OpenClaw Skill Name: finance-skill Version: 0.1.2 The OpenClaw Finance Skill is classified as benign. All operations are confined to the `~/.openclaw/workspace/finance/` directory, aligning with its stated purpose of local financial data management. The `scripts/add-transactions.sh` and `scripts/query.sh` scripts correctly utilize `jq`'s `--arg` and `--argjson` parameters, effectively preventing shell injection and `jq` code injection from user-provided or agent-generated input. The `SKILL.md` instructions for the AI agent, including the `python3 -c "import pypdf..."` command and the execution of `scripts/add-transactions.sh`, are directly related to the skill's functionality and do not contain any prompt injection attempts to manipulate the agent into malicious actions or data exfiltration. No evidence of unauthorized file access, network communication, persistence mechanisms, or obfuscation was found.
能力评估
Purpose & Capability
Name/content claim (parse statements, store/query transactions) matches the included scripts, SKILL.md, and README. Required tools (jq, pypdf) are appropriate for JSON manipulation and PDF text extraction. No unrelated credentials, binaries, or services are requested.
Instruction Scope
Runtime instructions operate on local files under ~/.openclaw/workspace/finance and call only local scripts and pypdf; they instruct verification before import. There are no instructions to read system config outside the workspace or to transmit data to remote endpoints.
Install Mechanism
No install spec (instruction-only) and included scripts are simple shell + jq; dependencies are standard (jq via apt/brew, pypdf via pip). No downloads from untrusted URLs or archive extraction.
Credentials
The skill declares no environment variables or credentials and none are required by the scripts. Future Plaid integration is only mentioned as a roadmap item and is not implemented.
Persistence & Privilege
always:false and user-invocable; the skill only writes to its own workspace (~/.openclaw/workspace/finance) and does not modify other skills or system-wide settings.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install finance-skill
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /finance-skill 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v0.1.2
- Added `jq` as a required dependency for JSON transaction storage and querying. - Updated dependencies section in documentation to include installation instructions for `jq`.
v0.1.1
- Added a README.md file to provide documentation and usage instructions. - No functional changes to the code or workflow; documentation only.
v0.1.0
Initial release: statement parsing, transaction storage, spending queries
元数据
Slug finance-skill
版本 0.1.2
许可证
累计安装 10
当前安装数 10
历史版本数 3
常见问题

Finance Skill 是什么?

Parse and store transactions from bank statements, enable querying and adding personal finance data in JSON format within a local workspace. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 2293 次。

如何安装 Finance Skill?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install finance-skill」即可一键安装,无需额外配置。

Finance Skill 是免费的吗?

是的,Finance Skill 完全免费(开源免费),可自由下载、安装和使用。

Finance Skill 支持哪些平台?

Finance Skill 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Finance Skill?

由 safaiyeh(@safaiyeh)开发并维护,当前版本 v0.1.2。

💬 留言讨论