Connect multiple open banking providers to your Actual Budget server.
Discord
·
Website
Lunch Flow is a tool that allows you to connect your banks globally to the tools you love. We currently support multiple open banking providers (GoCardless, Finicity, MX, SimpleFin, Finverse, and more ...).
- 🔗 Easy Setup: Simple configuration process for both Lunch Flow and Actual Budget connections
- 📋 Account Mapping: Interactive terminal UI to map Lunch Flow accounts to Actual Budget accounts
- 📊 Transaction Import: Import transactions with proper mapping and deduplication
- 📅 Sync Start Dates: Configure per-account sync start dates to control import scope
- 🔍 Connection Testing: Test and verify connections to both services
- 📱 Terminal UI: Beautiful, interactive command-line interface
- 🚀 Direct Import Command: Run imports directly from command line for automation
- 🔄 Deduplication: Prevents importing duplicate transactions
A simple command to install!
npx @lunchflow/actual-flow
or using pnpm
pnpm dlx @lunchflow/actual-flow
The tool will guide you through the initial setup process:
- Lunch Flow API Key: Enter your Lunch Flow API key
- Lunch Flow Base URL: Enter the API base URL (default: https://api.lunchflow.com)
- Actual Budget Server URL: Enter your Actual Budget server URL (default: http://localhost:5007)
- Actual Budget Budget Sync ID: Enter your budget sync ID
- Actual Budget Password: Enter password if required
Configuration is saved to config.json
in the project directory.
The tool supports both interactive and non-interactive modes:
# Interactive mode (default)
actual-flow
# Direct import (non-interactive)
actual-flow import
# Show help
actual-flow help
The tool provides an interactive menu with the following options:
- 🔗 Test connections: Verify connections to both Lunch Flow and Actual Budget
- 📋 List available budgets: Show all budgets available on your Actual Budget server
- 📋 Configure account mappings: Map Lunch Flow accounts to Actual Budget accounts
- 📊 Show current mappings: Display currently configured account mappings
- 📥 Import transactions: Import transactions for a selected date range
- ⚙️ Reconfigure credentials: Update API credentials
- ❌ Exit: Exit the application
When configuring account mappings, you'll see:
- All available Lunch Flow accounts
- All available Actual Budget accounts
- Interactive selection to map each Lunch Flow account to an Actual Budget account
- Optional sync start date for each mapping (YYYY-MM-DD format)
- Option to skip accounts that don't need mapping
You can configure a sync start date for each account mapping to control which transactions are imported:
- Only transactions on or after the specified date will be imported
- Leave empty to import all available transactions
- Useful for limiting historical data or starting fresh with specific accounts
- Review a preview of transactions to be imported
- Confirm the import
- Monitor progress with real-time feedback
- Automatic deduplication prevents importing existing transactions
- Automatically imports transactions without confirmation prompts
- Perfect for automation, cron jobs, or CI/CD pipelines
- Shows transaction preview and processing summary
- Respects configured sync start dates for each account
# Run import every day at 2 AM
0 2 * * * /path/to/actual-flow import
name: Import Transactions
on:
schedule:
- cron: '0 2 * * *' # Daily at 2 AM
jobs:
import:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: '18'
- run: npx @lunchflow/actual-flow import
env:
LUNCHFLOW_API_KEY: ${{ secrets.LUNCHFLOW_API_KEY }}
Made with ❤️ for the Actual Budget community