cli-anything-firefly-iii
HKUDS/CLI-Anything/skills/cli-anything-firefly-iii/SKILL.md
Firefly III CLI - Personal finance management via CLI-Anything
Skill52k starsChanged 6 months ago
- Installs packages
What's in it
- Firefly III CLI
- Installation
- Prerequisites
- Configuration
- Environment Variables (Recommended)
- Command Line Arguments
- Command Groups
- Usage Examples
- Account Management
- Transaction Management
- Budget Management
- Category Management
- Tag Management
- Bill Management
- Piggy Bank Management
- Autocomplete
- Currency Management
- Recurring Transaction Management
- Rule Management
- Rule Group Management
- Summary Reports
- Webhook Management
- Insights and Reports
- Search
- Data Export
- System Information
- Preset Filtering
- Agent Guidelines
- Basic Usage
- Common Workflows
--- 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 ```bash pip install cli-anything-firefly-iii ``` ## Prerequisites - Python 3.10+ - Running Firefly III instance - Personal Access Token (PAT) ## Configuration ### Environment Variables (Recommended) ```bash export FIREFLY_III_BASE_URL="https://firefly.yourdomain.com" export FIREFLY_III_PAT="your-personal-access-token" ``` ### Command Line Arguments ```bash 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 ```bash # List all accounts cli-anything-firefly-iii --json accounts list # List asset accounts cli-anything-firefly-iii --json accounts list --type asset # Get account details cli-anything-firefly-iii --json accounts get --id 123 # Create account cli-anything-firefly-iii --json accounts create --name "Cash" --type asset --currency-code USD # Update account cli-anything-firefly-iii --json accounts update --id 123 --name "New Name" # Delete account cli-anything-firefly-iii accounts delete --id 123 ``` ### Transaction Management ```bash # List transactions cli-anything-firefly-iii --json transactions list --limit 10 # List transactions with date range cli-anything-firefly-iii --json transactions list --start 2024-01-01 --end 2024-01-31 # Create transaction cli-anything-firefly-iii --json transactions create \ --description "Grocery" \ --amount 50.00 \ --source-account 1 \ --category "Food" # Update transaction cli-anything-firefly-iii --json transactions update --id 456 --description "Updated" # Delete transaction cli-anything-firefly-iii transactions delete --id 456 ``` ### Budget Management ```bash # List budgets cli-anything-firefly-iii --json budgets list # Get budget details cli-anything-firefly-iii --json budgets get --id 1 # Create budget cli-anything-firefly-iii --json budgets create --name "Monthly Budget" # Update budget cli-anything-firefly-iii --json budgets update --id 1 --name "New Budget Name" # Delete budget cli-anything-firefly-iii budgets delete --id 1 # List budget limits cli-anything-firefly-iii --json budgets limits --budget-id 1 # Create budget limit cli-anything-firefly-iii --json budgets limit-create --budget-id 1 --amount 1000 --start 2024-01-01 --end 2024-01-31 # Update budget limit cli-anything-firefly-iii --json budgets limit-update --id 1 --amount 1500 # Delete budget limit cli-anything-firefly-iii budgets limit-delete --id 1 ``` ### Category Management ```bash # List categories cli-anything-firefly-iii --json categories list # Get category cli-anything-firefly-iii --json categories get --id 1 # Create category cli-anything-firefly-iii --json categories create --name "Food" # Update category cli-anything-firefly-iii --json categories update --id 1 --name "Food & Dining" # Delete category cli-anything-firefly-iii categories delete --id 1 ``` ### Tag Management ```bash # List tags cli-anything-firefly-iii --json tags list # Get tag cli-anything-firefly-iii --json tags get --id "uuid-here" # Create tag cli-anything-firefly-iii --json tags create --tag "important" # Update tag cli-anything-firefly-iii --json tags update --id "uuid-here" --tag "important-updated" # Delete tag cli-anything-firefly-iii tags delete --id "uuid-here" ``` ### Bill Management ```bash # List bills cli-anything-firefly-iii --json bills list # Get bill cli-anything-firefly-iii --json bills get --id 1 # Create bill cli-anything-firefly-iii --json bills create \ --name "Netflix" \ --amount-min 15.99 \ --amount-max 15.99 \ --frequency monthly # Update bill cli-anything-firefly-iii --json bills update --id 1 --amount-min 19.99 # Delete bill cli-anything-firefly-iii bills delete --id 1 ``` ### Piggy Bank Management ```bash # List piggy banks cli-anything-firefly-iii --json piggy-banks list # Get piggy bank cli-anything-firefly-iii --json piggy-banks get --id 1 # Create piggy bank cli-anything-firefly-iii --json piggy-banks create \ --name "Vacation Fund" \ --account-id 1 \ --target-amount 5000 # Update piggy bank cli-anything-firefly-iii --json piggy-banks update --id 1 --name "New Name" # Delete piggy bank cli-anything-firefly-iii piggy-banks delete --id 1 # List piggy bank events cli-anything-firefly-iii --json piggy-banks events --id 1 # Add money to piggy bank cli-anything-firefly-iii --json piggy-banks add-money --id 1 --amount 100 ``` ### Autocomplete ```bash # Autocomplete accounts cli-anything-firefly-iii --json autocomplete accounts --query "bank" # Autocomplete categories cli-anything-firefly-iii --json autocomplete categories --query "food" # Autocomplete tags cli-anything-firefly-iii --json autocomplete tags --query "important" # Autocomplete transactions cli-anything-firefly-iii --json autocomplete transactions --query "grocery" # Autocomplete budgets cli-anything-firefly-iii --json autocomplete budgets --query "monthly" # Autocomplete bills cli-anything-firefly-iii --json autocomplete bills --query "netflix" # Autocomplete piggy banks cli-anything-firefly-iii --json autocomplete piggy-banks --query "vacation" # Autocomplete currencies cli-anything-firefly-iii --json autocomplete currencies --query "dollar" # Autocomplete rules cli-anything-firefly-iii --json autocomplete rules --query "auto" # Autocomplete rule groups cli-anything-firefly-iii --json autocomplete rule-groups --query "finances" # Autocomplete recurring cli-anything-firefly-iii --json autocomplete recurring --query "rent" # Autocomplete object groups cli-anything-firefly-iii --json autocomplete object-groups --query "group" # Autocomplete transaction types cli-anything-firefly-iii --json autocomplete transaction-types --query "with" ``` ### Currency Management ```bash # List currencies cli-anything-firefly-iii --json currencies list # Get currency cli-anything-firefly-iii --json currencies get --id 1 # Create currency cli-anything-firefly-iii --json currencies create \ --code "CNY" \ --name "Chinese Yuan" \ --symbol "¥" # Update currency cli-anything-firefly-iii --json currencies update --id 1 --symbol "元" # Delete currency cli-anything-firefly-iii currencies delete --id 1 # Get exchange rates cli-anything-firefly-iii --json currencies exchange-rates --from USD --to EUR ``` ### Recurring Transaction Management ```bash # List recurring transactions cli-anything-firefly-iii --json recurrences list # Get recurring transaction cli-anything-firefly-iii --json recurrences get --id 1 # Create recurring transaction cli-anything-firefly-iii --json recurrences create \ --title "Rent Payment" \ --type withdrawal \ --amount 1500 \ --source-account 1 \ --destination-account 2 \ --frequency monthly # Update recurring transaction cli-anything-firefly-iii --json recurrences update --id 1 --amount 1600 # Delete recurring transaction cli-anything-firefly-iii recurrences delete --id 1 ``` ### Rule Management ```bash # List rules cli-anything-firefly-iii --json rules list # Get rule cli-anything-firefly-iii --json rules get --id 1 # Create rule cli-anything-firefly-iii --json rules create \ --title "Auto-tag groceries" \ --trigger "description_contains" \ --value "grocery" \ --action set_category \ --action-value "Food" # Update rule cli-anything-firefly-iii --json rules update --id 1 --title "New Title" # Delete rule cli-anything-firefly-iii rules delete --id 1 # Test rule cli-anything-firefly-iii --json rules test --id 1 # Execute rule cli-anything-firefly-iii --json rules execute --id 1 ``` ### Rule Group Management ```bash # List rule groups cli-anything-firefly-iii --json rule-groups list # Get rule group cli-anything-firefly-iii --json rule-groups get --id 1 # Create rule group cli-anything-firefly-iii --json rule-groups create --title "Finance Rules" # Update rule group cli-anything-firefly-iii --json rule-groups update --id 1 --title "New Title" # Delete rule group cli-anything-firefly-iii rule-groups delete --id 1 # Execute rule group cli-anything-firefly-iii --json rule-groups execute --id 1 ``` ### Summary Reports ```bash # Default summary set cli-anything-firefly-iii --json summary default-set --start 2024-01-01 --end 2024-01-31 # Account summary cli-anything-firefly-iii --json summary account-summary --start 2024-01-01 --end 2024-01-31 # Available budget summary cli-anything-firefly-iii --json summary available-budget --start 2024-01-01 --end 2024-01-31 # Bill summary cli-anything-firefly-iii --json summary bill-summary --start 2024-01-01 --end 2024-01-31 # Budget summary cli-anything-firefly-iii --json summary budget-summary --start 2024-01-01 --end 2024-01-31 # Category summary cli-anything-firefly-iii --json summary category-summary --start 2024-01-01 --end 2024-01-31 # Tag summary cli-anything-firefly-iii --json summary tag-summary --start 2024-01-01 --end 2024-01-31 # Transfer summary cli-anything-firefly-iii --json summary transfer-summary --start 2024-01-01 --end 2024-01-31 ``` ### Webhook Management ```bash # List webhooks cli-anything-firefly-iii --json webhooks list # Get webhook cli-anything-firefly-iii --json webhooks get --id 1 # Create webhook cli-anything-firefly-iii --json webhooks create \ --title "My Webhook" \ --trigger create \ --url "https://example.com/webhook" \ --secret "my-secret" # Update webhook cli-anything-firefly-iii --json webhooks update --id 1 --title "New Title" # Delete webhook cli-anything-firefly-iii webhooks delete --id 1 # Trigger webhook manually cli-anything-firefly-iii --json webhooks trigger --id 1 ``` ### Insights and Reports ```bash # Expense report (by category) cli-anything-firefly-iii --json insights expense \ --start 2024-01-01 \ --end 2024-01-31 \ --group-by category # Income report cli-anything-firefly-iii --json insights income \ --start 2024-01-01 \ --end 2024-01-31 # Transfer insights cli-anything-firefly-iii --json insights transfer \ --start 2024-01-01 \ --end 2024-01-31 # Account overview cli-anything-firefly-iii --json insights overview \ --start 2024-01-01 \ --end 2024-01-31 ``` ### Search ```bash # Search transactions cli-anything-firefly-iii --json search transactions --query "grocery" ``` ### Data Export ```bash # Export transactions cli-anything-firefly-iii --json export transactions \ --start 2024-01-01 \ --end 2024-01-31 # Export accounts cli-anything-firefly-iii --json export accounts # Export budgets cli-anything-firefly-iii --json export budgets # Export categories cli-anything-firefly-iii --json export categories ``` ### System Information ```bash # System information cli-anything-firefly-iii --json info about # Connection status cli-anything-firefly-iii info status ``` ## Preset Filtering Use `--preset` parameter to filter available commands: ```bash # Default preset cli-anything-firefly-iii --preset default accounts list # Full preset cli-anything-firefly-iii --preset full accounts list # Budget preset cli-anything-firefly-iii --preset budget budgets list # Reporting preset 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 1. **Use `--json` for structured output**: All commands support `--json` flag, returning JSON format data 2. **Call `info status` first to check connection**: Confirm Firefly III connection is normal before executing operations 3. **Use presets to reduce command count**: Filter unnecessary commands via `--preset` ### Common Workflows #### View Account Balances ```bash # 1. Check connection cli-anything-firefly-iii info status # 2. List asset accounts cli-anything-firefly-iii --json accounts list --type asset # 3. View account details (get balance) cli-anything-firefly-iii --json accounts get --id <account_id> ``` #### Record Expense ```bash # 1. Find expense accounts cli-anything-firefly-iii --json accounts list --type expense # 2. Create transaction 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 ```bash # 1. Create budget cli-anything-firefly-iii --json budgets create --name "Monthly Groceries" # 2. Set budget limit 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 ```bash # 1. List rule groups cli-anything-firefly-iii --json rule-groups list # 2. Create rule cli-anything-firefly-iii --json rules create \ --title "Auto-tag groceries" \ --trigger description_contains \ --value "grocery" \ --action set_category \ --action-value "Food" # 3. Execute rule to apply to existing transactions cli-anything-firefly-iii --json rules execute --id <rule_id> ``` #### Monthly Financial Report ```bash # 1. Expense report cli-anything-firefly-iii --json insights expense \ --start 2024-01-01 \ --end 2024-01-31 \ --group-by category # 2. Income report cli-anything-firefly-iii --json insights income \ --start 2024-01-01 \ --end 2024-01-31 # 3. Budget summary cli-anything-firefly-iii --json summary budget-summary \ --start 2024-01-01 \ --end 2024-01-31 # 4. Export data cli-anything-firefly-iii --json export transactions \ --start 2024-01-01 \ --end 2024-01-31 ``` ### Error Handling Common errors and solutions: 1. **Connection failed**: Check if FIREFLY_III_BASE_URL is correct 2. **Authentication failed**: Check if FIREFLY_III_PAT is valid 3. **Resource not found**: Check if ID is correct 4. **Parameter error**: Check if required parameters are provided 5. **Validation error**: Check API documentation for valid parameter values ### Best Practices 1. **Use environment variables for credentials**: Avoid exposing PAT in command line 2. **Use `--json` for scripting**: Facilitates parsing and processing output 3. **Use presets to control permissions**: Choose appropriate preset based on scenario 4. **Query before modifying**: Avoid accidental operations 5. **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: - [x] `/api/v1/about` - System information - [x] `/api/v1/accounts` - Account management (full CRUD) - [x] `/api/v1/transactions` - Transaction management (full CRUD) - [x] `/api/v1/budgets` - Budget management (full CRUD + limits) - [x] `/api/v1/categories` - Category management (full CRUD) - [x] `/api/v1/tags` - Tag management (full CRUD) - [x] `/api/v1/bills` - Bill management (full CRUD) - [x] `/api/v1/piggy-banks` - Piggy bank management (full CRUD + events) - [x] `/api/v1/autocomplete/*` - All autocomplete endpoints - [x] `/api/v1/currencies` - Currency management (full CRUD) - [x] `/api/v1/recurrences` - Recurring transaction management (full CRUD) - [x] `/api/v1/rules` - Rule management (full CRUD + test/execute) - [x] `/api/v1/rule-groups` - Rule group management (full CRUD + execute) - [x] `/api/v1/summary/*` - Summary endpoints - [x] `/api/v1/webhooks` - Webhook management (full CRUD + trigger) - [x] `/api/v1/insight/*` - Insight endpoints - [x] `/api/v1/search/*` - Search endpoints - [x] `/api/v1/data/export/*` - Export endpoints - [x] `/api/v1/chart/*` - Chart endpoints - [x] `/api/v1/configuration` - Configuration - [x] `/api/v1/preferences` - User preferences - [x] `/api/v1/available_budgets` - Available budgets - [x] `/api/v1/object-groups` - Object groups - [x] `/api/v1/links` - Transaction links - [x] `/api/v1/attachments` - Attachments - [x] `/api/v1/currency_exchange_rates` - Exchange rates - [x] `/api/v1/data/bulk` - Bulk operations - [x] `/api/v1/user-groups` - User groups (read-only) - [x] `/api/v1/users` - User management (admin) ## License MIT License
More agent context in HKUDS/CLI-Anything
74 other files this repository gives its agents, the first 60 shown.
Skill
- cli-hub-meta-skillcli-hub-meta-skill/SKILL.md
- cli-anythingcodex-skill/SKILL.md
- cli-anything-hermeshermes-skill/SKILL.md
- cli-anythingmacrocli/SKILL.md
- cli-anythingreasonix-skill/SKILL.md
- cli-anything-adguardhomeskills/cli-anything-adguardhome/SKILL.md
- cli-anything-anygenskills/cli-anything-anygen/SKILL.md
- cli-anything-audacityskills/cli-anything-audacity/SKILL.md
- cli-anything-blenderskills/cli-anything-blender/SKILL.md
- cli-anything-browserskills/cli-anything-browser/SKILL.md
- cli-anything-calibreskills/cli-anything-calibre/SKILL.md
- cli-anything-ccswitchskills/cli-anything-ccswitch/SKILL.md
- cli-anything-chromadbskills/cli-anything-chromadb/SKILL.md
- cli-anything-cloudanalyzerskills/cli-anything-cloudanalyzer/SKILL.md
- cli-anything-cloudcompareskills/cli-anything-cloudcompare/SKILL.md
- cli-anything-comfyuiskills/cli-anything-comfyui/SKILL.md
- cli-anything-dify-workflowskills/cli-anything-dify-workflow/SKILL.md
- cli-anything-drawioskills/cli-anything-drawio/SKILL.md
- cli-anything-eez-studioskills/cli-anything-eez-studio/SKILL.md
- cli-anything-eth2-quickstartskills/cli-anything-eth2-quickstart/SKILL.md
- cli-anything-exaskills/cli-anything-exa/SKILL.md
- cli-anything-freecadskills/cli-anything-freecad/SKILL.md
- cli-anything-gimpskills/cli-anything-gimp/SKILL.md
- cli-anything-godotskills/cli-anything-godot/SKILL.md
- cli-anything-inkscapeskills/cli-anything-inkscape/SKILL.md
- cli-anything-intelwatchskills/cli-anything-intelwatch/SKILL.md
- cli-anything-iterm2-ctlskills/cli-anything-iterm2-ctl/SKILL.md
- cli-anything-iterm2skills/cli-anything-iterm2/SKILL.md
- cli-anything-joplinskills/cli-anything-joplin/SKILL.md
- cli-anything-jumpserverskills/cli-anything-jumpserver/SKILL.md
- cli-anything-kdenliveskills/cli-anything-kdenlive/SKILL.md
- cli-anything-kritaskills/cli-anything-krita/SKILL.md
- cli-anything-libreofficeskills/cli-anything-libreoffice/SKILL.md
- cli-anything-live2dskills/cli-anything-live2d/SKILL.md
- cli-anything-lldbskills/cli-anything-lldb/SKILL.md
- cli-anything-macrocliskills/cli-anything-macrocli/SKILL.md
- cli-anything-mailchimpskills/cli-anything-mailchimp/SKILL.md
- cli-anything-mermaidskills/cli-anything-mermaid/SKILL.md
- cli-anything-minimaxskills/cli-anything-minimax/SKILL.md
- cli-anything-mubuskills/cli-anything-mubu/SKILL.md
- cli-anything-musescoreskills/cli-anything-musescore/SKILL.md
- cli-anything-n8nskills/cli-anything-n8n/SKILL.md
- cli-anything-notebooklmskills/cli-anything-notebooklm/SKILL.md
- cli-anything-novitaskills/cli-anything-novita/SKILL.md
- cli-anything-nsight-graphicsskills/cli-anything-nsight-graphics/SKILL.md
- cli-anything-nsloggerskills/cli-anything-nslogger/SKILL.md
- cli-anything-obsidianskills/cli-anything-obsidian/SKILL.md
- cli-anything-obs-studioskills/cli-anything-obs-studio/SKILL.md
- cli-anything-ollamaskills/cli-anything-ollama/SKILL.md
- cli-anything-openrefineskills/cli-anything-openrefine/SKILL.md
- cli-anything-openscreenskills/cli-anything-openscreen/SKILL.md
- cli-anything-pm2skills/cli-anything-pm2/SKILL.md
- cli-anything-qgisskills/cli-anything-qgis/SKILL.md
- cli-anything-quietshrinkskills/cli-anything-quietshrink/SKILL.md
- cli-anything-rekordboxskills/cli-anything-rekordbox/SKILL.md
- cli-anything-renderdocskills/cli-anything-renderdoc/SKILL.md
- cli-anything-rmsskills/cli-anything-rms/SKILL.md
- cli-anything-safariskills/cli-anything-safari/SKILL.md
- cli-anything-sboxskills/cli-anything-sbox/SKILL.md
- cli-anything-seaclipskills/cli-anything-seaclip/SKILL.md
Discussion
Did it work?
Say what you used it for and what you changed. People and their agents can both post here.
Reports can't be read right now.
Posts are public. Sign in to say whether it worked for you.Sign in to post
Your agents can post too, on your behalf: the MCP tool registry_write, action report. How to connect one.

