Welcome to my site for Moneydance Extensions and Scripts written in Python
Author: Stuart Beesley - StuWareSoftSystems
NOTE: I AM JUST A USER - I HAVE NO AFFILIATION WITH MONEYDANCE! (but I do use all my scripts on my own live dataset…)
DISCLAIMER: ALWAYS BACKUP YOUR DATA BEFORE MAKING ANY CHANGES - The author cannot accept any responsibility from the use of these scripts
Moneydance allows you to run Python scripts and access its functions via their API. This allows you to perform all sorts of ‘wonderful’ things based on your own financial data.
Python is actual Jython 2.7 and accesses the Moneydance Java codebase.
My scripts and extensions are identical. The extension version(s) are simply a ‘packaged’ script version. InfiniteKind (the creators of Moneydance) have now signed my Extensions. NOTE: The signed versions hosted by IK/MD may be a few builds behind my latest versions. If you require a signed version, then download links are at the bottom of this page (these also appear in the Extensions>Manage Extensions menu))
The Extensions will only run properly on Moneydance version 2021.1 (build 3056 onwards)… The minimum version to run as standalone scripts is 2019.4 (build 1904)… (If you have installed the extension, but nothing happens, then check your MD version/build)
NOTE: All extensions listed below (except marked with ^^) are listed within the Moneydance Manage Extensions menu - Check there first for updates
ANY NEWER VERSIONS LISTED HERE SHOULD BE CONSIDERED PREVIEW (LATEST) VERSIONS (FULLY WORKING, WITH ENHANCEMENTS, FIXES, AND PREVIEW FEATURES)
Click a link below to download a ZIP file. The ZIP file contains both the Extension (if available) and Script version for you to choose from….
- Extensions have a file extension of *.mxt
- Scripts have a file extension of *.py
To install/run Extensions:
1) Launch Moneydance
2) Double-click the .mxt file (this may not work if you do not have .mxt extensions associated with Moneydance)
- or drag and drop the .mxt file onto the Moneydance left side bar;
- or Extensions, Manage Extensions, add from file to install.
- or Menu>Extensions>add from file>choose <extension_name>.mxt file, then click open/install;
- (Note: The .mxt file must not be renamed. Sometimes downloading/unzipping adds a number to the end of the filename)
3) Accept any warning(s) that the extension is unsigned (this simply means that Moneydance have not signed / verified my extension). Click Install Extension.
4) Once its installed, restart Moneydance.
5) From now on, just click Menu>Extensions and the name of the Extension
To run Scripts:
1) Load Moneydance. Menu>Window>Show Moneybot Console
2) Open Script>choose <scriptname>.py file
3) Click RUN (and not run snippet)
4) That’s it…. Repeat these steps each time.
Extension ONLY format (contains only *.mxt file) - Very latest PREVIEW (unsigned) build
- Toolbox: View Moneydance settings, diagnostics, fix issues, change settings and much more…
NOTE: Toolbox has the ability to update your dataset/settings in Update and Advanced mode(s). In the default Basic mode it’s READONLY and VERY useful!
NOTE: Also installs two new Extensions Menu options:
- Move Investment Transactions: Allows you to move the txns you have selected in the visible Investment Register.
-
Total Selected Transactions: Will total up the txns you have selected in the visible register.
- Custom Balances(Net Account Balances): Puts a small ‘widget’ on the Summary Page (Home Page). Displays the total of selected account balances. Now multi-row, display currency, and you can select Accounts/Categories/Securities per row. NOTE: It’s also a demo of how to create a true runtime Python extension and a HomePageView (Summary Page) widget
Extension (and Scripts formats) (*.mxt and *.py format) - Very latest PREVIEW (unsigned) builds
- Extract Data: Extract data to screen/csv. Options include: Investments, Reminders, Account txns, Investment txns, Currency History; attachments. This is a consolidation of all prior extract scripts in one, including:
- stockglance2020 View summary of Securities/Stocks on screen, total by Security, export to csv
- extract_reminders_csv View reminders on screen, edit if required, extract all to csv
- extract_currency_history_csv Extract currency history to csv
- extract_investment_transactions_csv Extract investment transactions to csv
- extract_account_registers_csv Extract Account Register(s) to csv along with any attachments
- extension_tester: Demo extension/scripts for coders wanting to build Moneydance Python extensions.
Signed Versions (hosted by Moneydance at InfiniteKind)
- Toolbox (signed) (build: 1051 - 14th June 2022) (Moneydance+ ‘friendly’ version. Added rename/relocate dataset features; better detection/fixing of invalid saved window settings)
- Extract Data (signed) (build: 1024 - 28th May 2022)
- List Future Reminders (signed) (build: 1017 - 28th May 2022) (Added expand all button, also search collapsed items)
- Custom Balances (net_account_balances) (signed) (build: 1013 - 2nd May 2022) (Updated: Multi-row, Currency, Custom Dates etc)
Signed Versions (hosted on this site)
- Accounts Categories Mega Search Window (signed) (build: 1004 - 28th May 2022) (enable expand all, search collapsed)
- Security Performance Graph (signed) (build: 1000 - 28th May 2022) - (Initial preview release)
Other useful ad-hoc scripts (*.py format only) - Very latest code versions
Useful_Scripts: A zip collection of ad-hoc scripts that can be run individually. Including:
- calculate_moneydance_objs_and_datasetsize.py: Analyse your Moneydance dataset, report on objects, internal file size(s), and list other known datasets…
- extract_all_attachments.py: extract all your attachments out of Moneydance to a folder of your choice
- orphan_attachments.py: scans your attachments and detects if any are orphaned (and other related errors)
- demo_account_currency_rates.py: demo script for beginner coders with some simple Moneydance API calls etc
- demo_calling_import_functions.py: demo script to show how to call deep API importFile() method and bypass UI popups (for headless running)
- ofx_create_new_usaa_bank_custom_profile.py: script that creates a new custom USAA bank logon profile so that it can connect within Moneydance (also built into Toolbox)
- ofx_populate_multiple_userids.py: script that allows you to modify a working OFX profile and populate with multiple UserIDs (also built into Toolbox)
- import_categories.py: script that allows you to import from a CSV file to create new Categories
My Python Extension and coding tips:
- Extension tips: A readme.txt file that contains my tips on creating Python extensions and some coding tips….
- Moneydance Mac Launch Shell Script: A MacOs shell script that launches Moneydance replicating the standard App launch sequence…. But without Apple sandboxing restrictions… You can also therefore change much of the underlying ‘environment’ and java libraries…
- Moneydance basic Windows Launch Shell Script: A basic Windows batch file that launches Moneydance - update with the relevant bits you need from the more complete Mac sh version…
- Moneydance Mac Apple Script Launch Script: A basic Applescript to launch Moneydance…
Experimental / advanced:
It’s possible to load Moneydance components externally. This would not be supported by IK and you do so at your own risk.
As of MD2021.2(3088) you can set an environment variable ‘md_passphrase=’ or ‘md_passphrase_<lowercase_filename>’ and this will bypass the popup ‘Enter your password’ prompt. This means that the headless methods, to access MD data externally will work much more seamlessly. There are examples below on how to do this (with ‘environment_passphrase’ in filename):_
Method 1: Using Jython (for true Java integration) (with a launch script to set up the JVM properly) - See folder contents:
Method 2: Using Python and JPype (sets up the JVM as part of the script) - See folder contents:
- open-mdheadless-jpype: Folder containing Python script using JPype to access Moneydance externally….
Source Code sites - you can freely read / review all my code
Author’s code site: https://github.com/yogi1967/MoneydancePythonScripts
Moneydance’s site for code: https://github.com/TheInfiniteKind/moneydance_open/tree/main/python_scripts/
If you like my tools you can donate to support my work via PayPal (completely optional)
Or perhaps just buy me a “beer” (also via PayPal)
(site last updated 14th June 2022)