findash
Health Uyari
- License — License: NOASSERTION
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Basarisiz
- network request — Outbound network request in scripts/bundle-assets.py
- process.env — Environment variable access in scripts/fetch_bank.js
- network request — Outbound network request in scripts/fetch_bank.js
- Hardcoded secret — Potential hardcoded credential in scripts/fetch_bank.js
- network request — Outbound network request in scripts/refresh_prices.py
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
Claude skills that deliver a daily finance status dashboard to your telegram.
FinDash
Claude skills for turning personal finance documents into an accurate SQLite-backed dashboard.
FinDash is a set of Claude Code project skills plus a small deterministic toolchain. The skills reason over messy real-world finance records like bank statements, payslips, brokerage screenshots, deposits, transfers, and card charges. The scripts do the mechanical work: parse files, update SQLite, fetch prices, render HTML, and optionally send the result as a Telegram dashboard.
Telegram delivery is useful but optional; the dashboard is always written locally as HTML. Automatic bank/card fetching is useful but optional. The core loop is: put source documents in a Google Drive vault, ask Claude to sync them into SQLite, then render a self-contained dashboard.
What It Does
|
|
| Net worth over time Cash, locked savings, pension, training fund, and brokerage value roll into one view. |
Investment benchmark Brokerage performance is compared with cumulative deposits and an S&P 500 what-if line. |
|
|
| Expense breakdown Merchant-level credit-card rows and bank transactions are grouped into real spending categories. |
Daily spend Recent spending is visible without opening a bank app or spreadsheet. |
|
|
| Monthly totals Long-running monthly expense history, including quiet months and spikes. |
Monthly cash flow Average spend, income, and net flow are summarized across short, yearly, and all-time windows. |
|
|
| Sectioned dashboard Overview, expenses, stocks, payslips, and SQLite data stay separated for quick scanning. |
Brokerage deposits Deposit timing is shown against USD/ILS and GBP/ILS movement. |
How It Works
+----------------------+
| Claude Code skills |
| .claude/skills/* |
+----------+-----------+
|
v
+----------------------+
| Google Drive vault |
| dump/ |
+----------+-----------+
^
manual upload | automatic fetch
statements / PDFs / XLSX ----+---- fresh Hapoalim + Cal data
fetch-bank-data
|
v
+----------------------+
| sync-finance-data |
| AI interpretation |
| audited inserts |
+----------+-----------+
|
v
+----------------------+
| SQLite |
| deterministic math |
+----------+-----------+
|
v
+----------------------+
| render dashboard |
| HTML + Telegram |
+----------------------+
sync-finance-data scans the Drive vault, reasons through each source document, inserts rows with source links into SQLite, and backs the database up to Drive. render-finance-dashboard reads SQLite, fetches live prices/FX, fills the template, and writes one portable HTML file.
The dashboard is self-contained: CSS, fonts, Chart.js, chart data, and markup are inlined into output/dashboard.html.
The Skills
FinDash is designed to be operated through Claude Code skills:
| Skill | Required? | What it does |
|---|---|---|
/sync-finance-data |
Yes | Reads the Drive vault, applies Claude's judgment to source documents, and writes audited rows into SQLite. |
/render-finance-dashboard |
Yes | Renders output/dashboard.html from SQLite and optionally sends it to Telegram. |
/fetch-bank-data |
Optional | Uses israeli-bank-scrapers to pull fresh Hapoalim and Cal data into Drive dump/. |
/findash-doctor |
Recommended | Audits local setup and auto-fixes safe missing pieces. |
Claude skills live in .claude/skills/. Claude Code discovers project skills from this directory when you run claude from the repo root.
Privacy Model
This repo is designed so the public code can be shared while private financial state stays local or in your Drive vault.
Secrets live in small local files:
.secrets/drive # root_folder_id=<Drive folder ID>
.secrets/telegram # bot_token=... / chat_id=...
.secrets/hapoalim # user_code=... / password=...
.secrets/cal # username=... / password=...
.secrets/pdf-passwords
The committed docs use placeholders for account suffixes, card suffixes, Drive IDs, balances, transaction IDs, and example amounts. Concrete mappings belong in the private SQLite DB or source documents, not in git.
When you run the Claude skills, Claude reads the documents needed for the task. That is the point of the system: Claude supplies the judgment layer, while SQLite and scripts provide the audit trail and repeatable math.
Repo Map
docs/ project docs: schema, Drive layout, source document types
scripts/ mechanical parsers, scrapers, renderers, daily runner
templates/ dashboard shell, CSS, and chart code
.claude/skills/ agent workflows for fetch, sync, render, and doctor
data/ local SQLite database, gitignored
inbox/ transient downloads, gitignored
output/ rendered dashboard, gitignored
Quickstart
For the full setup, read docs/setup.md. The short version:
- Install and authenticate Claude Code, then run
claudefrom this repo root. - Install required local tools:
python3 --version
rclone version
sqlite3 --version
- Create a Google Drive finance vault and configure
rcloneremotegdrive. See Drive + rclone setup and Drive layout. - Create local secrets:
.secrets/drive # required: root_folder_id=<Drive folder ID>
.secrets/telegram # optional: bot_token=... / chat_id=...
.secrets/hapoalim # optional: user_code=... / password=...
.secrets/cal # optional: username=... / password=...
.secrets/pdf-passwords
- Bundle dashboard assets once:
python3 scripts/bundle-assets.py
- Run the setup doctor:
/findash-doctor
- Run the core workflow:
/sync-finance-data
/render-finance-dashboard
Add /fetch-bank-data before sync only if you configured the optional bank fetch setup.
If you want unattended daily runs to fetch from Hapoalim or Cal, seed the
browser profiles once before scheduling cron:
node scripts/fetch_bank.js --company=hapoalim --setup
node scripts/fetch_bank.js --company=visaCal --setup
In each browser window, log in, complete OTP/CAPTCHA, trust the device if
offered, wait for the account page, then press Enter in the terminal. If a bank
sends an OTP during a later unattended run, rerun the matching --setup
command; the run will continue with stale fetched data until the profile is
refreshed.
For unattended daily runs, use:
CLAUDE_BIN="$(command -v claude)" scripts/run_daily.sh
Optional Integrations
- Telegram: sends
output/dashboard.htmlas a bot attachment. Without Telegram, rendering still writes the local dashboard. See Telegram setup. - Automatic bank/card fetch: pulls Hapoalim and Cal data through
israeli-bank-scrapers. Unattended fetch requires a one-time interactive--setupper source to seed trusted-device cookies. Without it, manually upload statements or exports into Drivedump/. See Bank fetch setup. - Password-protected payslips: requires
qpdfand.secrets/pdf-passwords. Without it, skip payslip PDFs or add the password file later.
Docs
- Setup — Claude, rclone, Drive vault, Telegram, bank fetch, daily runs.
- Drive layout — vault folders and filename conventions.
- Document types — what each source document contains and how Claude should interpret it.
- SQLite schema — tables, money conventions, and audit rules.
- Design system — dashboard visual rules.
License
No open-source license is currently granted. All rights are reserved by the repository owner.
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi