Skip to the content.

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! (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 version is actually Jython 2.7 and accesses the Moneydance Java codebase.

My scripts and extensions are identical(ish). The extension version(s) are simply a ‘packaged’ script version. InfiniteKind (the creators of Moneydance) have 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 when you click the menu, 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….

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)

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.

^^^Refer to “Script Notes:” at the bottom of this page for details on the new .pyc and $py.class files….

Extension ONLY format (contains only *.mxt file) - Very latest PREVIEW (unsigned) build

Extension (and Scripts formats) (*.mxt and *.py format) - Very latest PREVIEW (unsigned) builds

Signed Versions (hosted by Moneydance at InfiniteKind - These builds appear in the Extensions/Manage Extensions… menu)

Signed Versions (hosted on this site - i.e. NOT InfiniteKind’s site - may be newer than appear (or not available) in Moneydance’s Extensions menu)

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:

My Python Extension and coding tips:

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:

########################################################################################################################

^^^Script Notes: *.pyc files are CPython byte code files generated from the .py script. These are “helpers” to the Jython interpreter. Within the .mxt file you may also find a *$py.class file. This is a compiled version of the script for faster launch times. Some of my scripts are large and these “helpers” prevent a “method too large” RuntimeException. You don’t normally need to worry about all this, but if you want to run the .py script manually (e.g. in Moneybot), then please ensure the .pyc file is placed in the same location as the .py script you are running.

You may also find a ‘StuWareSoftSystems_CommonCode.java’ file along with similar named .class files. These are where I have bundled a java class file to deal with .print() type java methods which Jython cannot handle due to name conflicts.

As of Feb 2023 the precompiled versions (*$py.class files) are included with a bootstrap.py loader for faster load times (avoids initial compile on launch). If the bootstrap fails to load this, then it will just run the script…

########################################################################################################################

########################################################################################################################

DEVELOPERS - There is a mini api inside the Custom Balances extension whereby you can retrieve the results of the calculations by row to use in your own extensions. Contact me for details…

########################################################################################################################

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)
Donate

Or perhaps just buy me a “beer” (also via PayPal)
Donate

If you would like me to code a Moneydance extension, report, script, or fix for you, (for a fee) then contact me: written_drizzle_0v @ icloud.com (no spaces)

(site last updated 25th January 2024)