SuperAPI AI Directory

my-cash-position

Office & productivity

View repository

Updated 10-15 21:38

About this skill

Cash Position auto-update

A skill that queries the bank balances and deposits/withdrawals of 3 entities (Korea/US/Vietnam) and updates the Google Sheets Cash Position Summary.

Automation status by data source

Entity Bank Source Automation Option
US Chase (checking ...6797) Plaid API Automatic (no CSV needed) (no CSV needed) --plaid
US Hanmi (checking ...3389) Plaid API Automatic (no CSV needed) --plaid
KR NongHyup/Woori/Shinhan, etc. Clobe.ai Excel Manual download required --clobe
VN Woori Bank Vietnam Woori Bank xls Manual download required --vietnam
VN Techcombank CSV Manual download required --techcombank

Core scripts

scripts/parse_cash_position.py

Runtime environment: /Users/ash/Documents/eoash/.venv/bin/python (plaid, pandas, dotenv installed)

Usage

1. US only (Plaid API — no file download needed)

/Users/ash/Documents/eoash/.venv/bin/python scripts/parse_cash_position.py \
  --plaid --month {YYYY.MM} [--dry-run] [--skip-revenue]

If the user mentions only the US, such as "US balance" or "US cash", use this mode.

2. All 3 entities (US automatic + Korea/Vietnam files)

/Users/ash/Documents/eoash/.venv/bin/python scripts/parse_cash_position.py \
  --plaid \
  --clobe ~/Downloads/주식회사*.xlsx \
  --vietnam ~/Downloads/ExcelSheet*.xls \
  --month {YYYY.MM}

If the user requests the full set, such as "update cash position" or "all balances":

  • US: --plaidto query automatically
  • Korea: Check whether the Excel was downloaded from Clobe.ai → request the file path
  • Vietnam: Check whether the xls was downloaded from Woori Bank → request the file path

3. CSV method (legacy — fallback in case of Plaid failure)

/Users/ash/Documents/eoash/.venv/bin/python scripts/parse_cash_position.py \
  --chase ~/Downloads/Chase*.CSV \
  --hanmi ~/Downloads/AccountHistory.csv \
  --clobe ~/Downloads/주식회사*.xlsx \
  --month {YYYY.MM}

Use only in case of Plaid API failure. Requires downloading CSV directly from Chase/Hanmi web banking.

Execution flow

  1. If the user does not specify a month, the current month (YYYY.MM) is used automatically
  2. First run with --dry-runrun withto check the results (show them to the user)
  3. Once the user confirms, rerun --dry-run withoutto actually update Google Sheets
  4. Result summary: each entity's balance, deposits/withdrawals, US total, exchange rate

Main options

Option Description
--plaid Query Chase/Hanmi via Plaid API (no CSV needed)
--clobe Korea Clobe.ai Excel file path (manual download)
--vietnam Woori Bank Vietnam xls path (manual download)
--techcombank Techcombank Vietnam CSV path (manual download)
--month Target month (e.g., 2026.03) — Required
--skip-revenue Skip US revenue/Korea accounts receivable update
--dry-run Output results only without updating the sheet
--extra-kr-balance Manually add balances of Korean accounts not in Clobe

Environment variables (.env)

The script automatically loads the project root .envloads:

  • PLAID_CLIENT_ID / PLAID_SECRET / PLAID_ENV=production
  • PLAID_ACCESS_TOKEN_CHASE — Chase PLAT BUS CHECKING ...6797
  • PLAID_ACCESS_TOKEN_HANMI — Hanmi Business Regular Checking ...3389
  • Google Sheets SA: finance-dashboard/.env.local

Notes

  • --dry-run If run without it, Google Sheets will be modified directly — always dry-run first
  • The Plaid access_token is a permanent token, but reconnection is required if the bank password is changed
  • Korea/Vietnam are not supported by Plaid → file download is required (automation not possible)
  • When bank reconnection is required: python scripts/plaid_link_connect.py → localhost:8484