/install firefly-iii
Firefly III
Firefly III is a self-hosted personal finance manager. This skill provides API access for managing finances.
Configuration
Required environment:
FIREFLY_URL: Base URL (e.g.,https://budget.example.com)FIREFLY_TOKEN: Personal Access Token (stored at~/.firefly_token)
Get token: Profile → OAuth → Personal Access Tokens → Create new token
API Basics
TOKEN=$(cat ~/.firefly_token)
BASE="$FIREFLY_URL/api/v1"
curl -s "$BASE/endpoint" \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json"
Core Endpoints
Accounts
# List accounts
curl "$BASE/accounts?type=asset" # asset|expense|revenue|liability
# Create account
curl -X POST "$BASE/accounts" -d '{
"name": "Bank Account",
"type": "asset",
"account_role": "defaultAsset",
"currency_code": "EUR"
}'
Account types: asset, expense, revenue, liability
Asset roles: defaultAsset, savingAsset, sharedAsset, ccAsset
Transactions
# List transactions
curl "$BASE/transactions?type=withdrawal&start=2026-01-01&end=2026-01-31"
# Create withdrawal (expense)
curl -X POST "$BASE/transactions" -d '{
"transactions": [{
"type": "withdrawal",
"date": "2026-01-15",
"amount": "50.00",
"description": "Groceries",
"source_name": "Bank Account",
"destination_name": "Supermarket",
"category_name": "Groceries"
}]
}'
# Create deposit (income)
curl -X POST "$BASE/transactions" -d '{
"transactions": [{
"type": "deposit",
"date": "2026-01-01",
"amount": "3000.00",
"description": "Salary",
"source_name": "Employer",
"destination_name": "Bank Account",
"category_name": "Salary"
}]
}'
# Create transfer
curl -X POST "$BASE/transactions" -d '{
"transactions": [{
"type": "transfer",
"date": "2026-01-05",
"amount": "500.00",
"description": "Savings",
"source_name": "Bank Account",
"destination_name": "Savings Account"
}]
}'
Transaction types: withdrawal, deposit, transfer
Categories
# List categories
curl "$BASE/categories"
# Create category
curl -X POST "$BASE/categories" -d '{"name": "Groceries"}'
Budgets
# List budgets
curl "$BASE/budgets"
# Create budget
curl -X POST "$BASE/budgets" -d '{"name": "Food", "active": true}'
# Set budget limit for period
curl -X POST "$BASE/budgets/{id}/limits" -d '{
"start": "2026-01-01",
"end": "2026-01-31",
"amount": "500.00"
}'
Piggy Banks (Savings Goals)
# List piggy banks
curl "$BASE/piggy-banks"
# Create piggy bank
curl -X POST "$BASE/piggy-banks" -d '{
"name": "Vacation Fund",
"target_amount": "2000.00",
"accounts": [{"account_id": "1"}],
"start_date": "2026-01-01",
"target_date": "2026-12-31",
"transaction_currency_code": "EUR"
}'
# Add money to piggy bank
curl -X POST "$BASE/piggy-banks/{id}/events" -d '{"amount": "100.00"}'
Subscriptions (Bills)
# List subscriptions
curl "$BASE/subscriptions"
# Create subscription
curl -X POST "$BASE/subscriptions" -d '{
"name": "Netflix",
"amount_min": "12.99",
"amount_max": "12.99",
"date": "2026-01-15",
"repeat_freq": "monthly",
"currency_code": "EUR"
}'
Repeat frequencies: weekly, monthly, quarterly, half-year, yearly
Recurring Transactions
# List recurring transactions
curl "$BASE/recurrences"
# Create recurring transaction
curl -X POST "$BASE/recurrences" -d '{
"type": "withdrawal",
"title": "Rent",
"first_date": "2026-01-01",
"repeat_until": "2026-12-31",
"repetitions": [{
"type": "monthly",
"moment": "1"
}],
"transactions": [{
"amount": "1000.00",
"description": "Monthly rent",
"source_id": "1",
"destination_name": "Landlord",
"category_name": "Rent"
}]
}'
Rules (Auto-categorization)
# List rules
curl "$BASE/rules"
# Create rule
curl -X POST "$BASE/rules" -d '{
"title": "Categorize groceries",
"trigger": "store-journal",
"active": true,
"strict": false,
"triggers": [
{"type": "description_contains", "value": "ALDI"}
],
"actions": [
{"type": "set_category", "value": "Groceries"}
]
}'
Trigger types: description_contains, description_starts, description_ends, amount_less, amount_more, source_account_is, etc.
Action types: set_category, set_budget, add_tag, set_description, etc.
Tags
# List tags
curl "$BASE/tags"
# Create tag
curl -X POST "$BASE/tags" -d '{"tag": "vacation"}'
Reports & Summary
# Account balance over time
curl "$BASE/accounts/{id}/transactions?start=2026-01-01&end=2026-01-31"
# Get current balances
curl "$BASE/accounts" | jq '.data[] | {name: .attributes.name, balance: .attributes.current_balance}'
Common Tasks
Get spending by category
curl "$BASE/categories" | jq '.data[] | {name: .attributes.name, spent: .attributes.spent}'
Get budget progress
curl "$BASE/budgets" | jq '.data[] | {name: .attributes.name, spent: .attributes.spent}'
Search transactions
curl "$BASE/search/transactions?query=groceries&limit=25"
Error Handling
422 Unprocessable Entity: Check required fields in error response401 Unauthorized: Token expired or invalid404 Not Found: Resource doesn't exist
Tips
- Use
source_name/destination_nameto auto-create expense/revenue accounts - Categories are different from budgets (categories for classification, budgets for limits)
- Piggy banks require linking to an asset account
- Use rules to auto-categorize transactions on creation
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install firefly-iii - 安装完成后,直接呼叫该 Skill 的名称或使用
/firefly-iii触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Firefly III 是什么?
Manage personal finances via Firefly III API. Use when user asks about budgets, transactions, accounts, categories, piggy banks, subscriptions, recurring transactions, or financial reports. Supports creating, listing, updating transactions; managing accounts and balances; setting budgets; tracking savings goals. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 1342 次。
如何安装 Firefly III?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install firefly-iii」即可一键安装,无需额外配置。
Firefly III 是免费的吗?
是的,Firefly III 完全免费(开源免费),可自由下载、安装和使用。
Firefly III 支持哪些平台?
Firefly III 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Firefly III?
由 pushp1997(@pushp1997)开发并维护,当前版本 v1.0.0。