A CLI app for managing notes and finances using LLMs.
Project description
WhatsMyNote
WhatsMyNote is a natural-language personal finance assistant for logging and querying lending, expenses, income, and transfers. It uses advanced Llama 3 LLMs to extract structured data, store it in PostgreSQL (Supabase), and answer your complex queries accurately.
🚀 Bring Your Own Key (BYOK) Architecture
WhatsMyNote now supports a secure BYOK architecture. You bring your own Groq API key to power the inference engine locally and securely.
On your first run, the app will prompt you for your GROQ_API_KEY. It is stored securely in a local .env file and is never exposed. The application uses state-of-the-art Groq models:
llama-3.3-70b-versatilefor reasoning, intent classification, and SQL generation.llama-3.1-8b-instantfor fast and efficient data extraction.
🛠 What It Supports & Examples
📉 Expenses
Track where your money is going.
- Create expense records with amount, category, merchant, payment source, item, and notes.
- Example:
I spent 320 on groceries at Walmart using HDFC - Example:
Update my last grocery expense amount to 400 - Example:
Delete the Walmart expense - Example:
Show my highest expenses this month
💰 Income
Record earnings, cashback, or refunds.
- Example:
I received 50000 as salary from Acme - Example:
Update my salary entry notes to include the July bonus - Example:
How much income did I receive from salary sources this year?
🤝 Lending & Borrowing
Keep track of who owes you, and who you owe.
- Example:
I lent Sumit 500 today - Example:
Update Sumit's loan amount to 700 - Example:
How much money have I lent to Sumit?
🔁 Transfers
Record money moving between your own accounts.
- Example:
I transferred 3000 from HDFC to SBI - Example:
Change the transfer destination to ICICI - Example:
Show all transfers from HDFC this month
📊 Budgets and Balances
Track your overall financial health.
- Set opening balances for your accounts (e.g., cash, wallet, SBI).
- Track category budgets (e.g., groceries, transport) or an
Overalllimit. - Example:
Set opening balance for SBI to 50000 - Example:
Set monthly budget for groceries to 10000 - Example:
What is my current balance in SBI? - Example:
How much budget do I have left for groceries this month?
📈 Analytics (Read-Only)
Run advanced queries without touching write access.
- Safe SQL generation with automated validation.
- Prefix queries with
sql:for advanced read-only raw queries. - Example:
What is my total spending this month? - Example:
Compare my income and expense totals for July - Example:
What is my net worth estimate?
⚙️ Environment Setup
Install dependencies and start your virtual environment:
uv venv
.venv\Scripts\activate
uv pip install -r requirements.txt
Set up your database connection string in your .env (we recommend a Supabase PostgreSQL instance):
DATABASE_URL=postgresql+psycopg2://postgres:YOUR_PASSWORD@db.YOUR_SUPABASE_REF.supabase.co:5432/postgres
Run the app. It will prompt you for your GROQ_API_KEY on the first launch!
python app/main.py
🏗 Tech Stack
- Python for core logic.
- LangGraph & LangChain for robust stateful intent routing and HITL (Human-in-the-Loop) flows.
- Pydantic for extraction validation.
- SQLAlchemy & PostgreSQL for data persistence.
- Groq LLMs (Llama 3) for lightning-fast, high-quality inference.
🚀 Vision
WhatsMyNote aims to become a fully conversational financial memory system, helping you control your lending, borrowing, expenses, income, and transfers through pure natural language.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file whatsmynote-0.1.0.tar.gz.
File metadata
- Download URL: whatsmynote-0.1.0.tar.gz
- Upload date:
- Size: 14.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2032c1ad252d2c686628ac824e635e011871f6b390b8730cbf301fdc21d30404
|
|
| MD5 |
084b5fc66c308440897503e7c535bea1
|
|
| BLAKE2b-256 |
b7e0a88fe9b88ebee277b3cbafa883cd8b0b321d71363c332000527b4f37b94d
|
Provenance
The following attestation bundles were made for whatsmynote-0.1.0.tar.gz:
Publisher:
release.yml on SarJ2004/WhatsMyNote
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
whatsmynote-0.1.0.tar.gz -
Subject digest:
2032c1ad252d2c686628ac824e635e011871f6b390b8730cbf301fdc21d30404 - Sigstore transparency entry: 2148315607
- Sigstore integration time:
-
Permalink:
SarJ2004/WhatsMyNote@9a44c18cbd484c3b95997c295ebb2da2ca34dd65 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/SarJ2004
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9a44c18cbd484c3b95997c295ebb2da2ca34dd65 -
Trigger Event:
push
-
Statement type:
File details
Details for the file whatsmynote-0.1.0-py3-none-any.whl.
File metadata
- Download URL: whatsmynote-0.1.0-py3-none-any.whl
- Upload date:
- Size: 14.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5fb08d97f0c17356df8b0377a7a8f22da00103e62bf7ca8c4ef1c5caed841b7a
|
|
| MD5 |
b6c9846afb26f907a78ad8664c77eac7
|
|
| BLAKE2b-256 |
f90dc24d31b540bf871e4e9fb5a76dc8c5b0b1a7c988116b21c7c5aba1e59ee2
|
Provenance
The following attestation bundles were made for whatsmynote-0.1.0-py3-none-any.whl:
Publisher:
release.yml on SarJ2004/WhatsMyNote
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
whatsmynote-0.1.0-py3-none-any.whl -
Subject digest:
5fb08d97f0c17356df8b0377a7a8f22da00103e62bf7ca8c4ef1c5caed841b7a - Sigstore transparency entry: 2148315611
- Sigstore integration time:
-
Permalink:
SarJ2004/WhatsMyNote@9a44c18cbd484c3b95997c295ebb2da2ca34dd65 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/SarJ2004
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9a44c18cbd484c3b95997c295ebb2da2ca34dd65 -
Trigger Event:
push
-
Statement type: