fetch-bank-data
Use when the user says "fetch bank data", "pull from bank", "fetch hapoalim", "fetch cal", "fetch credit card", "pull from cal", or any morning-equivalent.…
Use when the user says "set up findash", "onboard", "first-time setup", "get findash running", "configure findash", or is installing the plugin for the first time. Runs findash-doctor's safe auto-fixes, prepares the local React dashboard, then guides the human through only the
$ npx -y skills add ya5huk/findash --skill setup --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/setupContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when the user says "set up findash", "onboard", "first-time setup", "get findash running", "configure findash", or is installing the plugin for the first time. Runs findash-doctor's safe auto-fixes, prepares the local React dashboard, then guides the human through only the
name: setup description: Use when the user says "set up findash", "onboard", "first-time setup", "get findash running", "configure findash", or is installing the plugin for the first time. Runs findash-doctor's safe auto-fixes, prepares the local React dashboard, then guides the human through only the optional integrations they choose — local secrets, Drive OAuth, and bank-scraper browser seeding.
First-time onboarding for findash. You **automate everything safe and local**, then **guide the human** through everything that needs them. You never enter the user's secrets yourself and never run anything that captures their passwords through this session — you tell them exactly what to put where, and they do it. Local financial directories are mode 700 and their files mode 600; `findash-doctor` enforces this through `scripts/harden_permissions.py`.
Run the `findash-doctor` skill (diagnose → auto-fix → report). It creates `data/ inbox/ .secrets/`, fixes file modes, installs the React dashboard dependencies, and initializes the DB. It installs bank-scraper dependencies only after the user opts into a bank source. Read its report: the **🚫 Blockers** and **⚠️ Optional** lines are exactly the steps below that the human still has to do. See [`../findash-doctor/SKILL.md`](../findash-doctor/SKILL.md).
The examples below are deliberately unusable placeholders. Leaving a section unfinished is equivalent to omitting it: the doctor and runtime require all of that integration's values to be non-placeholder before enabling it.
Tell the user to create `.secrets/findash` and `chmod 600` it. Give them this single block to paste and edit — they keep only the sections they need:
# .secrets/findash — chmod 600. Omit any section you don't use. [drive] root_folder_id=<from your vault folder's Drive URL: drive.google.com/drive/folders/<ID>> [hapoalim] user_code=<your hapoalim user code> password=<your hapoalim password> [cal] username=<your cal username> password=<your cal password> [pdf-passwords] <payslip-filename-pattern>=<password> [ibkr] # IBKR auth is the official Interactive Brokers connector you add in Claude (no # password here). The account IBKR maps onto is resolved automatically by # /findash:fetch-investments and stored in the DB — nothing to set here. # account_name=<legacy override only — pre-existing installs> # account_ids=<comma-separated IBKR account ids> # base_currency=ILS
Then: `chmod 600 .secrets/findash`.
**Do not collect these values in the conversation or write the file yourself** — the user pastes their own secrets in. Drive authorization lives in the Google Drive connector the user adds in Claude (step 3), not here.
**Coming from the old per-file layout?** Legacy `.secrets/{drive,hapoalim,cal,pdf-passwords}` files are **no longer read**. Tell the user to copy each value into the matching `[section]` of `.secrets/findash` and delete the old files — until they do, that integration won't work. Don't move their secrets for them.
These need a browser or an interactive terminal — you cannot do them, so print the exact commands and let the user run them:
node scripts/fetch_bank.js --company=hapoalim --setup node scripts/fetch_bank.js --company=visaCal --setup
Log in, complete OTP / CAPTCHA, trust the device, then press Enter. The profile is saved under `~/.cache/findash/chromium-profile/<companyId>/` and reused silently afterward. Chromium's sandbox remains enabled. Only inside a trusted isolated container running as root, append `--disable-browser-sandbox` if Chromium cannot launch.
1. **Add the connector once:** in Claude, `+` → **Connectors** → **Add connector** → **Browse connectors**, search **"ibkr"**, pick **Interactive Brokers (IBKR)** (under *Anthropic & Partners*), and log in with your IBKR credentials. Confirm with `/mcp` (`Interactive Brokers (IBKR) · connected`), and restart Claude Code so the session picks it up. 2. **Account mapping is automatic.** `fetch-investments` resolves which findash account IBKR feeds (attaching to an existing broker when the ledgers clearly match — some brokers are IBKR wrappers underneath — creating one for IBKR-only users, asking only when genuinely ambiguous) and persists the choice in the DB. There is nothing to configure by hand. 3. **Pull your trades:** run `/findash:fetch-investments` in an interactive session. It ingests your IBKR trade history onto the mapped account (so you stop screenshotting trades) plus a reconciliation snapshot. It's read-only — deny any tool that would place an order or move funds. The account it maps
A private, live dashboard that turns personal-finance evidence into a reconciled SQLite ledger. FinDash is a Claude Code plugin (findash) with one primary product surface: a private React dashboard running on localhost.
Repo: ya5huk/findash
Use when the user says "fetch bank data", "pull from bank", "fetch hapoalim", "fetch cal", "fetch credit card", "pull from cal", or any morning-equivalent.…
Use when the user says "fetch investments", "fetch ibkr", "fetch interactive brokers", "pull portfolio", "fetch brokerage", "snapshot ibkr", or any…
Use when the user says "doctor", "finance doctor", "check finance setup", "what's missing", or any "is everything set up?" equivalent. Audits binaries,…
Use when the user says "sync finance", "daily sync", "run the morning sync", "fetch my finances", "ingest new docs", "run everything", or any full…