Expensicat
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 create

What 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 --describe

Next steps

On this page