finance-cli
Personal finance CLI and MCP server for AI-assisted financial management.
Import bank statements (Plaid, CSV, PDF), categorize transactions via rules + AI, track budgets, subscriptions, debt, and net worth. SQLite backend, 151 MCP tools for Claude Code integration.
Features
- Multi-source import: Plaid API, CSV statements, PDF statements (AI-parsed)
- Smart categorization: Keyword rules → vendor memory → Plaid PFC → AI fallback
- Budget tracking: Per-category budgets with alerts and forecasting
- Debt management: Dashboard, paydown simulator, spending impact analysis
- Subscription detection: Fixed + metered recurring charge detection
- Business accounting: P&L, Schedule C, estimated tax, 1099 tracking
- Net worth tracking: Balance snapshots, investment accounts, projections
- 151 MCP tools: Full Claude Code integration for AI-assisted workflows
Quick Start
pip install -e ".[all]" # Install with all provider extras
finance-cli setup init # Initialize database and seed categories
finance-cli setup connect # Link bank accounts via Plaid
finance-cli plaid sync # Sync transactions
finance-cli daily # Today's spending summary
Installation
# Core only (categorization, budgets, reports)
pip install -e .
# With specific providers
pip install -e ".[plaid]" # Plaid bank sync
pip install -e ".[stripe]" # Stripe revenue tracking
pip install -e ".[mcp]" # Claude Code MCP server
pip install -e ".[all]" # Everything
Configuration
Set environment variables (or use a .env file):
# Plaid (optional)
PLAID_CLIENT_ID=...
PLAID_SECRET=...
PLAID_ENV=production
# Stripe (optional)
STRIPE_API_KEY=...
# AI categorization (optional)
OPENAI_API_KEY=...
ANTHROPIC_API_KEY=...
Local MCP (Claude Code)
claude mcp add finance-cli -- python3 -m finance_cli.mcp_local
Documentation
- How It Works — Architecture overview
- Project Guide — Detailed project guide
- Agent Workflows — AI agent operational playbooks
- Import Workflow — Bank statement import guide
- Adding Institutions — CSV normalizer guide
Requirements
- Python 3.11+
- SQLite (included with Python)
License
PolyForm Noncommercial 1.0.0
Metadata
Release files for finance-cli 1.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| finance_cli-1.3.0.tar.gz | 1.7 MB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| finance_cli-1.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 3.9 MB
Release files / finance_cli-1.3.0.tar.gz
| Download URL | finance_cli-1.3.0.tar.gz |
|---|---|
| Size | 1.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2bf6578258acdf1ace9fd783802d9c780dd20a15898c1863208aabe7405ece63
|
|
BLAKE2b-256 checksum How to use checksums |
bfa30bbf229c283b843d0049edf9092cbeb50ea0005651edbe5b50f757bf3c5c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.2
|
Release files / finance_cli-1.3.0-py3-none-any.whl
| Download URL | finance_cli-1.3.0-py3-none-any.whl |
|---|---|
| Size | 2.2 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b8ef3b7a1f98544f524e6e0a38772c0cfd14a55f00dee0b7183e4fd057ba8c33
|
|
BLAKE2b-256 checksum How to use checksums |
e9c7e2a3cf72d443fbd69d434152a6676c9c41475d0c71708016d0ae6109a74c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.2
|
Security for finance-cli 1.3.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.