Meziantou.Moneiz.Cli 2.0.0

Prefix Reserved
dotnet tool install --global Meziantou.Moneiz.Cli --version 2.0.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local Meziantou.Moneiz.Cli --version 2.0.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Meziantou.Moneiz.Cli&version=2.0.0
                    
nuke :add-package Meziantou.Moneiz.Cli --version 2.0.0
                    

Moneiz CLI

Command-line interface for managing Moneiz personal finance database files.

Installation

Install as a global .NET tool:

dotnet tool install --global Meziantou.Moneiz.Cli

Or run directly from source:

dotnet run --project src/Meziantou.Moneiz.Cli/Meziantou.Moneiz.Cli.csproj -- [command] [options]

Commands

get-transactions

Get the list of transactions from the database with optional filters. Output is in JSON format.

Usage
meziantou.moneiz get-transactions [options]
Options
Option Required Description
--file <file> Yes Path to the database file
--account-id <id> No Filter by account ID
--payee-id <id> No Filter by payee ID
--category-id <id> No Filter by category ID
--min-amount <amount> No Filter by minimum amount
--max-amount <amount> No Filter by maximum amount
--from-date <date> No Filter by start date (value date, format: yyyy-MM-dd)
--to-date <date> No Filter by end date (value date, format: yyyy-MM-dd)
--checked <bool> No Filter by checked status (true/false)
--reconciliated <bool> No Filter by reconciliation status (true/false)
--linked-transaction-id <id> No Filter by linked transaction ID
Examples

Get all transactions:

meziantou.moneiz get-transactions --file ~/finances.moneiz

Get transactions for a specific account:

meziantou.moneiz get-transactions \
  --file ~/finances.moneiz \
  --account-id 1

Get transactions within a date range:

meziantou.moneiz get-transactions \
  --file ~/finances.moneiz \
  --from-date 2026-01-01 \
  --to-date 2026-01-31

Get unchecked transactions:

meziantou.moneiz get-transactions \
  --file ~/finances.moneiz \
  --checked false

Get expenses (negative amounts) for a specific payee:

meziantou.moneiz get-transactions \
  --file ~/finances.moneiz \
  --payee-id 5 \
  --max-amount 0

Combine multiple filters:

meziantou.moneiz get-transactions \
  --file ~/finances.moneiz \
  --account-id 1 \
  --category-id 3 \
  --from-date 2026-01-01 \
  --checked true
Output Format

The command outputs transactions in JSON format with the following structure:

[
  {
    "Id": 1,
    "Amount": -50.00,
    "Comment": "Weekly groceries",
    "ValueDate": "2026-01-12",
    "CheckedDate": "2026-01-17",
    "AccountId": 1,
    "AccountName": "Checking Account",
    "PayeeId": 1,
    "PayeeName": "Supermarket",
    "CategoryId": 1,
    "CategoryName": "Food::Groceries",
    "State": "Checked"
  }
]

Fields are omitted from the output if they are null.

add-transaction

Add a new transaction to the database. Supports both regular transactions and inter-account transfers.

Usage
meziantou.moneiz add-transaction [options]
Options
Option Required Description
--file <file> Yes Path to the database file
--account-id <id> Yes Account ID for the transaction
--amount <amount> Yes Transaction amount (positive for credit, negative for debit)
--to-account-id <id> No Destination account ID for inter-account transfers
--value-date <date> No Transaction date (format: yyyy-MM-dd). Defaults to today
--payee <name> No Payee name (not used for inter-account transfers)
--category <name> No Category name (format: 'GroupName::CategoryName' or 'CategoryName')
--comment <text> No Transaction comment
--checked No Mark transaction as checked
Examples

Add a regular expense transaction:

meziantou.moneiz add-transaction \
  --file ~/finances.moneiz \
  --account-id 1 \
  --amount -50.00 \
  --payee "Coffee Shop" \
  --category "Food::Dining" \
  --comment "Morning coffee"

Add an income transaction:

meziantou.moneiz add-transaction \
  --file ~/finances.moneiz \
  --account-id 1 \
  --amount 2500.00 \
  --payee "Employer" \
  --category "Income::Salary" \
  --value-date 2026-01-15 \
  --checked

Transfer money between accounts:

