New to Claude Skills? Learn how to install them →

hkuds on GitHub

Firefly III CLI

Free

Manage personal finances directly from your command line.

by hkuds46.9k stars on hkuds/cli-anything
1 views
Updated Aug 3, 2026
Get this skill

Free · Opens the source repo

What Firefly III CLI does

Firefly III CLI is a command-line interface tool designed for managing personal finances using the Firefly III application. Built on the CLI-Anything specification, this tool allows users to interact with their Firefly III instance in a stateless manner, which helps avoid issues related to residual Node processes. This makes it a reliable choice for developers and users who prefer command-line operations over graphical interfaces.

To get started, users need to have Python 3.10 or higher and a running instance of Firefly III, along with a Personal Access Token (PAT) for authentication. The tool can be easily installed via pip, and configuration is straightforward, requiring only the base URL of the Firefly III instance and the PAT. Users can opt to set these as environment variables or pass them directly as command-line arguments.

The Firefly III CLI provides a comprehensive set of command groups that cover all aspects of personal finance management. Users can manage accounts, transactions, budgets, categories, tags, bills, piggy banks, and more. Each command group supports standard CRUD operations (Create, Read, Update, Delete) and includes specific commands for additional functionalities such as managing recurring transactions and generating financial summaries. The tool also includes an autocomplete feature to streamline user input, making it easier to work with various entities.

This CLI tool is ideal for developers and tech-savvy users who are comfortable with command-line interfaces and want to automate their personal finance management tasks. It offers a powerful alternative to the standard web interface, enabling users to script and integrate their financial management workflows seamlessly.

When to use it

Use this tool when you need to manage your personal finances programmatically or prefer using the command line for tasks like account management, transactions, and budgeting.

When not to use it

This tool may not be suitable for users who are not comfortable with command-line interfaces or those who prefer a graphical user interface for managing their finances.

What you can build with it

Automate Financial Reports

Generate financial summaries and insights automatically by scripting commands in Firefly III CLI.

Manage Transactions Efficiently

Quickly list, create, and update transactions directly from the command line without navigating a web interface.

Organize Budgets and Categories

Easily manage your budgets and categories using simple command-line commands to keep your finances organized.

How to install Firefly III CLI

View source

1. Install with the skills CLI

npx skills add hkuds/cli-anything/skills --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by hkuds

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 GroupDescriptionCorresponding API
accountsAccount management (CRUD)/api/v1/accounts
transactionsTransaction management (CRUD)/api/v1/transactions
budgetsBudget management (CRUD + limits)/api/v1/budgets
categoriesCategory management (CRUD)/api/v1/categories
tagsTag management (CRUD)/api/v1/tags
billsBill management (CRUD)/api/v1/bills
piggy-banksPiggy bank management (CRUD + events)/api/v1/piggy-banks
autocompleteAutocomplete for various entities/api/v1/autocomplete/*
currenciesCurrency management (CRUD)/api/v1/currencies
recurrencesRecurring transaction management (CRUD)/api/v1/recurrences
rulesRule management (CRUD + test/execute)/api/v1/rules
rule-groupsRule group management (CRUD + execute)/api/v1/rule-groups
summaryFinancial summaries/api/v1/summary/*
webhooksWebhook management (CRUD + trigger)/api/v1/webhooks
insightsInsights and reports/api/v1/insight/*
searchSearch/api/v1/search/*
exportData export/api/v1/data/export/*
infoSystem information/api/v1/about

Usage Examples

Account Management

# 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

# 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

# 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

# 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

# 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

# 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

# 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

# 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

# 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

# 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

# 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

# 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

# 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

# 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

# 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

# Search transactions
cli-anything-firefly-iii --json search transactions --query "grocery"

Data Export

# 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

# 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:

# 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

# 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

# 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

# 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

# 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

# 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

FeatureMCP VersionCLI-Anything Version
Process LifecycleLong-runningSingle call, immediate exit
Memory UsageContinuousOn-demand, released after
CommunicationStdio/SSECommand args + stdout
State ManagementStatefulStateless
Preset FilteringSupportedSupported
JSON OutputBuilt-in--json flag
Full API CoveragePartialFull API coverage

API Coverage

This CLI covers the following Firefly III API endpoints:

  • /api/v1/about - System information
  • /api/v1/accounts - Account management (full CRUD)
  • /api/v1/transactions - Transaction management (full CRUD)
  • /api/v1/budgets - Budget management (full CRUD + limits)
  • /api/v1/categories - Category management (full CRUD)
  • /api/v1/tags - Tag management (full CRUD)
  • /api/v1/bills - Bill management (full CRUD)
  • /api/v1/piggy-banks - Piggy bank management (full CRUD + events)
  • /api/v1/autocomplete/* - All autocomplete endpoints
  • /api/v1/currencies - Currency management (full CRUD)
  • /api/v1/recurrences - Recurring transaction management (full CRUD)
  • /api/v1/rules - Rule management (full CRUD + test/execute)
  • /api/v1/rule-groups - Rule group management (full CRUD + execute)
  • /api/v1/summary/* - Summary endpoints
  • /api/v1/webhooks - Webhook management (full CRUD + trigger)
  • /api/v1/insight/* - Insight endpoints
  • /api/v1/search/* - Search endpoints
  • /api/v1/data/export/* - Export endpoints
  • /api/v1/chart/* - Chart endpoints
  • /api/v1/configuration - Configuration
  • /api/v1/preferences - User preferences
  • /api/v1/available_budgets - Available budgets
  • /api/v1/object-groups - Object groups
  • /api/v1/links - Transaction links
  • /api/v1/attachments - Attachments
  • /api/v1/currency_exchange_rates - Exchange rates
  • /api/v1/data/bulk - Bulk operations
  • /api/v1/user-groups - User groups (read-only)
  • /api/v1/users - User management (admin)

License

MIT License

Frequently asked questions about Firefly III CLI

Similar skills