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
Usage
REPL Mode
cli-anything-firefly-iii
Subcommand Mode
# Account management
cli-anything-firefly-iii accounts list
cli-anything-firefly-iii accounts list --type asset
cli-anything-firefly-iii accounts get --id 123
cli-anything-firefly-iii accounts create --name "Cash" --type asset --currency-code USD
# Transaction management
cli-anything-firefly-iii transactions list
cli-anything-firefly-iii transactions list --limit 10 --start 2024-01-01
cli-anything-firefly-iii transactions create --description "Grocery" --amount 50.00 --source-account 1
cli-anything-firefly-iii transactions get --id 456
# Budget management
cli-anything-firefly-iii budgets list
# Category management
cli-anything-firefly-iii categories list
# Tag management
cli-anything-firefly-iii tags list
# Bill management
cli-anything-firefly-iii bills list
# Piggy banks
cli-anything-firefly-iii piggy-banks list
# Insights and reports
cli-anything-firefly-iii insights expense --start 2024-01-01 --end 2024-01-31
cli-anything-firefly-iii insights income --start 2024-01-01 --end 2024-01-31
# Search
cli-anything-firefly-iii search transactions --query "grocery"
# Data export
cli-anything-firefly-iii export transactions --start 2024-01-01 --end 2024-01-31
# System information
cli-anything-firefly-iii info about
cli-anything-firefly-iii info status
JSON Output
All commands support --json flag for structured output:
cli-anything-firefly-iii --json accounts list
Preset Filtering
Use --preset parameter to filter available commands:
# Default preset (core features)
cli-anything-firefly-iii --preset default accounts list
# Full preset (all features)
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 featuresbasic: 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)
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 |
Troubleshooting
Connection Failed
Error: Cannot connect to Firefly III instance: https://firefly.yourdomain.com
Check:
- Is Firefly III instance running
- Is base URL correct
- Is network connection normal
Authentication Failed
Error: Authentication failed: Personal Access Token is invalid
Check:
- Is PAT correct
- Has PAT expired
- Generate new PAT in Firefly III Options > Profile > OAuth
Development
# Clone repository
git clone https://github.com/HKUDS/CLI-Anything.git
cd CLI-Anything/firefly-iii/agent-harness
# Install dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Code formatting
black cli_anything/
License
MIT License