meziantou.moneiz add-transaction \
  --file ~/finances.moneiz \
  --account-id 1 \
  --to-account-id 2 \
  --amount 200 \
  --comment "Transfer to savings"

This creates two linked transactions:

  • A debit of -200 from account 1
  • A credit of +200 to account 2

Add a transaction with grouped category:

meziantou.moneiz add-transaction \
  --file ~/finances.moneiz \
  --account-id 1 \
  --amount -75.50 \
  --payee "Grocery Store" \
  --category "Shopping::Groceries"

update-transaction

Update an existing transaction in the database. Supports updating both regular transactions and inter-account transfers.

Usage
meziantou.moneiz update-transaction [options]
Options
Option Required Description
--file <file> Yes Path to the database file
--transaction-id <id> Yes Transaction ID to update
--amount <amount> No Transaction amount (positive for credit, negative for debit)
--value-date <date> No Transaction date (format: yyyy-MM-dd)
--payee <name> No Payee name (not applicable for inter-account transfers)
--category <name> No Category name (format: 'GroupName::CategoryName' or 'CategoryName')
--comment <text> No Transaction comment
--checked <bool> No Mark transaction as checked or unchecked (true/false)
Examples

Update the amount of a transaction:

meziantou.moneiz update-transaction \
  --file ~/finances.moneiz \
  --transaction-id 1 \
  --amount -75.50

Update multiple fields:

meziantou.moneiz update-transaction \
  --file ~/finances.moneiz \
  --transaction-id 1 \
  --amount -85.00 \
  --comment "Updated groceries" \
  --category "Shopping::Groceries"

Mark a transaction as checked:

meziantou.moneiz update-transaction \
  --file ~/finances.moneiz \
  --transaction-id 1 \
  --checked true

Update an inter-account transfer amount:

meziantou.moneiz update-transaction \
  --file ~/finances.moneiz \
  --transaction-id 2 \
  --amount -150

When updating a linked transaction (inter-account transfer), both transactions are automatically updated to maintain consistency.

Change category:

meziantou.moneiz update-transaction \
  --file ~/finances.moneiz \
  --transaction-id 1 \
  --category "Expenses::Food"
Notes
  • All options except --file and --transaction-id are optional. Only specify the fields you want to update.
  • When updating an inter-account transfer, the linked transaction is automatically updated to maintain consistency.
  • Attempting to set a payee on an inter-account transfer will show a warning and the payee will be ignored.
  • To find transaction IDs, use the get-transactions command.

check-overdraft

Check if accounts will fall below their minimum balance thresholds in the coming days.

Usage
meziantou.moneiz check-overdraft [options]
Options
Option Required Description
--file <file> Yes Path to the database file
--account-id <ids> No Account IDs to check (comma-separated, e.g., '1,2,3'). If not specified, checks all accounts with notifications enabled
Examples

Check all accounts with overdraft notifications enabled:

meziantou.moneiz check-overdraft --file ~/finances.moneiz

Check specific accounts:

meziantou.moneiz check-overdraft \
  --file ~/finances.moneiz \
  --account-id 1,3,5

The command will:

  • Process scheduled transactions
  • Check balance projections for the configured notification period
  • Report accounts that will fall below their minimum balance
  • Exit with code 1 if any account will be in overdraft, 0 otherwise

Notes

Categories

Categories can be specified in two formats:

  • Simple: "Food" (no group)
  • Grouped: "Expenses::Food" (with group name)

Categories are automatically created if they don't exist in the database.

Payees

Payees are automatically created if they don't exist in the database.

Inter-Account Transfers

When using --to-account-id, the tool creates two linked transactions representing a transfer between accounts. The --payee option is ignored for transfers since the linked transaction represents the movement of funds.

Date Format

All dates must be in ISO 8601 format: yyyy-MM-dd (e.g., 2026-01-17)

Exit Codes

  • 0: Success
  • 1: Error (missing file, invalid account, overdraft detected, etc.)

Getting Account IDs

Account IDs are assigned by the Moneiz application when accounts are created. You can view account details in the main Moneiz web application to find the account IDs you need for CLI commands.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
2.0.0 144 9/11/2026
1.0.3 394 12/31/2025
1.0.2 132 12/30/2025
1.0.1 120 12/30/2025
1.0.0 128 12/30/2025