CLI
Introduction
The Expensicat CLI — scriptable access to your entire business OS
The Expensicat CLI is a scriptable interface to your entire Expensicat workspace — invoices, transactions, customers, projects, time tracking, banking, and more. It's designed for humans running ad-hoc commands and for AI agents automating workflows.
Every API resource is exposed as a subcommand. Missing required fields trigger interactive prompts when run in a terminal, and fail fast with clear errors when piped in scripts.
Quick start
# Install (no setup required)
npx @expensicat/cli@latest --help
# Or install globally
npm install -g @expensicat/cli
# Log in
expensicat login
# Check your identity
expensicat whoami
# List recent invoices
expensicat invoice list
# Create an invoice interactively
expensicat invoice createWhat you can do
- Invoices — Create, list, update, and delete invoices and recurring series
- Transactions — Browse, categorize, and update bank transactions
- Entries — Track expenses and income
- Banking — Connect accounts and trigger syncs
- Customers & Projects — Manage clients and project work
- Time tracking — Start, stop, and review time entries
- Documents — Upload receipts, download files
- Metrics — P&L, cash flow, aging, snapshots
- Team — Manage organizations, members, and integrations
Human-friendly and agent-friendly
Every command:
- Prints a rich table in a terminal
- Outputs clean JSON with
--json - Exposes its full schema via
--describe(for AI agents and scripts) - Falls back to interactive prompts when required fields are missing in a TTY
# JSON output — pipe into jq
expensicat invoice list --json | jq '.data[] | select(.status == "overdue")'
# Machine-readable schema for AI agents
expensicat --describeNext steps
- Installation — Install and update the CLI
- Configuration — Environments, config file, global flags
- Commands — Full command reference