From firefly-tools
Interactive session to create automation rules that auto-categorize transactions in Firefly III
How this skill is triggered — by the user, by Claude, or both
Slash command
/firefly-tools:setup-automationThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Interactive workflow for creating automation rules in Firefly III that fire when transactions are created or updated.
Interactive workflow for creating automation rules in Firefly III that fire when transactions are created or updated.
Before starting, read ${CLAUDE_PLUGIN_ROOT}/.env to check it exists and has no REPLACE_WITH placeholders.
If credentials are missing, tell the user to run /firefly-tools:setup first and stop.
$ARGUMENTS optionally describes what the user wants to automate (e.g., "tag all Grab transactions as transport").
If MCP tools (firefly:*) are not available (e.g., in Cowork mode), use the equivalent scripts in ${CLAUDE_PLUGIN_ROOT}/scripts/ via Bash:
firefly:get_automation_context → python ${CLAUDE_PLUGIN_ROOT}/scripts/manage_rules.py contextfirefly:get_financial_context → python ${CLAUDE_PLUGIN_ROOT}/scripts/get_context.py [--cache]firefly:manage_automations → python ${CLAUDE_PLUGIN_ROOT}/scripts/manage_rules.py <action> [options]firefly:test_automation → python ${CLAUDE_PLUGIN_ROOT}/scripts/manage_rules.py test --rule-id <id>firefly:manage_metadata → python ${CLAUDE_PLUGIN_ROOT}/scripts/manage_metadata.py <action> --name "..."All scripts output JSON to stdout.
firefly:get_automation_context (or python ${CLAUDE_PLUGIN_ROOT}/scripts/manage_rules.py context) to load available trigger keywords, action keywords, and rule groupsfirefly:get_financial_context("all") (or python ${CLAUDE_PLUGIN_ROOT}/scripts/get_context.py --cache) to load existing categories, tags, budgets, accountsfirefly:manage_automations with action "list" (or python ${CLAUDE_PLUGIN_ROOT}/scripts/manage_rules.py list) to see existing rules (avoid duplicates)If $ARGUMENTS provided a description, translate it directly. Otherwise, ask the user.
Map the user's intent to:
Present the proposed rule clearly:
Rule: "Starbucks → Coffee"
Group: Auto-categorize
When: Transaction is created
If ALL match:
- Description contains "STARBUCKS"
- Type is withdrawal
Then:
- Set category to "Food & Dining"
- Add tag "coffee"
If the rule references categories, tags, or budgets that don't exist yet:
firefly:manage_metadata (or python ${CLAUDE_PLUGIN_ROOT}/scripts/manage_metadata.py) for eachfirefly:manage_automations with action "create" (or python ${CLAUDE_PLUGIN_ROOT}/scripts/manage_rules.py create --title "..." --triggers '[...]' --actions '[...]')firefly:test_automation with the new rule_id (or python ${CLAUDE_PLUGIN_ROOT}/scripts/manage_rules.py test --rule-id <id>) with execute=false to dry-runfirefly:test_automation with execute=true (or python ${CLAUDE_PLUGIN_ROOT}/scripts/manage_rules.py fire --rule-id <id>)Report:
npx claudepluginhub originalbyteme/claude-open-finance --plugin firefly-toolsAuto-categorizes uncategorized financial transactions using vendor/description pattern matching. Applies existing rules, groups unmatched by similarity, suggests categories, and offers spreadsheet formula alternatives.
Categorizes financial transactions by matching raw descriptions against configurable taxonomies and rules, with LLM fallback. Emits merchant, category path, recurring flag, and confidence score. Use for bank, credit-card, or brokerage transaction classification.
Automates YNAB budgeting tasks via Rube MCP (Composio). Discovers available tools, manages connections, and executes YNAB operations through composio's toolkit.