Manage personal finances with the Trako expense tracker. Use when the user asks about expenses, income, transfers, transactions, accounts, categories, balances, budgets, splits, or contacts. Do NOT use for currency conversion or exchange rates.
You have access to the trako CLI for managing personal finances.
You can always pass --raw to every command so you receive JSON output you can parse.
trako account list --raw and trako category list --raw first to resolve IDs before creating or updating transactions.--account-name and --category-name as alternatives to IDs for transaction commands — prefer names when the user provides them, as the CLI resolves them automatically.YYYY-MM-DD format.INR, USD, EUR).--yes flag. Warn the user they will see a prompt.add-expense. When they say "income" they mean . When they say "transfer" they mean .add-incomeadd-transfertrako auth login.trako health check --raw
trako auth login --username "<username>"
trako config use <profile-name>
trako account list --raw
trako account balances --raw
trako account get <ID> --raw
trako category list --raw
Returns ID, name, and type (INCOME / EXPENSE) for each category.
trako transaction list --raw [--month M] [--year Y] [--page N] [--size N]
Defaults to current month if no month/year given. Response is paginated.
trako transaction get <ID> --raw
trako transaction add-expense \
--amount <NUMBER> \
--name "<description>" \
--currency <CODE> \
--account-id <ID> OR --account-name "<name>" \
--category-id <ID> OR --category-name "<name>" \
[--comments "<text>"] \
[--date YYYY-MM-DD] \
[--exchange-rate <NUMBER>] \
--raw
Required: --amount, --name, --currency, one of account id/name, one of category id/name.
If --date is omitted the CLI defaults to today.
trako transaction add-income \
--amount <NUMBER> \
--name "<description>" \
--currency <CODE> \
--account-id <ID> OR --account-name "<name>" \
--category-id <ID> OR --category-name "<name>" \
[--comments "<text>"] \
[--date YYYY-MM-DD] \
[--exchange-rate <NUMBER>] \
--raw
Same required fields as add-expense.
trako transaction add-transfer \
--amount <NUMBER> \
--currency <CODE> \
--from-account-id <ID> OR --from-account-name "<name>" \
--to-account-id <ID> OR --to-account-name "<name>" \
[--name "<description>"] \
[--comments "<text>"] \
[--date YYYY-MM-DD] \
--raw
Required: --amount, --currency, source account, destination account.
Source and destination must be different accounts.
trako transaction update-expense <ID> \
[--amount <NUMBER>] \
[--name "<description>"] \
[--account-id <ID>] \
[--category-id <ID>] \
[--currency <CODE>] \
[--comments "<text>"] \
[--date YYYY-MM-DD] \
[--exchange-rate <NUMBER>] \
--raw
Only pass the fields you want to change.
trako transaction update-income <ID> \
[--amount <NUMBER>] \
[--name "<description>"] \
[--account-id <ID>] \
[--category-id <ID>] \
[--currency <CODE>] \
[--comments "<text>"] \
[--date YYYY-MM-DD] \
[--exchange-rate <NUMBER>] \
--raw
trako transaction update-transfer <ID> \
[--amount <NUMBER>] \
[--name "<description>"] \
[--from-account-id <ID>] \
[--to-account-id <ID>] \
[--comments "<text>"] \
[--date YYYY-MM-DD] \
--raw
trako transaction delete <ID>
Requires interactive confirmation. Tell the user: "Please confirm 'y' in your terminal."
trako transaction summary --raw [--start-date YYYY-MM-DD] [--end-date YYYY-MM-DD] [--account-ids "1,2,3"]
trako transaction total-income --start-date YYYY-MM-DD --end-date YYYY-MM-DD --raw
trako transaction total-expense --start-date YYYY-MM-DD --end-date YYYY-MM-DD --raw
trako budget view --raw [--month M] [--year Y]
Defaults to current month/year. Shows total budget, income, spent, available, and per-category allocations.
trako budget current --raw
trako budget allocate --category-id <ID> --amount <NUMBER> --raw [--month M] [--year Y]
trako budget available --raw [--month M] [--year Y]
trako contact list --raw
trako split list --raw
trako split create --transaction-id <ID> --user-id "<uid>" --amount <NUMBER> [--contact-id <ID>] --raw
trako split unsettled --raw
trako split settle <ID>
trako split for-transaction <TRANSACTION_ID> --raw
trako split for-contact <CONTACT_ID> --raw
trako stats summary --range <RANGE> --type <TYPE> --raw [--start-date YYYY-MM-DD] [--end-date YYYY-MM-DD]
Ranges: WEEK, MONTH, YEAR, FIVE_YEAR, TEN_YEAR, CUSTOM (requires start/end dates).
Types: INCOME, EXPENSE.
trako stats category-summary --category-id <ID> --range <RANGE> --type <TYPE> --raw
trako account list --raw → find the accounttrako category list --raw → find the food/grocery categorytrako transaction add-expense --amount 500 --name "Groceries" --currency INR --category-name "FOOD" --account-name "Cash" --rawtrako transaction total-expense --start-date 2026-03-01 --end-date 2026-03-31 --raw
Or for a breakdown: trako stats summary --range MONTH --type EXPENSE --raw
trako account balances --raw
trako transaction add-transfer --amount 1000 --currency INR --from-account-name "Savings" --to-account-name "Cash" --raw
trako budget view --raw
trako split unsettled --raw