Metadata-Version: 2.4
Name: finance-cli
Version: 1.3.0
Summary: Personal finance CLI: bank statement import, transaction categorization, budgets, and net worth tracking
License-Expression: LicenseRef-PolyForm-Noncommercial-1.0.0
License-File: LICENSE
Requires-Python: >=3.11
Requires-Dist: agent-alerts>=0.1.0
Requires-Dist: ai-agent-gateway-cli<0.2.0,>=0.1.0
Requires-Dist: ai-agent-gateway<0.16.0,>=0.15.0
Requires-Dist: aiohttp>=3.14.1
Requires-Dist: anthropic>=0.87.0
Requires-Dist: authlib>=1.6.11
Requires-Dist: boto3>=1.35
Requires-Dist: cryptography>=48.0.1
Requires-Dist: fastapi!=0.136.3,>=0.115.0
Requires-Dist: fastmcp<3.5.0,>=3.4.2
Requires-Dist: google-auth-oauthlib>=1.0
Requires-Dist: grpcio-health-checking>=1.62
Requires-Dist: grpcio>=1.62
Requires-Dist: gspread>=6.0
Requires-Dist: h11>=0.16.0
Requires-Dist: httpx>=0.27.0
Requires-Dist: idna>=3.15
Requires-Dist: jeepney>=0.4.2
Requires-Dist: jinja2>=3.1.6
Requires-Dist: joserfc>=1.6.0
Requires-Dist: pdfminer-six>=20251230
Requires-Dist: pdfplumber>=0.11.9
Requires-Dist: pillow>=12.2.0
Requires-Dist: plaid-python>=20.0
Requires-Dist: psycopg2-binary>=2.9
Requires-Dist: pydantic-settings>=2.14.2
Requires-Dist: pydantic>=2.0
Requires-Dist: pygments>=2.20.0
Requires-Dist: pyjwt>=2.8
Requires-Dist: python-multipart>=0.0.31
Requires-Dist: pyyaml>=6.0
Requires-Dist: requests>=2.33.0
Requires-Dist: schwab-py>=1.0
Requires-Dist: secretstorage>=3.2
Requires-Dist: sqlcipher3>=0.5
Requires-Dist: sqlglot==27.27.0
Requires-Dist: starlette>=1.3.1
Requires-Dist: stripe>=7.0
Requires-Dist: urllib3>=2.7.0
Requires-Dist: uvicorn>=0.30.0
Requires-Dist: werkzeug>=3.1.6
Provides-Extra: dev
Requires-Dist: boto3>=1.35; extra == 'dev'
Requires-Dist: botocore>=1.35; extra == 'dev'
Requires-Dist: httpx2<3,>=2.5; extra == 'dev'
Requires-Dist: moto>=5.0; extra == 'dev'
Requires-Dist: psycopg[binary]>=3.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest-postgresql>=8.1; extra == 'dev'
Requires-Dist: pytest>=7.0; extra == 'dev'
Requires-Dist: ruff>=0.5; extra == 'dev'
Description-Content-Type: text/markdown

# 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

```bash
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

```bash
# 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):

```bash
# 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)

```bash
claude mcp add finance-cli -- python3 -m finance_cli.mcp_local
```

## Documentation

- [How It Works](docs/overview/HOW_IT_WORKS.md) — Architecture overview
- [Project Guide](docs/overview/PROJECT_GUIDE.md) — Detailed project guide
- [Agent Workflows](docs/AGENT_WORKFLOWS.md) — AI agent operational playbooks
- [Import Workflow](docs/ingest/INGEST_WORKFLOW.md) — Bank statement import guide
- [Adding Institutions](docs/developer/ADD_INSTITUTION_RUNBOOK.md) — CSV normalizer guide

## Requirements

- Python 3.11+
- SQLite (included with Python)

## License

PolyForm Noncommercial 1.0.0
