Record personal expenses/income from chat (often transcribed voice) into a local ledger and generate a MoneyWiz URL scheme (moneywiz://expense|income|transfer?...) to create the transaction in the MoneyWiz app. Use when the user says they spent/earned/transferred money, asks to log a transaction, wants to "记账/报销/记一笔", or wants a MoneyWiz deep link for transaction creation.
Generate MoneyWiz deep links from natural language transaction descriptions.
references/config.example.json to references/config.local.jsonconfig.local.json with your personal settings (account name, currency, etc.)references/categories.json and references/category_aliases.jsonFiles in .gitignore (won't be committed):
references/config.local.json - your personal configreferences/categories.json - your category treereferences/category_aliases.json - your alias mappingsExtract fields from natural language:
expense (default) | income | transfer
income now supports dedicated income categories (e.g., Salary, Carousell, Interest, Refund, Cashback, etc.)categories.json (e.g., "Food & Life/Coffee").Shopping/Other).true)Category resolution:
categories.jsoncategory_aliases.json for known phrasescategory_aliases.jsondefault_expense_category (typically Shopping/Other)default_income_category (typically Other incoming)If amount is missing, ask for it.
IMPORTANT: Always pass --account and --currency explicitly. Read them from config.local.json — do not omit them and rely on script defaults.
# Expense/Income example:
python3 skills/moneywiz-ledger/scripts/add_transaction.py \
--type expense \
--amount 10.00 \
--currency SGD \
--account MyWallet \
--category "吃饭" \
--memo "午饭"
# Transfer example (note: CLI uses --to-account, not --toAccount):
python3 skills/moneywiz-ledger/scripts/add_transaction.py \
--type transfer \
--amount 500 \
--currency SGD \
--account MyWallet \
--to-account Savings
The script:
moneywiz://... URLIf auto_open_on_mac is true in config and running on macOS, the script will automatically run open "moneywiz://...". You do not need to run open manually.
Short confirmation: what was logged, which category, amount.
Note: MoneyWiz URL schemes support creating expenses/income/transfers, but do not provide a documented delete/undo action. If a duplicate is created, delete it manually in the app.
Prefix: moneywiz://
Operations: expense?, income?, transfer?
Common attributes:
account (required) - no spacesamount (required)currency (optional)payee (optional)category (optional, use slashes, URL-encoded)description (optional)memo (optional)tags (optional, comma-separated)date (optional, yyyy-MM-dd HH:mm:ss)save (optional, default false in MoneyWiz)Transfer:
account (from)toAccount (to)amountsaveReference: https://help.wiz.money/en/articles/4525440-automate-transaction-management-with-url-schemas