Skip to content

feat(cli): full AI agent support β€” new commands, options, and unset flags#1

Merged
StevenACZ merged 1 commit intomainfrom
feat/full-ai-agent-support
Mar 22, 2026
Merged

feat(cli): full AI agent support β€” new commands, options, and unset flags#1
StevenACZ merged 1 commit intomainfrom
feat/full-ai-agent-support

Conversation

@StevenACZ
Copy link
Copy Markdown
Owner

Summary

  • Add transfers update and loans update commands (backend already supports PUT endpoints)
  • Add shared body-builder.ts utility with --no-<field> β†’ null unset support
  • Expand all create/update commands to expose every backend-supported field
  • Add --currency filter to stats commands
  • Fix frequency choices: MONTHLY|YEARLY (remove undocumented WEEKLY)
  • Bump version to 0.2.0

Motivation

AI agents managing finances via CLI were blocked by:

  1. Cannot unset optional fields (e.g., accountId on subscriptions)
  2. Missing fields (billingDay, currency, icon, etc.) β€” AI had to bypass CLI and call API directly
  3. No transfers update or loans update commands
  4. No stats currency filtering

New capabilities

# Unset optional fields
lucas subscriptions update <id> --no-account-id
lucas transactions update <id> --no-category-id

# New commands
lucas transfers update <id> --amount 1500 --exchange-rate 3.75
lucas loans update <id> --name "Auto Loan" --interest-rate 5.5

# Full subscription creation (was missing billing-day, currency)
lucas subscriptions create --name "Claude Max" --amount 100 --currency USD --billing-day 4 --frequency MONTHLY

# Stats with currency filter
lucas stats summary --currency USD

Test plan

  • bun run typecheck β€” PASS
  • bun run lint β€” PASS (0 errors)
  • bun run build β€” PASS (107KB bundle)
  • All 8 updated commands verified via --help
  • Smoke test: lucas auth status and lucas stats summary --currency USD against production

πŸ€– Generated with Claude Code

New commands:
- `transfers update` β€” update transfer amount, description, date, notes, exchange rate
- `loans update` β€” update loan name, account, schedule, interest, late fees with full nullable support

New utility:
- `src/lib/body-builder.ts` β€” shared request body builder with --no-<field> β†’ null unset support

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

Docs:
- Update CLAUDE.md with new commands and endpoint table
- Update README.md with examples and --no-<field> documentation
- Bump version to 0.2.0

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@StevenACZ StevenACZ merged commit f29e7d2 into main Mar 22, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant