Firefly III CLI
CLI-Anything仕様に基づいたFirefly IIIコマンドラインインターフェースです。MCPモードをステートレスクLIモードに変換して、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 "bank"
# カテゴリのオートコンプリート
cli-anything-firefly-iii --json autocomplete categories --query "food"
# タグのオートコンプリート
cli-anything-firefly-iii --json autocomplete tags --query "important"
# 取引のオートコンプリート
cli-anything-firefly-iii --json autocomplete transactions --query "grocery"
# 予算のオートコンプリート
cli-anything-firefly-iii --json autocomplete budgets --query "monthly"
# 請求書のオートコンプリート
cli-anything-firefly-iii --json autocomplete bills --query "netflix"
# 貯金箱のオートコンプリート
cli-anything-firefly-iii --json autocomplete piggy-banks --query "vacation"
# 通貨のオートコンプリート
cli-anything-firefly-iii --json autocomplete currencies --query "dollar"
# ルールのオートコンプリート
cli-anything-firefly-iii --json autocomplete rules --query "auto"
# ルールグループのオートコンプリート
cli-anything-firefly-iii --json autocomplete rule-groups --query "finances"
# 繰り返し取引のオートコンプリート
cli-anything-firefly-iii --json autocomplete recurring --query "rent"
# オブジェクトグループのオートコンプリート
cli-anything-firefly-iii --json autocomplete object-groups --query "group"
# 取引タイプのオートコンプリート
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 "grocery" \
--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 "grocery"
データエクスポート
# 取引のエクスポート
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-firefly-iii --json transactions create \
--description "食料品" \
--amount 50.00 \
--source-account <expense_account_id> \
--destination-account <asset_account_id> \
--category "食費"
# 3. 取引の確認
cli-anything-firefly-iii --json transactions list --limit 5
予算の作成と管理
# 1. 予算の作成
cli-anything-firefly-iii --json budgets create --name "月次予算"
# 2. 予算制限の設定
cli-anything-firefly-iii --json budgets limit-create \
--budget-id 1 \
--amount 1000 \
--start 2024-01-01 \
--end 2024-01-31
# 3. 予算進捗の確認
cli-anything-firefly-iii --json summary budget-summary \
--start 2024-01-01 \
--end 2024-01-31
自動化ルールの設定
# 1. 「食料品」という説明を含む取引を「食費」カテゴリに自動割り当てするルールを作成
cli-anything-firefly-iii --json rules create \
--title "食料品を自動カテゴリ化" \
--trigger "description_contains" \
--value "食料品" \
--action set_category \
--action-value "食費"
# 2. ルールのテスト
cli-anything-firefly-iii --json rules test --id 1
# 3. ルールの有効化
cli-anything-firefly-iii --json rules update --id 1 --active true
財務レポートの生成
# 1. カテゴリ別支出レポートの生成
cli-anything-firefly-iii --json insights expense \
--start 2024-01-01 \
--end 2024-01-31 \
--group-by category
# 2. 月次サマリーの表示
cli-anything-firefly-iii --json summary default-set \
--start 2024-01-01 \
--end 2024-01-31
トラブルシューティング
一般的な問題
接続の問題
# 接続状態の確認
cli-anything-firefly-iii info status
# 応答がない場合
cli-anything-firefly-iii --json info status
認証エラー
# 環境変数が正しく設定されていることを確認
env | grep FIREFLY
# URLの末尾にスラッシュがないことを確認
cli-anything-firefly-iii --base-url https://firefly.example.com --pat your-token info status
ページネーション
大量のデータを扱う場合は、--limit と --page パラメータを使用します:
# 最初の50件の取引を取得
cli-anything-firefly-iii --json transactions list --limit 50
# 次のページ
cli-anything-firefly-iii --json transactions list --limit 50 --page 2
貢献
バグ報告や機能リクエストは、GitHub Issues ページに提出してください。
ライセンス
MIT