Skip to main content

Logo

WhatsMyNote

An intelligent, fully conversational financial memory system.
Control your lending, borrowing, expenses, income, and transfers through pure natural language right from your terminal.

View on PyPI · Report Bug · Request Feature

PyPI Version License: MIT Python Versions Forks Stars


📑 Table of Contents


🌟 About The Project

Tracking finances shouldn't require complex spreadsheets, clunky UIs, or manual data entry. WhatsMyNote brings the power of state-of-the-art Large Language Models (LLMs) directly to your terminal.

Just type what happened naturally. The AI will instantly parse your intent, validate the transaction using a Human-in-the-Loop mechanism (if it's complex), and persist it securely to your database.

Say goodbye to manual tracking:

"I spent $15 on coffee today using my HDFC account."
"My friend John borrowed $50 from me for lunch."
"Show me my expenses for this month as a chart."

🏗 Architecture & Tech Stack

WhatsMyNote uses a powerful Multi-Agent Architecture powered by LangGraph. A Supervisor agent routes your query to the exact specialist agent needed to handle your request.

graph TD
    User([User CLI Input]) --> Supervisor[Supervisor Agent]
    
    Supervisor -->|Routing| Classifier[Classifier Agent]
    Classifier -->|Classified Intent| SpecialistAgents
    
    subgraph SpecialistAgents[Specialist Agents]
        AccountAgent[Account Agent]
        BudgetAgent[Budget Agent]
        ExpenseAgent[Expense Agent]
        IncomeAgent[Income Agent]
        LendingAgent[Lending Agent]
        TransferAgent[Transfer Agent]
    end
    
    SpecialistAgents --> Validate{Human-in-the-Loop Validation}
    
    Validate -->|Requires Details| Clarify[Ask User for Details]
    Clarify --> User
    
    Validate -->|Confirmed| DB[(PostgreSQL Database)]
    
    Supervisor -->|Analytics Query| SQLAgent[Text-to-SQL Agent]
    SQLAgent --> DB
    DB --> SQLAgent
    SQLAgent --> Output([CLI Rich Chart / Table])
    
    DB --> Output([Success Message])
  • Language: Python
  • AI/LLM Framework: LangGraph, LangChain, Groq (Llama-3)
  • Data Validation: Pydantic
  • Database & Persistence: SQLAlchemy & PostgreSQL (hosted on Render/Supabase)
  • Authentication: Supabase OAuth (Google/GitHub)
  • CLI UI: Rich

Deep Dive: Check out the Core Concepts & Architecture page for a full breakdown of the multi-agent system.


🚀 Getting Started (For Users)

Installation

The recommended way to install WhatsMyNote is directly from PyPI. Ensure you have Python 3.11+ installed.

# We highly recommend using uv for lightning-fast installation!
uv tool install whatsmynote

# Or standard pip:
pip install whatsmynote

First Run & Authentication

After installing, simply type the command below in your terminal:

whatsmynote
  1. You will be prompted to log in via your browser using Supabase (Google/GitHub).
  2. The CLI will securely store your token locally.
  3. The AI will guide you through setting up your first Default Account and your monthly Budgets.
  4. You are ready to chat!

Full Guide: Read the Getting Started Guide for detailed CLI examples and screenshots.


📚 Documentation & Features

WhatsMyNote supports an extensive array of financial primitives. Dive into the detailed documentation for each capability below:

Feature Description
Accounts Manage multiple bank accounts, cash wallets, and set defaults.
Budgets Track your spending limits across categories (e.g., Food, Rent).
Expenses Log spending, automatically categorized against your budgets.
Income Track your salary, freelance gigs, and incoming funds.
Lending & Borrowing Never forget who owes you money, and who you owe.
Transfers Move money seamlessly between your own accounts.
Analytics (Text-to-SQL) Ask the AI complex questions ("What did I spend on Food last week?") and it will instantly write and execute secure SQL to show you beautiful charts.

🛠 Local Development (For Contributors)

If you'd like to contribute to the codebase or run the backend completely locally, you'll need uv installed.

  1. Clone the repo:

    git clone https://github.com/SarJ2004/WhatsMyNote.git
    cd WhatsMyNote
    
  2. Environment Setup:

    cp .env.sample .env
    

    You will need to provide your own GROQ_API_KEY and Supabase keys in the .env file.

    Important: For DATABASE_URL, use the Supabase Direct connection (Port 5432 or Session mode). Do NOT use the Transaction Pooler (Port 6543), as it breaks SQLAlchemy schema migrations during initial setup.

  3. Install Dependencies:

    uv pip install -e .
    
  4. Run the Backend locally:

    uv run uvicorn backend.main:app --reload
    
  5. Test the CLI: Open a new terminal window, ensure ENV="dev" is in your .env, and run:

    uv run whatsmynote
    

📄 License

Distributed under the MIT License. See LICENSE for more information.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

whatsmynote-0.1.3.tar.gz (18.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

whatsmynote-0.1.3-py3-none-any.whl (17.5 kB view details)

Uploaded Python 3

File details

Details for the file whatsmynote-0.1.3.tar.gz.

File metadata

  • Download URL: whatsmynote-0.1.3.tar.gz
  • Upload date:
  • Size: 18.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for whatsmynote-0.1.3.tar.gz
Algorithm Hash digest
SHA256 3975d3759ff58d5f59a8b6cb71818d28a1b13902d413ab6b7b77c5aab823f920
MD5 05c2fbf926c20f0c6511d8c389c08a4e
BLAKE2b-256 7dc4ab185c01a3f068e6f3f67bac2c419afe27165c975b5f0d9a82fcacd59653

See more details on using hashes here.

Provenance

The following attestation bundles were made for whatsmynote-0.1.3.tar.gz:

Publisher: release.yml on SarJ2004/WhatsMyNote

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file whatsmynote-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: whatsmynote-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 17.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for whatsmynote-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a9000d1f033d42a4ba4c84cb996a252875880ebffdd94b1b12e4907479ca4483
MD5 f1aa1639ad4bd5dafbf2c0ec97d4d53f
BLAKE2b-256 8e62f27d05774c83cf9bf3486efe62fbb964b17e7bcdafdc31eb5da9823e14f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for whatsmynote-0.1.3-py3-none-any.whl:

Publisher: release.yml on SarJ2004/WhatsMyNote

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.2.7

2 files

0.2.6

2 files

0.2.5

2 files

0.2.4

2 files

0.2.3

2 files

0.2.1

2 files

0.2.0

2 files

This release

0.1.3 This release

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page