Ask your money on the command line
MyTruv CLI MyTruv CLI

Your money, in the terminal.

Check balances, pull transactions, review income, analyze spending, without leaving the shell. Built for scripts, agents, and people who love jq.

A real terminal session with MyTruv CLI.

Tables on a TTY, JSON when piped, the same data either way.

-mytruv
>mytruv balances
┌──────────────────┬─────────────┐
│ Type │ Balance │
├──────────────────┼─────────────┤
│ CHECKING │ $4,218.55 │
│ SAVINGS │ $12,944.00 │
│ CREDIT_CARD │ -$1,608.42 │
│ INVESTMENT │ $84,610.27 │
└──────────────────┴─────────────┘
>mytruv spending --days 30 --group-by category --json | jq '.spending.by_category[0:3]'
[
{ "category": "Groceries", "total_amount": "812.34", "transaction_count": 28 },
{ "category": "Dining Out", "total_amount": "604.18", "transaction_count": 21 },
{ "category": "Subscriptions","total_amount": "487.93", "transaction_count": 12 }
]
>

How it works

Set it up in 3 minutes.

Install
curl -fsSL https://raw.githubusercontent.com/truvhq/mytruv-cli/master/scripts/install.sh -o install.sh
sh install.sh
Step 01 of 04

Install

The install script puts the mytruv binary on your $PATH (defaults to ~/.local/bin). Linux binaries need glibc 2.35+ (Ubuntu 22.04, Debian 12, RHEL 9). Or install with uv:

bash
uv tool install git+https://github.com/truvhq/mytruv-cli.git
Step 02 of 04

Log in

Browser-based OAuth, no API keys to manage:

bash
mytruv auth login
Step 03 of 04

Check your data

View accounts, balances, and recent transactions:

bash
mytruv links            # connected providers
mytruv balances         # aggregated balances
mytruv transactions     # last 7 days by default
mytruv spending         # spending breakdown
Step 04 of 04

Pipe to jq, build scripts

Every data command emits JSON on stdout when piped, with structured exit codes (0 success, 1 error, 2 auth required) and JSON errors on stderr. Built for automation.

bash
mytruv balances | jq '[.aggregated_balances[] | select(.type=="CHECKING") | (.balance | tonumber)] | add'

Your money belongs in the terminal.

Pipe your finances like any other data.

`mytruv balances | jq | grep CHECKING`. Your accounts are first-class citizens of the Unix toolchain now. Compose them with cron, ssh, fzf, anything. Money becomes scriptable, finally.

Built for automation, not eyeballs.

JSON-first output. Structured exit codes. stderr/stdout split correctly. The CLI was designed for scripts, dashboards, and AI agents to consume. (It still looks great on a TTY.)

Doubles as a local AI agent endpoint.

Run `mytruv mcp` and the same binary becomes a local stdio MCP server. Any AI agent (Claude Code, Codex, anything new) can talk to your money without going through the cloud.

Open source. Yours forever.

github.com/truvhq/mytruv-cli. Read the code, file issues, fork it. The CLI does not go away if MyTruv changes plans, it lives on your machine.

Things to try.

Copy-paste straight into a shell. The CLI is read-only, these can't hurt anything.

Sum balances

Sum all your checking-account balances.

mytruv balances | jq '[.aggregated_balances[] | select(.type=="CHECKING") | (.balance | tonumber)] | add'

Top merchants

Top 5 merchants over the last 30 days.

mytruv spending --days 30 --group-by merchant \
  | jq '.spending.by_merchant[0:5] | map({merchant_name, total_amount, transaction_count})'

Date range

Pull transactions in a date range and count by category.

mytruv transactions --from 2026-01-01 --to 2026-04-01 \
  | jq '[.transactions[] | .categories[]] | group_by(.) | map({cat: .[0], n: length})'

Net worth

Net-worth time series for the last year.

mytruv balance-history --date-range 1y --time-period month | jq '.time_series'

Auth guard

Guard a script on authentication.

if ! mytruv auth status | jq -e '.authenticated' > /dev/null 2>&1; then
    echo "Please run: mytruv auth login" >&2
    exit 1
fi

MCP stdio

Start an MCP stdio server for a local agent.

mytruv mcp

API surface

Commands.

Every data command accepts --json, --output csv, --no-color.

12 tools
read_only
mytruv auth login()

// Browser-based OAuth (use --no-browser for headless).

mytruv auth status()

// JSON {authenticated, user}, perfect for script guards.

mytruv user()

// Your profile, including subscription / onboarding flags.

mytruv links()

// Paginated list of connected providers.

mytruv balances()

// Aggregated balances by account type.

mytruv liabilities()

// Aggregated liabilities for credit cards and loans.

mytruv transactions()

// Bank transactions, with --from / --to / --categories.

mytruv spending()

// Spending by category, merchant, or time period.

mytruv income()

// Income from payroll and bank sources, tagged by source.

mytruv recurring()

// Subscriptions, bills, and recurring deposits.

mytruv balance-history()

// Net-worth trends with --date-range and --time-period.

mytruv mcp()

// Start an MCP stdio server for local AI agent integration.

Questions & Answers

Yes. The CLI cannot modify your accounts, create transactions, or change any settings, same guarantee as MyTruv MCP.

Python 3.10+ and a MyTruv account with at least one connected financial account.

Yes. Use --json for raw JSON, --no-color to disable ANSI colors, and check exit codes (0 success, 1 error, 2 auth required). Errors are structured JSON on stderr so they never pollute parseable output.

Yes. MyTruv CLI ships as a Gemini CLI extension. Run `gemini extensions install https://github.com/truvhq/mytruv-cli` after installing and authenticating the mytruv CLI.

Run `rm "$(command -v mytruv)"` to remove the binary.

Yes. github.com/truvhq/mytruv-cli.

Make AI worry about your finances

Know what you're owed. Keep what you earn. See your net worth grow.