Expand description
§MoneyMoney Rust Interface
A safe, ergonomic Rust interface to the MoneyMoney macOS application via AppleScript.
§Overview
This library provides typed Rust bindings to MoneyMoney’s AppleScript API, enabling programmatic access to your financial data on macOS. All operations communicate with the MoneyMoney application via OSA (Open Scripting Architecture).
§Requirements
- macOS: MoneyMoney is a macOS-only application
- MoneyMoney app: Must be installed and running
- Permissions: Appropriate accessibility permissions for script execution
§Features
- Type-safe API: All data structures use proper Rust types
- Serde integration: All types support serialization/deserialization
- Zero unsafe code: Pure safe Rust implementation
§Quick Start
use moneymoney::export_transactions::ExportTransactionsParams;
use chrono::NaiveDate;
// Export all accounts
let accounts = moneymoney::export_accounts()?;
for account in accounts {
if let Some(balance) = &account.balance {
println!("{}: {} {}", account.name, balance.amount, balance.currency.code());
}
}
// Export transactions from a specific date
let params = ExportTransactionsParams::new(
NaiveDate::from_ymd_opt(2024, 1, 1).expect("valid date")
);
let response = moneymoney::export_transactions(params)?;§Available Operations
§Export Operations
export_accounts()- Export all accounts with balances and metadataexport_categories()- Export all categories with budgetsexport_transactions()- Export transactions with flexible filteringexport_portfolio()- Export securities and portfolio holdings
§Transaction Management
add_transaction()- Add transactions to offline accountsset_transaction()- Modify existing transaction properties (checkmark, category, comment)
§Payment Operations (Experimental)
create_bank_transfer()- Create SEPA bank transfers (requiresexperimentalfeature)create_direct_debit()- Create SEPA direct debit orders (requiresexperimentalfeature)
§Feature Flags
experimental- Enables experimental APIs likecreate_bank_transferthat may changetest-utils- Enables test utilities for integration testing (see thetest_utilsmodule)
§MoneyMoney API Documentation
For details on the underlying AppleScript API, see: https://moneymoney-app.com/api/
Modules§
- add_
transaction - Add transactions to offline accounts in MoneyMoney.
- create_
bank_ transfer - Create bank transfers in MoneyMoney (experimental).
- create_
direct_ debit - Create SEPA direct debit orders in MoneyMoney (experimental).
- export_
accounts - Export accounts from MoneyMoney.
- export_
categories - Export categories and budgets from MoneyMoney.
- export_
portfolio - Export securities portfolio holdings from MoneyMoney.
- export_
transactions - Export transactions from MoneyMoney.
- set_
transaction - Modify existing transactions in MoneyMoney.
- test_
utils - Test utilities for integration testing with MoneyMoney.
Enums§
- Error
- Errors that can occur when interacting with MoneyMoney.
- Moneymoney
Actions
Functions§
- add_
transaction - Add a transaction to an offline account in MoneyMoney.
- call_
action - call_
action_ plist - call_
action_ void - Call a MoneyMoney action that doesn’t return data (void operations).
- create_
bank_ transfer - Create a bank transfer in MoneyMoney.
- create_
direct_ debit - Create a SEPA direct debit order in MoneyMoney.
- export_
accounts - Export all accounts from MoneyMoney.
- export_
categories - Export all categories from MoneyMoney.
- export_
portfolio - Export portfolio holdings from MoneyMoney.
- export_
transactions - Export transactions from MoneyMoney with filtering.
- set_
transaction - Modify an existing transaction in MoneyMoney.