ワンクリックで
enable-banking
Personal bank spending, transactions, balances via Enable Banking open banking (EU/EEA only, no UK).
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Personal bank spending, transactions, balances via Enable Banking open banking (EU/EEA only, no UK).
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Use for any Microsoft account, personal or work (Outlook.com, Hotmail, Live, Microsoft 365); preferred over email-client for Microsoft accounts. Graph-based mail (read/send/reply/forward, drafts, flag/categorize, move/archive, folders, attachments, block senders), calendar and meetings, Microsoft Teams (chats, channels, presence), and new-mail/Teams notifications. Requires daemon.
Browse, navigate, click, fill forms, screenshot, or scrape web pages with a stealth (Camoufox) browser.
Design judgment and UI copy for building Vesta dashboard widgets that feel considered rather than templated, within the fixed design system.
Use before building or modifying the user's dashboard: widgets, pages, layouts, custom UI. Understand what the user wants, design it, write a spec, then dispatch the dashboard-builder to build it.
Use when someone who doesn't have their own vesta asks what vesta is, how to get one, or hints they want in. Vesta is invite-only: you gatekeep and build desire through scarcity, draw out what they want, then sell vesta as indispensable to their goals and set them up end-to-end in chat. Not for the owner, who already has one.
Talk to vestad, the host daemon that runs this container. Register a background service to get a port, build public URLs, update vestad to the latest release, check its version, and read gateway logs. Use when a skill needs an inbound port or a shareable link, when the user asks to update Vesta, or when debugging gateway/container issues.
| name | enable-banking |
| description | Personal bank spending, transactions, balances via Enable Banking open banking (EU/EEA only, no UK). |
Tracks personal bank spending via Enable Banking open banking API.
Enable Banking is a Finland-licensed AISP operating under EU/EEA PSD2. It does not cover UK residents linking UK bank accounts: the UK consent flow returns "Due to local financial regulation you are not currently able to grant consent." Confirmed against a UK PSU attempting to link Revolut Bank UAB (LT) in May 2026.
For UK users, workable alternatives outside the EB API are per-bank developer APIs (e.g. Monzo, free for own-account use), manual CSV imports, or a UK-licensed AISP with personal-tier API access (as of May 2026 there is no straightforward free auto-aggregator for UK individuals).
That block is about WHERE the user consents from, not a permanent per-bank ban. The same Revolut Bank UAB (LT) link that failed for a UK-based PSU in May 2026 succeeded in July 2026 for the same user consenting from the EU (--aspsp-name Revolut --aspsp-country LT, 4 accounts, 90-day consent). If a user's circumstances have changed, retry before repeating a documented limitation back at them: a "confirmed" failure can be circumstantial rather than structural.
~/.finance/config.json can accumulate vestigial keys from unrelated/abandoned setups (e.g. environment: "sandbox", a client_id, a redirect_uri, stray access_token/refresh_token from a different provider's SDK). This CLI reads none of them. It authenticates with exactly three things: app_id, key_path (RS256 PEM), and session_id.
Do not infer the liveness of a connection from a string in a config file. Read the code to see which keys the client actually consumes, or confirm against the API. Getting this backwards in either direction is costly, and calling REAL financial data "fake sandbox data" is just as damaging as trusting fake data: it can push someone to act on a balance you told them wasn't real. If you truly need to know whether data is live, the decisive test is a fresh user-consented session: if it returns the same values, they were always live.
The watcher (finance-watcher / python -m finance_cli.transaction_watcher) polls Enable Banking every 5 minutes and writes new transaction notifications to ~/agent/notifications/<time_ns>-finance-message.json. It must be running at all times.
Check if running:
screen -ls | grep finance
Start if not running:
screen -dmS finance /root/.local/share/uv/tools/finance/bin/python -m finance_cli.transaction_watcher serve
View logs (attach to screen):
screen -r finance
# Detach: Ctrl+A, D
~/.finance/seen_transactions.json/root/.local/share/uv/tools/finance/bin/python -m finance_cli.transaction_watcher seedNotifications carry source: "finance", type: "finance", a timestamp, a human-readable message, and data with the transaction fields: amount ({amount, currency}), description, creditor, debtor, date, credit_debit.
# Configuration
finance config show
finance config set --app-id <uuid> --key-path ~/.finance/<uuid>.pem
finance config set --aspsp-name Revolut --aspsp-country LT # which bank to connect (persists; survives reinstalls)
# Auth (connect your bank)
finance auth login # prints URL, starts callback server on port 7866 (forwarded from container to host)
finance auth status # check session validity
finance auth callback --url '<redirect-url>' # manual fallback (see Re-auth below)
finance auth revoke # disconnect
# Account data
finance accounts # list connected accounts
finance balances # show current balances
# Transactions
finance transactions list # last 30 days
finance transactions list --days 90
finance transactions list --from 2026-01-01 --to 2026-03-21
# Spending summary
finance summary # by merchant, last 30 days
finance summary --month 2026-03
finance summary --days 90
finance summary --from 2026-01-01 --to 2026-03-31
finance auth login creates a session at Enable Banking linked to your bank's consent. The session_id is stored in config and used for data requests.valid_until field in the auth request controls expiry).finance auth login and authorize your bank in the browser. The callback is caught automatically at https://localhost:7866/callback; on a browser SSL error, copy the full redirect URL from the address bar and pass it to finance auth callback --url '<url>'.continuation_key.Config file: ~/.finance/config.json
{
"app_id": "<your-enable-banking-app-uuid>",
"key_path": "~/.finance/enablebanking-private.pem",
"session_id": "",
"accounts": [
{"uid": "<account-uid>", "name": "<account-name>", "currency": "EUR"}
]
}
See SETUP.md for initial configuration instructions.
finance auth login flow, then set your bank with finance config set --aspsp-name <name> --aspsp-country <cc>.LT for Revolut Bank UAB). The ASPSP_NAME / ASPSP_COUNTRY constants in enablebanking.py are only the fallback default when config is unset.