--- name: "cli-anything-firefly-iii" description: "Firefly III CLI - Personal finance management via CLI-Anything" version: "1.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 | `/api/v1/accounts` | | `transactions` | Transaction management | `/api/v1/transactions` | | `budgets` | Budget management | `/api/v1/budgets` | | `categories` | Category management | `/api/v1/categories` | | `tags` | Tag management | `/api/v1/tags` | | `bills` | Bill management | `/api/v1/bills` | | `piggy-banks` | Piggy banks | `/api/v1/piggy-banks` | | `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 # Delete account cli-anything-firefly-iii accounts delete --id 123 ``` ### Transaction Management ```bash # List transactions cli-anything-firefly-iii --json transactions list --limit 10 # Create transaction cli-anything-firefly-iii --json transactions create \ --description "Grocery" \ --amount 50.00 \ --source-account 1 \ --category "Food" # Get transaction details cli-anything-firefly-iii --json transactions get --id 456 # Delete transaction cli-anything-firefly-iii transactions delete --id 456 ``` ### 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 # 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 ``` ### 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 ``` #### 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 \ --destination-account \ --category "Food" ``` #### Monthly 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. 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 ### 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 ## 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 ## 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 | ## License MIT License