Skip to content

Releases: StevenACZ/lucas-cli

v0.6.6

20 May 04:37

Choose a tag to compare

Changed

  • Removed the retired lucas ai chat-message command to match the current backend API surface.
  • Kept LucasApp CLI AI focused on usage, parse-expenses, parse-expenses-image, and insights.
  • Updated README and changelog for the supported AI command set.

Verified

  • format, typecheck, lint, tests, build, and npm pack dry-run passed locally.
  • Production CLI smoke tests passed against https://lucas.stevenacz.com.

v0.6.5

20 May 01:06

Choose a tag to compare

Summary

  • Align list commands with current backend filters and pagination shapes.
  • Include archived accounts explicitly in account list output while preserving active totals.
  • Add client-side converted amounts for exchange-rate conversions.

Verification

  • format:check, typecheck, lint, test, build.
  • npm pack dry-run publishes only LICENSE, README.md, dist/index.js, and package.json.
  • Production read-only smoke covered auth, accounts, debt detail, transactions, transfers, subscriptions, loans, stats, categories, exchange-rate, and usage endpoints.

v0.6.1

20 May 00:16

Choose a tag to compare

Summary

  • Harden CLI device authorization by separating the visible approval code from the secret polling code.
  • Add stricter local image input validation, safer resource path handling, redacted backend errors, and private credential storage.
  • Move npm publishing to Trusted Publishing/OIDC with provenance.

Verification

  • bun run format:check
  • bun run typecheck
  • bun run lint
  • bun run test
  • bun run build
  • npm pack --dry-run --json --ignore-scripts

v0.6.0

09 May 04:11
371cfae

Choose a tag to compare

Added

  • lucas ai usage — reads current AI usage and preserves usagePeriods when the backend returns daily, weekly, and monthly windows.
  • lucas ai parse-expenses <text...> — sends text expense parsing requests to POST /api/ai/parse-expenses.
  • lucas ai parse-expenses-image <paths...> — sends up to 10 receipt images to POST /api/ai/parse-expenses-image.
  • lucas ai insights <query...> — sends financial insight prompts to POST /api/ai/insights.
  • lucas ai chat-message <message...> — sends messages to Lucas Chat via POST /api/lucas-chat/message.

Changed

  • Public plan contract is now FREE and PREMIUM only.
  • Premium copy reflects unlimited accounts, unlimited subscriptions, and AI limits of 50/day, 300/week, and 1000/month.
  • Free copy reflects 0 AI calls, up to 3 active accounts, and blocked subscriptions.
  • Backend limit errors now map to CLI-friendly messages for AI, subscription, and account limits.
  • Dev dependency overrides were refreshed so the public repository audit is clean.

For AI agents

Typical AI flow:

lucas ai usage
lucas ai parse-expenses "coffee 4.50 today"
lucas ai parse-expenses-image ./receipt.jpg
lucas ai insights "summarize my spending this month" --period month
lucas ai chat-message "what changed in my finances this week?"

This release expects the LucasApp backend deployed with the FREE/PREMIUM AI contract.

v0.5.0

20 Apr 05:11
383dd13

Choose a tag to compare

Added

  • lucas accounts debt-detail <id> — credit-card debt breakdown per billing cycle (pass-through over GET /api/accounts/:id/credit-debt-breakdown). Flags: --mode, --anchor-date, --start-date, --end-date, --search, --only-pending, --limit, --offset. Default --mode=current_cycle --limit=100 for AI-friendly single-page responses.
  • lucas accounts create --statement-closing-day <n> — parity with accounts update. Backend now returns creationWarning on the created account when CREDIT is created without this flag (requires backend on 2026-04-20+).
  • lucas accounts list now returns availableCredit (max(0, creditLimit - currentDebt)) for CREDIT accounts with a non-null creditLimit. Field is omitted for all other account types.

For AI agents

Typical flow:

lucas accounts list
# pick a CREDIT id, then:
lucas accounts debt-detail <id>
# -> {"ok":true,"data":{"summary":{"currentDebt":..., "charges":..., "payments":..., "outsideRangeDebt":...}, "items":[...]}}

summary.currentDebt == summary.composedDebt + summary.outsideRangeDebt (±0.01) is the invariant to trust. outsideRangeDebt > 0 indicates carry-over from prior cycles.

v0.4.0

03 Apr 22:05

Choose a tag to compare

What's New

loans unmark-paid command

  • Reverse loan payments that were incorrectly applied
  • lucas loans unmark-paid <loan-id> — reverses the most recent payment
  • lucas loans unmark-paid <loan-id> --payment-id <id> — reverses a specific payment
  • Restores installment status, account balance, and deletes linked transactions

v0.3.1

03 Apr 00:54
a7bed87

Choose a tag to compare

Highlights

  • notify interactive users when a newer lucas CLI version is available
  • fix transaction list date and pagination filters to use canonical API query names
  • add --year and --month to stats summary and stats by-category
  • keep compatibility with older installed CLIs via backend aliases for from/to/skip/take

v0.3.0

02 Apr 23:16
742f2cd

Choose a tag to compare

Highlights

  • fix loans pay to send canonical payAmount while keeping --amount UX
  • add loans mark-paid with optional post-write verification
  • add strict numeric validation to avoid silent NaN payloads
  • replace misleading --no-* string/number flags with real --clear-* flags
  • enrich subscriptions list with derived billing and charge context for AI agents

v0.2.0

22 Mar 17:39
f29e7d2

Choose a tag to compare

What's New

New Commands

  • lucas transfers update — update transfer amount, description, date, notes, exchange rate
  • lucas loans update — update loan name, account, schedule, interest, late fees

New Utility

  • Shared --no-<field> unset support across all update commands (e.g., --no-account-id to remove linked account)

Updated Commands

  • subscriptions create — add --currency, --billing-day, --billing-month, --icon, --color, --category-id, --type, --auto-record, --start-date; --account-id now optional; frequency fixed to MONTHLY|YEARLY
  • subscriptions update — add all missing fields plus --no-account-id, --no-category-id unset flags
  • transactions update — add --type (INCOME|EXPENSE), --date, plus --no-category-id/--no-merchant/--no-notes
  • transfers create — add --to-amount, --date, --notes
  • loans create — overhaul with --currency (required), --first-due-date, --interval-unit, --interval-count, interest config, late fee config
  • accounts update — add --balance, --credit-limit, --current-debt, --excluded, --is-archived, --statement-closing-day, --display-order
  • stats summary/monthly/by-category — add --currency filter

Unset Pattern

Use --no-<field> to clear optional fields:

lucas subscriptions update <id> --no-account-id    # Remove linked account
lucas transactions update <id> --no-category-id    # Clear category
lucas accounts update <id> --no-credit-limit       # Remove credit limit

v0.1.0 — Initial Release

21 Mar 22:50

Choose a tag to compare

💰 LucasApp CLI v0.1.0

First public release! Manage your LucasApp finances from the terminal, designed for AI agents.

Features

  • 🔐 Device authorization flow — authenticate via browser, like gh auth login
  • 📊 Full CRUD — accounts, transactions, transfers, subscriptions, loans
  • 📈 Statistics — summary, monthly, by-category
  • 🤖 JSON-only output — designed for Claude Code, Gemini CLI, and any AI with terminal access
  • 🔒 Secure — tokens hashed server-side, credentials stored with chmod 600

Install

npm install -g lucasapp-cli

Quick Start

lucas auth login
lucas accounts list
lucas transactions list --from 2026-03-01
lucas stats summary

Links