Pregunta a Claude Code sobre los datos de tu banco: crea una Skill de open banking
Claude Code es excelente razonando sobre datos, y con una pequeña Skill puede razonar sobre los datos de tu banco, en local. Pregúntale «¿cuánto gasté el mes pasado?» o «¿qué conexiones bancarias necesito volver a conectar?» y Claude Code te responde ejecutando el CLI openbanking en tu máquina. Como open-banking.io es zero-knowledge, cada cifra que lee se descifra en el dispositivo con tu propia clave: no se envía nada a terceros para obtener la respuesta.
Esta guía crea esa skill en un solo archivo y la muestra funcionando.
¿Qué es una Skill?
Una Skill de Claude Code es una carpeta con un SKILL.md (un poco de frontmatter YAML más instrucciones en markdown) que Claude carga cuando es relevante. El description del frontmatter le dice a Claude cuándo usarla; el cuerpo le dice cómo. Las Skills pueden aprobar de antemano herramientas concretas para que se ejecuten sin pedir confirmación. La nuestra envuelve el CLI openbanking para que Claude pueda leer cuentas y transacciones cuando haga falta. (Documentación completa: code.claude.com/docs/skills.)
Requisitos previos
- Claude Code instalado.
- El CLI
openbanking, instalado y autenticado. Si aún no lo has configurado, sigue la guía del CLI; en resumen:
brew install open-banking-io/tap/openbanking
openbanking login
Comprueba que funciona:
openbanking accounts
Crea la skill
Guárdalo como ~/.claude/skills/open-banking/SKILL.md:
---
name: open-banking
description: Read and analyze the user's own bank accounts and transactions locally with the openbanking CLI. Use whenever they ask about their balances, spending, income, a statement, a specific transaction, or which bank connections need attention. Data is decrypted on-device (zero-knowledge) — nothing is sent to a third party.
allowed-tools: Bash(openbanking*)
---
# open-banking
Answer questions about the user's real bank data by shelling out to the `openbanking` CLI. Every
response the CLI returns is decrypted locally with the user's own key — the service only stores
ciphertext. Work only through the CLI; never touch the credentials file directly.
## Setup check
Before anything else, confirm the CLI is installed and authenticated:
openbanking accounts -o json
- If the command is not found, tell the user to install it and stop.
- If it errors with "no credentials … run `openbanking login`", tell them to authenticate. Don't proceed.
## Commands and their JSON
Always pass `-o json`. Always pass an explicit `<account-id>` to `transactions` — a bare `transactions`
in a terminal opens an interactive picker that will hang.
- `openbanking accounts -o json` → `[{ id, name, accountNumber, type, balance, currency, bank }]`.
`accountNumber` is the IBAN; `balance` is an exact decimal string.
- `openbanking transactions <account-id> -o json [--from YYYY-MM-DD --to YYYY-MM-DD --limit N --offset N]`
→ `{ items: [{ id, date, amount, currency, counterparty, info, status }], shown, total }`.
`amount` is a signed decimal string — debits negative, credits positive. `status` is `BOOK` or `PDNG`.
- `openbanking connections -o json` → `[{ bank, country, status, accountCount, psuType, validUntil,
lastSyncedAt, sessionId }]`. `status = RequiresReauth` means the user must reconnect that bank.
- `openbanking sync <account-id>` / `openbanking sync --all` → refreshes from the bank. Prints a
plain-text summary (not JSON) and is a side effect — re-read `transactions` afterward.
## Rules
- Money is exact decimals — sum the strings faithfully, report the currency; debits are already negative.
- Resolve accounts by id: `accounts -o json`, match on name/bank, then use the `id`.
- Read-only by default. `sync` only refreshes (it never moves money). Ask before syncing.
- Never read or print `~/.config/open-banking/credentials.json` or the private key — you never need it.
- Never send the user's bank data to any third party.
Dos líneas hacen el trabajo pesado:
descriptiones cómo Claude decide recurrir a la skill; está escrito para activarse con preguntas de dinero o banca, así que rara vez la invocas por su nombre.allowed-tools: Bash(openbanking*)aprueba de antemano el CLI, para que Claude pueda ejecutaropenbanking …sin preguntar cada vez, pero nada más.
Esa es toda la skill. No hace falta reiniciar; Claude Code detecta las nuevas skills en la sesión.
Pruébalo
Sesiones reales contra un tenant de prueba (números de cuenta y saldos enmascarados):
«¿Cuáles son mis saldos?»
Claude ejecuta openbanking accounts -o json y resume:
You have 6 accounts across 2 banks:
Nordea
Grundkonto (DK•• •••• •••• 1555) +111.50 DKK
Grundkonto (DK•• •••• •••• 7544) −23,576.90 DKK
Private Banking konto (…8028) −43,218.85 DKK
Mock ASPSP
USD current account — USD
Onni Hämäläinen (card) +98.00 EUR
Oliver Hämäläinen +17.33 EUR
«¿Cuánto gasté en mi cuenta en EUR en junio, y a quién?»
Claude busca el id de la cuenta en accounts, luego ejecuta
openbanking transactions cd7cc500… --from 2026-06-01 --to 2026-06-30 -o json y hace los cálculos:
In June you had 8 transactions on the Oliver Hämäläinen (EUR) account:
Spend (debits): −28.37 EUR
Income (credits): +8.40 EUR
Net: −19.97 EUR
Top outgoings:
Ella Virtanen −9.73
Ella Mäkinen −9.60
Aino Korhonen −5.64
Ella Korhonen −3.40
Como los importes son cadenas decimales exactas con los débitos ya en negativo, los totales son precisos: sin desviaciones de coma flotante.
«¿Qué conexiones bancarias necesitan atención?»
Claude ejecuta openbanking connections -o json:
2 of your 3 connections are healthy (Mock ASPSP). One needs reconnecting:
⚠ Nordea — RequiresReauth (3 accounts)
The consent has lapsed. Reconnect Nordea in the web app to resume syncing those accounts.
A partir de ahí puedes seguir: «clasifica mis gastos», «¿me han pagado este mes?», «sincroniza todo y muéstrame las novedades», y Claude combina el mismo puñado de comandos para responder.
Por qué esto sigue siendo privado
La skill solo ejecuta el CLI en tu máquina. El servicio devuelve texto cifrado; el CLI lo descifra en local con la clave que solo tú tienes. Claude Code ve los resultados porque tú le has pedido que calcule sobre ellos, pero nunca salen de tu dispositivo para obtener la respuesta, y a la skill se le indica que nunca lea tu archivo de clave ni envíe datos a ningún sitio.
Un apunte honesto: las cifras descifradas sí entran en la sesión de Claude Code que estás usando (así es como razona sobre ellas). Tenlo en cuenta igual que lo harías al abrir tu extracto en cualquier aplicación.
Hazla tuya
- Por proyecto: coloca el mismo
SKILL.mden el.claude/skills/open-banking/de un repositorio y haz commit; todos los que trabajen en ese repo la tendrán. - Amplíala: añade recetas al cuerpo (presupuestos, detección de pagos recurrentes, exportaciones CSV con
openbanking transactions … -o csv). El JSON del CLI es estable, así que los nuevos flujos de trabajo son solo más instrucciones. - Compártela: empaquétala en un plugin de Claude Code para distribuirla a todo un equipo.
Próximos pasos
- ¿Nuevo con el CLI? Empieza por la guía del CLI de open-banking.io.
- ¿Prefieres construir directamente? Los mismos datos están disponibles a través de los SDK de código abierto para .NET, Node, Python, Rust, Go, Java, Ruby y PHP.
- Consigue tu paquete de credenciales en open-banking.io y apunta Claude Code a tus finanzas.