Firefly III CLI 是做什麼的?
基於 CLI-Anything 規範的 Firefly III 命令列介面。將 MCP 模式轉換為無狀態的 CLI 模式,以避免 Node.js 殘留進程問題。
安裝
pip install cli-anything-firefly-iii
先決條件
- Python 3.10+
- 正在執行的 Firefly III 實例
- 個人存取權杖 (PAT)
設定
環境變數(建議)
export FIREFLY_III_BASE_URL="https://firefly.yourdomain.com"
export FIREFLY_III_PAT="your-personal-access-token"
命令列引數
cli-anything-firefly-iii --base-url https://firefly.yourdomain.com --pat your-token
命令群組
| 命令群組 | 說明 | 對應 API |
|---|---|---|
accounts | 帳戶管理 (CRUD) | /api/v1/accounts |
transactions | 交易管理 (CRUD) | /api/v1/transactions |
budgets | 預算管理 (CRUD + 限制) | /api/v1/budgets |
categories | 類別管理 (CRUD) | /api/v1/categories |
tags | 標籤管理 (CRUD) | /api/v1/tags |
bills | 帳單管理 (CRUD) | /api/v1/bills |
piggy-banks | 存錢筒管理 (CRUD + 事件) | /api/v1/piggy-banks |
autocomplete | 各種實體的自動完成 | /api/v1/autocomplete/* |
currencies | 貨幣管理 (CRUD) | /api/v1/currencies |
recurrences | 週期性交易管理 (CRUD) | /api/v1/recurrences |
rules | 規則管理 (CRUD + 測試/執行) | /api/v1/rules |
rule-groups | 規則群組管理 (CRUD + 執行) | /api/v1/rule-groups |
summary | 財務摘要 | /api/v1/summary/* |
webhooks | Webhook 管理 (CRUD + 觸發) | /api/v1/webhooks |
insights | 洞察與報表 | /api/v1/insight/* |
search | 搜尋 | /api/v1/search/* |
export | 資料匯出 | /api/v1/data/export/* |
info | 系統資訊 | /api/v1/about |
使用範例
帳戶管理
# 列出所有帳戶
cli-anything-firefly-iii --json accounts list
# 列出資產帳戶
cli-anything-firefly-iii --json accounts list --type asset
# 取得帳戶詳細資訊
cli-anything-firefly-iii --json accounts get --id 123
# 建立帳戶
cli-anything-firefly-iii --json accounts create --name "現金" --type asset --currency-code USD
# 更新帳戶
cli-anything-firefly-iii --json accounts update --id 123 --name "新名稱"
# 刪除帳戶
cli-anything-firefly-iii accounts delete --id 123
交易管理
# 列出交易
cli-anything-firefly-iii --json transactions list --limit 10
# 依日期範圍列出交易
cli-anything-firefly-iii --json transactions list --start 2024-01-01 --end 2024-01-31
# 建立交易
cli-anything-firefly-iii --json transactions create \
--description "雜貨" \
--amount 50.00 \
--source-account 1 \
--category "食物"
# 更新交易
cli-anything-firefly-iii --json transactions update --id 456 --description "已更新"
# 刪除交易
cli-anything-firefly-iii transactions delete --id 456
預算管理
# 列出預算
cli-anything-firefly-iii --json budgets list
# 取得預算詳細資訊
cli-anything-firefly-iii --json budgets get --id 1
# 建立預算
cli-anything-firefly-iii --json budgets create --name "每月預算"
# 更新預算
cli-anything-firefly-iii --json budgets update --id 1 --name "新預算名稱"
# 刪除預算
cli-anything-firefly-iii budgets delete --id 1
# 列出預算限制
cli-anything-firefly-iii --json budgets limits --budget-id 1
# 建立預算限制
cli-anything-firefly-iii --json budgets limit-create --budget-id 1 --amount 1000 --start 2024-01-01 --end 2024-01-31
# 更新預算限制
cli-anything-firefly-iii --json budgets limit-update --id 1 --amount 1500
# 刪除預算限制
cli-anything-firefly-iii budgets limit-delete --id 1
類別管理
# 列出類別
cli-anything-firefly-iii --json categories list
# 取得類別
cli-anything-firefly-iii --json categories get --id 1
# 建立類別
cli-anything-firefly-iii --json categories create --name "食物"
# 更新類別
cli-anything-firefly-iii --json categories update --id 1 --name "食物與餐飲"
# 刪除類別
cli-anything-firefly-iii categories delete --id 1
標籤管理
# 列出標籤
cli-anything-firefly-iii --json tags list
# 取得標籤
cli-anything-firefly-iii --json tags get --id "uuid-here"
# 建立標籤
cli-anything-firefly-iii --json tags create --tag "重要"
# 更新標籤
cli-anything-firefly-iii --json tags update --id "uuid-here" --tag "重要-已更新"
# 刪除標籤
cli-anything-firefly-iii tags delete --id "uuid-here"
帳單管理
# 列出帳單
cli-anything-firefly-iii --json bills list
# 取得帳單
cli-anything-firefly-iii --json bills get --id 1
# 建立帳單
cli-anything-firefly-iii --json bills create \
--name "Netflix" \
--amount-min 15.99 \
--amount-max 15.99 \
--frequency monthly
# 更新帳單
cli-anything-firefly-iii --json bills update --id 1 --amount-min 19.99
# 刪除帳單
cli-anything-firefly-iii bills delete --id 1
存錢筒管理
# 列出存錢筒
cli-anything-firefly-iii --json piggy-banks list
# 取得存錢筒
cli-anything-firefly-iii --json piggy-banks get --id 1
# 建立存錢筒
cli-anything-firefly-iii --json piggy-banks create \
--name "度假基金" \
--account-id 1 \
--target-amount 5000
# 更新存錢筒
cli-anything-firefly-iii --json piggy-banks update --id 1 --name "新名稱"
# 刪除存錢筒
cli-anything-firefly-iii piggy-banks delete --id 1
# 列出存錢筒事件
cli-anything-firefly-iii --json piggy-banks events --id 1
# 向存錢筒存入資金
cli-anything-firefly-iii --json piggy-banks add-money --id 1 --amount 100
自動完成
# 自動完成帳戶
cli-anything-firefly-iii --json autocomplete accounts --query "銀行"
# 自動完成類別
cli-anything-firefly-iii --json autocomplete categories --query "食物"
# 自動完成標籤
cli-anything-firefly-iii --json autocomplete tags --query "重要"
# 自動完成交易
cli-anything-firefly-iii --json autocomplete transactions --query "雜貨"
# 自動完成預算
cli-anything-firefly-iii --json autocomplete budgets --query "每月"
# 自動完成帳單
cli-anything-firefly-iii --json autocomplete bills --query "netflix"
# 自動完成存錢筒
cli-anything-firefly-iii --json autocomplete piggy-banks --query "度假"
# 自動完成貨幣
cli-anything-firefly-iii --json autocomplete currencies --query "dollar"
# 自動完成規則
cli-anything-firefly-iii --json autocomplete rules --query "自動"
# 自動完成規則群組
cli-anything-firefly-iii --json autocomplete rule-groups --query "財務"
# 自動完成週期性
cli-anything-firefly-iii --json autocomplete recurring --query "租金"
# 自動完成物件群組
cli-anything-firefly-iii --json autocomplete object-groups --query "群組"
# 自動完成交易類型
cli-anything-firefly-iii --json autocomplete transaction-types --query "with"
貨幣管理
# 列出貨幣
cli-anything-firefly-iii --json currencies list
# 取得貨幣
cli-anything-firefly-iii --json currencies get --id 1
# 建立貨幣
cli-anything-firefly-iii --json currencies create \
--code "CNY" \
--name "人民幣" \
--symbol "¥"
# 更新貨幣
cli-anything-firefly-iii --json currencies update --id 1 --symbol "元"
# 刪除貨幣
cli-anything-firefly-iii currencies delete --id 1
# 取得匯率
cli-anything-firefly-iii --json currencies exchange-rates --from USD --to EUR
週期性交易管理
# 列出週期性交易
cli-anything-firefly-iii --json recurrences list
# 取得週期性交易
cli-anything-firefly-iii --json recurrences get --id 1
# 建立週期性交易
cli-anything-firefly-iii --json recurrences create \
--title "租金付款" \
--type withdrawal \
--amount 1500 \
--source-account 1 \
--destination-account 2 \
--frequency monthly
# 更新週期性交易
cli-anything-firefly-iii --json recurrences update --id 1 --amount 1600
# 刪除週期性交易
cli-anything-firefly-iii recurrences delete --id 1
規則管理
# 列出規則
cli-anything-firefly-iii --json rules list
# 取得規則
cli-anything-firefly-iii --json rules get --id 1
# 建立規則
cli-anything-firefly-iii --json rules create \
--title "自動標記雜貨" \
--trigger "description_contains" \
--value "雜貨" \
--action set_category \
--action-value "食物"
# 更新規則
cli-anything-firefly-iii --json rules update --id 1 --title "新標題"
# 刪除規則
cli-anything-firefly-iii rules delete --id 1
# 測試規則
cli-anything-firefly-iii --json rules test --id 1
# 執行規則
cli-anything-firefly-iii --json rules execute --id 1
規則群組管理
# 列出規則群組
cli-anything-firefly-iii --json rule-groups list
# 取得規則群組
cli-anything-firefly-iii --json rule-groups get --id 1
# 建立規則群組
cli-anything-firefly-iii --json rule-groups create --title "財務規則"
# 更新規則群組
cli-anything-firefly-iii --json rule-groups update --id 1 --title "新標題"
# 刪除規則群組
cli-anything-firefly-iii rule-groups delete --id 1
# 執行規則群組
cli-anything-firefly-iii --json rule-groups execute --id 1
摘要報表
# 預設摘要集
cli-anything-firefly-iii --json summary default-set --start 2024-01-01 --end 2024-01-31
# 帳戶摘要
cli-anything-firefly-iii --json summary account-summary --start 2024-01-01 --end 2024-01-31
# 可用預算摘要
cli-anything-firefly-iii --json summary available-budget --start 2024-01-01 --end 2024-01-31
# 帳單摘要
cli-anything-firefly-iii --json summary bill-summary --start 2024-01-01 --end 2024-01-31
# 預算摘要
cli-anything-firefly-iii --json summary budget-summary --start 2024-01-01 --end 2024-01-31
# 類別摘要
cli-anything-firefly-iii --json summary category-summary --start 2024-01-01 --end 2024-01-31
# 標籤摘要
cli-anything-firefly-iii --json summary tag-summary --start 2024-01-01 --end 2024-01-31
# 轉帳摘要
cli-anything-firefly-iii --json summary transfer-summary --start 2024-01-01 --end 2024-01-31
Webhook 管理
# 列出 Webhook
cli-anything-firefly-iii --json webhooks list
# 取得 Webhook
cli-anything-firefly-iii --json webhooks get --id 1
# 建立 Webhook
cli-anything-firefly-iii --json webhooks create \
--title "我的 Webhook" \
--trigger create \
--url "https://example.com/webhook" \
--secret "my-secret"
# 更新 Webhook
cli-anything-firefly-iii --json webhooks update --id 1 --title "新標題"
# 刪除 Webhook
cli-anything-firefly-iii webhooks delete --id 1
# 手動觸發 Webhook
cli-anything-firefly-iii --json webhooks trigger --id 1
洞察與報表
# 支出報表(按類別)
cli-anything-firefly-iii --json insights expense \
--start 2024-01-01 \
--end 2024-01-31 \
--group-by category
# 收入報表
cli-anything-firefly-iii --json insights income \
--start 2024-01-01 \
--end 2024-01-31
# 轉帳洞察
cli-anything-firefly-iii --json insights transfer \
--start 2024-01-01 \
--end 2024-01-31
# 帳戶概覽
cli-anything-firefly-iii --json insights overview \
--start 2024-01-01 \
--end 2024-01-31
搜尋
# 搜尋交易
cli-anything-firefly-iii --json search transactions --query "雜貨"
資料匯出
# 匯出交易
cli-anything-firefly-iii --json export transactions \
--start 2024-01-01 \
--end 2024-01-31
# 匯出帳戶
cli-anything-firefly-iii --json export accounts
# 匯出預算
cli-anything-firefly-iii --json export budgets
# 匯出類別
cli-anything-firefly-iii --json export categories
系統資訊
# 系統資訊
cli-anything-firefly-iii --json info about
# 連線狀態
cli-anything-firefly-iii info status
預設過濾
使用 --preset 參數過濾可用的命令:
# 預設預設
cli-anything-firefly-iii --preset default accounts list
# 完整預設
cli-anything-firefly-iii --preset full accounts list
# 預算預設
cli-anything-firefly-iii --preset budget budgets list
# 報表預設
cli-anything-firefly-iii --preset reporting insights expense --start 2024-01-01 --end 2024-01-31
可用的預設:
default:核心功能(帳戶、交易、類別、標籤、帳單、搜尋)full:所有功能basic:基本功能(帳戶、交易、類別、標籤、搜尋)budget:預算相關(帳戶、預算、交易、摘要、洞察)reporting:報表相關(帳戶、交易、類別、洞察、摘要、搜尋)admin:管理員功能(關於、設定、貨幣、使用者、偏好設定)automation:自動化(規則、週期性、Webhook、交易)
代理人指南
基本用法
- 使用
--json取得結構化輸出:所有命令都支援--json旗標,回傳 JSON 格式資料 - 先呼叫
info status檢查連線:在執行操作前,先確認 Firefly III 連線正常 - 使用預設減少命令數量:透過
--preset過濾不必要的命令
常見工作流程
檢視帳戶餘額
# 1. 檢查連線
cli-anything-firefly-iii info status
# 2. 列出資產帳戶
cli-anything-firefly-iii --json accounts list --type asset
# 3. 檢視帳戶詳細資訊(取得餘額)
cli-anything-firefly-iii --json accounts get --id <account_id>
記錄支出
# 1. 尋找支出帳戶
cli-anything-firefly-iii --json accounts list --type expense
# 2. 建立交易
cli-anything-fi
…
[為翻譯已截斷]