# Actualize 💸 **Actualize** is a lightweight Python synchronization bridge that connects your bank accounts (via [Enable Banking](https://enablebanking.com/)) directly to your [Actual Budget](https://actualbudget.org/) instance. Automate your financial tracking without sacrificing privacy. Actualize pulls your real-time bank data and pushes it directly into Actual Budget, eliminating manual CSV exports forever. ## ✨ Features - **Python-Powered:** Built with `actualpy` and `enablebanking_sdk` for maximum flexibility. - **Automated Sync:** Fetch transactions from hundreds of banks via Enable Banking's Open Banking API. - **Privacy First:** Local-first architecture. Your credentials and transaction data stay on your machine. - **Smart Deduplication:** Uses Actual Budget's internal reconciliation logic to prevent double entries. - **Headless & Scalable:** Perfect for running on a Raspberry Pi, home server, or as a scheduled GitHub Action. ## 🚀 Getting Started ### Prerequisites - **Python 3.9+** - An [Enable Banking](https://enablebanking.com/) developer account and API keys. - A running instance of [Actual Budget](https://actualbudget.org/). ### Installation 1. **Clone the repository:** ```bash git clone https://github.com/yourusername/actualize.git cd actualize ``` 2. **Create a virtual environment & install dependencies:** ```bash python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install actualpy enablebanking_sdk python-dotenv ``` 3. **Configure environment variables:** Create a `.env` file in the root directory: ```env # Enable Banking Credentials EB_CLIENT_ID=your_client_id EB_CLIENT_SECRET=your_client_secret # Actual Budget Configuration ACTUAL_SERVER_URL=https://your-actual-server.com ACTUAL_PASSWORD=your_server_password ACTUAL_BUDGET_ID=your_sync_id ACTUAL_ENCRYPTION_PASSWORD=your_optional_encryption_pwd ``` ## 🛠 Usage 1. **Authentication:** Run the initial auth script to link your bank accounts and generate tokens. ```bash python authenticate.py ``` 2. **Sync:** Run the sync script to pull transactions and push them to Actual. ```bash python sync.py ``` ## 📦 Tech Stack - **Actual Budget API:** [actualpy](https://github.com/bvanelli/actualpy) - **Bank Integration:** [enablebanking-python-sdk](https://github.com/nocfo/enablebanking-python-sdk) - **Environment Management:** [python-dotenv](https://github.com/theskumar/python-dotenv) ## 📄 License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. --- *Disclaimer: This project is not officially affiliated with Actual Budget or Enable Banking.*