| name | cli-anything-firefly-iii |
| description | Firefly III CLI - Personal finance management via CLI-Anything |
| version | 2.0.0 |
| author | CLI-Anything Community |
Firefly III CLI
Firefly III command-line interface based on CLI-Anything specification. Converts MCP mode to stateless CLI mode to avoid Node residual process issues.
Installation
pip install cli-anything-firefly-iii
Prerequisites
- Python 3.10+
- Running Firefly III instance
- Personal Access Token (PAT)
Configuration
Environment Variables (Recommended)
export FIREFLY_III_BASE_URL="https://firefly.yourdomain.com"
export FIREFLY_III_PAT="your-personal-access-token"
Command Line Arguments
cli-anything-firefly-iii --base-url https://firefly.yourdomain.com --pat your-token
Command Groups
| Command Group | Description | Corresponding API |
|---|
accounts | Account management (CRUD) | /api/v1/accounts |
transactions | Transaction management (CRUD) | /api/v1/transactions |
budgets | Budget management (CRUD + limits) | /api/v1/budgets |
categories | Category management (CRUD) | /api/v1/categories |
tags | Tag management (CRUD) | /api/v1/tags |
bills | Bill management (CRUD) | /api/v1/bills |
piggy-banks | Piggy bank management (CRUD + events) | /api/v1/piggy-banks |
autocomplete | Autocomplete for various entities | /api/v1/autocomplete/* |
currencies | Currency management (CRUD) | /api/v1/currencies |
recurrences | Recurring transaction management (CRUD) | /api/v1/recurrences |
rules | Rule management (CRUD + test/execute) | /api/v1/rules |
rule-groups | Rule group management (CRUD + execute) | /api/v1/rule-groups |
summary | Financial summaries | /api/v1/summary/* |
webhooks | Webhook management (CRUD + trigger) | /api/v1/webhooks |
insights | Insights and reports | /api/v1/insight/* |
search | Search | /api/v1/search/* |
export | Data export | /api/v1/data/export/* |
info | System information | /api/v1/about |
Usage Examples
Account Management
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 "Cash" --type asset --currency-code USD
cli-anything-firefly-iii --json accounts update --id 123 --name "New Name"
cli-anything-firefly-iii accounts delete --id 123
Transaction Management
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 "Grocery" \
--amount 50.00 \
--source-account 1 \
--category "Food"
cli-anything-firefly-iii --json transactions update --id 456 --description "Updated"
cli-anything-firefly-iii transactions delete --id 456
Budget Management
cli-anything-firefly-iii --json budgets list
cli-anything-firefly-iii --json budgets get --id 1
cli-anything-firefly-iii --json budgets create --name "Monthly Budget"
cli-anything-firefly-iii --json budgets update --id 1 --name "New Budget 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
Category Management
cli-anything-firefly-iii --json categories list
cli-anything-firefly-iii --json categories get --id 1
cli-anything-firefly-iii --json categories create --name "Food"
cli-anything-firefly-iii --json categories update --id 1 --name "Food & Dining"
cli-anything-firefly-iii categories delete --id 1
Tag Management
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 "important"
cli-anything-firefly-iii --json tags update --id "uuid-here" --tag "important-updated"
cli-anything-firefly-iii tags delete --id "uuid-here"
Bill Management
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
Piggy Bank Management
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 "Vacation Fund" \
--account-id 1 \
--target-amount 5000
cli-anything-firefly-iii --json piggy-banks update --id 1 --name "New 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
Autocomplete
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"
Currency Management
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 "Chinese Yuan" \
--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
Recurring Transaction Management
cli-anything-firefly-iii --json recurrences list
cli-anything-firefly-iii --json recurrences get --id 1
cli-anything-firefly-iii --json recurrences create \
--title "Rent Payment" \
--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
Rule Management
cli-anything-firefly-iii --json rules list
cli-anything-firefly-iii --json rules get --id 1
cli-anything-firefly-iii --json rules create \
--title "Auto-tag groceries" \
--trigger "description_contains" \
--value "grocery" \
--action set_category \
--action-value "Food"
cli-anything-firefly-iii --json rules update --id 1 --title "New 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
Rule Group Management
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 "Finance Rules"
cli-anything-firefly-iii --json rule-groups update --id 1 --title "New Title"
cli-anything-firefly-iii rule-groups delete --id 1
cli-anything-firefly-iii --json rule-groups execute --id 1
Summary Reports
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 Management
cli-anything-firefly-iii --json webhooks list
cli-anything-firefly-iii --json webhooks get --id 1
cli-anything-firefly-iii --json webhooks create \
--title "My Webhook" \
--trigger create \
--url "https://example.com/webhook" \
--secret "my-secret"
cli-anything-firefly-iii --json webhooks update --id 1 --title "New Title"
cli-anything-firefly-iii webhooks delete --id 1
cli-anything-firefly-iii --json webhooks trigger --id 1
Insights and Reports
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
Search
cli-anything-firefly-iii --json search transactions --query "grocery"
Data Export
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
System Information
cli-anything-firefly-iii --json info about
cli-anything-firefly-iii info status
Preset Filtering
Use --preset parameter to filter available commands:
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
Available presets:
default: Core features (accounts, transactions, categories, tags, bills, search)
full: All features
basic: Basic features (accounts, transactions, categories, tags, search)
budget: Budget-related (accounts, budgets, transactions, summary, insight)
reporting: Reporting-related (accounts, transactions, categories, insight, summary, search)
admin: Admin features (about, configuration, currencies, users, preferences)
automation: Automation (rules, recurrences, webhooks, transactions)
Agent Guidelines
Basic Usage
- Use
--json for structured output: All commands support --json flag, returning JSON format data
- Call
info status first to check connection: Confirm Firefly III connection is normal before executing operations
- Use presets to reduce command count: Filter unnecessary commands via
--preset
Common Workflows
View Account Balances
cli-anything-firefly-iii info status
cli-anything-firefly-iii --json accounts list --type asset
cli-anything-firefly-iii --json accounts get --id <account_id>
Record Expense
cli-anything-firefly-iii --json accounts list --type expense
cli-anything-firefly-iii --json transactions create \
--description "Lunch" \
--amount 15.50 \
--source-account <asset_account_id> \
--destination-account <expense_account_id> \
--category "Food"
Set Up Recurring Budget
cli-anything-firefly-iii --json budgets create --name "Monthly Groceries"
cli-anything-firefly-iii --json budgets limit-create \
--budget-id <budget_id> \
--amount 500 \
--start 2024-01-01 \
--end 2024-01-31
Create Automation Rule
cli-anything-firefly-iii --json rule-groups list
cli-anything-firefly-iii --json rules create \
--title "Auto-tag groceries" \
--trigger description_contains \
--value "grocery" \
--action set_category \
--action-value "Food"
cli-anything-firefly-iii --json rules execute --id <rule_id>
Monthly Financial Report
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 summary budget-summary \
--start 2024-01-01 \
--end 2024-01-31
cli-anything-firefly-iii --json export transactions \
--start 2024-01-01 \
--end 2024-01-31
Error Handling
Common errors and solutions:
- Connection failed: Check if FIREFLY_III_BASE_URL is correct
- Authentication failed: Check if FIREFLY_III_PAT is valid
- Resource not found: Check if ID is correct
- Parameter error: Check if required parameters are provided
- Validation error: Check API documentation for valid parameter values
Best Practices
- Use environment variables for credentials: Avoid exposing PAT in command line
- Use
--json for scripting: Facilitates parsing and processing output
- Use presets to control permissions: Choose appropriate preset based on scenario
- Query before modifying: Avoid accidental operations
- Use autocomplete for quick lookups: Great for finding existing entities
Troubleshooting
Connection Issues
Error: Cannot connect to Firefly III instance
- Check if Firefly III instance is running
- Check network connection
- Check if base URL is correct
Authentication Issues
Error: Authentication failed: Personal Access Token is invalid
- Check if PAT is correct
- Generate new PAT in Firefly III Options > Profile > OAuth
- Ensure PAT has not expired
Parameter Validation Errors
Error: Request parameter error: [details]
- Check required parameters are provided
- Verify date formats (YYYY-MM-DD)
- Verify currency codes (ISO 4217)
- Verify enum values match allowed choices
Comparison with MCP Version
| Feature | MCP Version | CLI-Anything Version |
|---|
| Process Lifecycle | Long-running | Single call, immediate exit |
| Memory Usage | Continuous | On-demand, released after |
| Communication | Stdio/SSE | Command args + stdout |
| State Management | Stateful | Stateless |
| Preset Filtering | Supported | Supported |
| JSON Output | Built-in | --json flag |
| Full API Coverage | Partial | Full API coverage |
API Coverage
This CLI covers the following Firefly III API endpoints:
License
MIT License