个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Control de gastos gratis y de código abierto: lee la cartola de cualquier banco, tu IA ordena y aconseja, tus datos en tu computador.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗| Cómo | Estado | |
|---|---|---|
| 🌐 Navegador | Vista previa con datos ficticios: nada que instalar. | Para mirar cómo funciona |
| 🍎 Mac | Descargar Alcancia-macOS.zip (macOS 15, chip Apple) o desde el código. | Versión 0.1.0; sin firma de Apple |
| 📱 iPhone y Android | Desde el código con Xcode o Android Studio. Lee la copia cifrada que deja el Mac. | Fase 1: para mirar |
| 🪟 🐧 Windows y Linux | La misma interfaz, en una app de escritorio. | En camino |
Para la IA necesitas una de estas, con tu propia cuenta: Claude Code, Codex (ChatGPT) o Gemini CLI. La guía de tu IA explica cómo instalarla paso a paso. Sin IA, Alcancía igual lee tus cartolas, reconoce tus pagos y te muestra tus cifras.
Necesitas macOS 15 en un Mac con chip Apple (M1 o más nuevo).
Alcancia-macOS.zip (todas las
versiones, con su huella .sha256, están en Releases).App sin firmar. Alcancía no paga el certificado de Apple, así que macOS puede avisar la primera vez. En macOS 15: intenta abrir Alcancía una vez, ve a Ajustes del Sistema → Privacidad y seguridad y, abajo, toca «Abrir igualmente». Solo pasa la primera vez. El código de cada versión está en este repo y cada descarga tiene su
.sha256en el Release.
Las versiones nuevas se avisan dentro de la app (Ajustes → Actualizaciones). También puedes instalarla desde el código.
| Para qué | |
|---|---|
| Llavero (Mac) | La llave de cada cuenta que conectas y la de la copia para el celular (nunca tu frase), solo en ese Mac. |
| Avisos | Recién cuando agregas tu primer pago o activas «Avisarme antes de que venza», nunca al abrir. Sin montos. |
| Descargas (Mac) | Solo si activas «Cartolas que descargues». Nunca borra ni mueve nada. |
| Tu nube | La carpeta que eliges: el Mac deja ahí la copia cifrada y el celular la lee. |
| Archivos de tus IA (opcional) | Si conectas tu IA al servidor MCP, Alcancía escribe en su configuración (con respaldo). |
A internet el Mac sale solo a GitHub (api.github.com, github.com y su almacenamiento) para ver si hay una versión nueva y
bajarla, sin datos tuyos, y a cada servicio que conectas, solo a sus dominios. Tu IA habla con su proveedor con tu cuenta. La app del
celular no usa internet.
Alcancía es gratis y abierta, y la hacemos entre todos. Casi nada exige programar:
probar.AGENTS.md es la guía para personas y para cualquier IA de programación. Empieza
por CONTRIBUTING.md y los issues good first issue.Al participar aceptas el código de conducta.
Versión 0.1, recién nacida. Ya funcionan el motor (leer cartolas, recetas, categorías, pagos, resumen y consejos), la interfaz, la conversación con Alcancía, la app de Mac (se descarga desde Releases) y la app del celular para iPhone y Android en su fase 1 (para mirar, con los datos que deja el Mac; se compila desde el código). Windows y Linux vienen en camino.
cartola.csv / .xlsx / .pdf ──► receta del banco ──► movimientos/AAAA-MM.csv ──► reglas + comercios + tu IA ──► resumen y consejos
(o tu IA crea una) (sin duplicar) (categorías)
Todo vive en ~/Alcancia/ (en Windows, C:\Users\<tú>\Alcancia). Es un formato abierto: puedes armar tus propios scripts encima
(ver ejemplos/). Si lo cambiamos, será de forma compatible y avisando.
| Archivo | Qué guarda |
|---|---|
movimientos/AAAA-MM.csv | Un archivo por mes. Columnas: id, fecha, descripcion, monto, moneda, categoria, cuenta, origen, nota. monto negativo = gasto, positivo = ingreso, con punto decimal. id identifica el movimiento para no duplicarlo. Opcionales, al final y solo si algún movimiento del mes las usa: medio (saldo, debito, credito u otro: cómo se pagó, lo dice el conector), cuotas (en cuántas cuotas, 2 o más) y cuota (cuánto es cada una, con intereses; vacío = monto / cuotas). Lee las columnas por nombre (como csv.DictReader) y tus scripts siguen funcionando. |
categorias.json | [{"id", "nombre", "emoji", "tipo": "gasto" | "ingreso" | "neutro", "fijo"}]. neutro = entre tus cuentas (no cuenta como gasto); fijo = se paga una vez al mes. |
presupuesto.json | {"moneda": "CLP", "mensual": {"<categoria>": tope}} |
reglas.json | [{"contiene": "TEXTO", "categoria": "<id>"}]: lo que Alcancía aprende cuando corriges una categoría. |
cuentas.json | [{"id", "nombre", "receta", "moneda", "saldo"}]. saldo es opcional: {"monto", "fecha", "origen"}, el último saldo que se conoce de la cuenta. origen = conector (lo informa el servicio, p. ej. el disponible de Mercado Pago), cartola (la columna de saldo de la última fila) o persona (lo anotaste tú). Ver Las tres cifras. |
consejos/AAAA-MM-DD.md | Los consejos de tu IA. |
compromisos.json | Lo que pagas o recibes seguido. Ver Compromisos. |
cuentas.json (cont.) | Las cuentas que vienen de una conexión llevan "conector" en vez de . |
cuentas.json,
campo saldo) más los movimientos de los días siguientes. Si un conector sabe pedir el saldo a su API oficial, se guarda en cada
sincronización (origen: "conector"): en Mercado Pago es el saldo disponible que muestra su app (available_balance de
/users/{id}/mercadopago_account/balance); también Up, Akahu y SimpleFIN. Si no, la persona lo anota una vez y Alcancía sigue con
los movimientos; cuando lo corrige, dice si había una diferencia con lo que calculaba y parte desde el saldo corregido. Las compras
con crédito no mueven el saldo (van a la tarjeta). Sin ningún saldo, la app invita a anotarlo: nunca muestra un cero inventado.Devoluciones de Mercado Pago: lo devuelto queda como un movimiento aparte, «Devolución: …», positivo, en la fecha de la devolución y con la categoría de la compra (si ya la tenía); su id sale de «|devolucion», así nunca se duplica.
compromisos.json = {"formato": 1, "compromisos": [...], "descartados": ["CLAVE", ...]}. Cada compromiso:
| Campo | Qué es |
|---|---|
id | c- + letras y números. |
nombre | Hasta 60 caracteres. Nunca un número de cuenta: las secuencias de 6 o más dígitos se quitan al guardar. |
tipo | deuda, cuenta, suscripcion, transferencia, prestamo, ingreso u otro. |
con, prestamo | Solo en prestamo: con quién (un nombre, sin números) y {"total", "interes", "cuota", "ultima"}: lo prestado, el interés simple en % sobre el total (0 si no hay), la cuota y la última cuota (ajusta el redondeo). monto = cuota; cuotas_total es obligatorio y fecha_fin se calcula. signo: "gasto" = te prestaron; "ingreso" = tú prestaste (te deben). |
signo | gasto o ingreso. |
monto, moneda | Monto positivo y código de 3 letras, o "UF" con el monto en UF (hasta 4 decimales, p. ej. 12.75). |
aproximado | Opcional, para montos que varían: {"variacion": 3} (± ese porcentaje) o {"min": 465000, "max": 495000} (en la moneda del compromiso; el monto va entre los dos). Se muestra «≈ $480.000 (entre $465.000 y $495.000)» y el pago se reconoce en todo el rango. |
frecuencia | mensual (con dia 1–31; si el mes es más corto, el último día), semanal (dia 1 = lunes … 7 = domingo), anual o una_vez (con fecha AAAA-MM-DD). |
categoria | Id de una categoría (o vacío). |
buscar | Palabras para reconocer el pago en la cartola (sin tildes ni mayúsculas). Sin palabras, se reconoce por el monto exacto. |
tolerancia | Cuánto puede variar el monto, en % (por defecto 5). |
cuotas_total, cuotas_pagadas |
Interés por mora. Un pago mensual o anual se reconoce hasta 20 días después del vencimiento; si llegó atrasado y más alto
que lo esperado (más allá de la tolerancia o del rango, hasta +30 % y con sus palabras), la diferencia es interés por mora. Si
además hay un cargo aparte hasta 7 días antes o después del pago (INTERES, MORA, RECARGO, COBRANZA, MULTA, LATE FEE…: la lista
está en compromisos_conocidos.json, mora), se suma y ese cargo queda en la categoría «Intereses y cargos» 🧾 (si no tenía
otra). Se muestra «Pagado el 18 con 8 días de atraso · $4.320 de interés por mora» y, en el Resumen, lo pagado este año.
descartados son las sugerencias que dijiste que no son compromisos. Cómo se reconoce un pago: el movimiento del signo
correcto, en la moneda del compromiso, con el monto dentro de la tolerancia y alguna palabra de buscar, entre 10 días antes y 7
después del vencimiento (hasta 20 días después si es mensual o anual: un pago atrasado). Un movimiento cuenta para un solo compromiso: primero lo marcado a mano y después las parejas que calzan
mejor (más cerca de la fecha, luego del monto). La lista de palabras que delatan un compromiso (dividendo, crédito, cuota, PAC,
seguro, arriendo, colegio, plan celular…) es solo datos: bin/compromisos_conocidos.json, por país.
Un movimiento con categoría transferencia (entre tus cuentas) solo puede pagar un compromiso de tipo transferencia.
Se paga solo o lo pagas tú. Lo que se paga solo no se te cobra: en Pagos dice «Se paga solo el 25 oct» (y «Pagado» cuando aparece el cargo), sin «Ya lo pagué» ni avisos de «por vencer». Si pasaron 3 días del vencimiento y el cargo no aparece, dice «No vimos el cargo» (puede que el cobro haya fallado) y, con los avisos activados, avisa una vez. Lo que pagas tú se recuerda como siempre. «Lo que debes» y «Te quedan» cuentan los dos: la plata sale igual.
Con total y cuotas_total, la cuota es total × (1 + interes/100) ÷ cuotas redondeada hacia abajo y la última se lleva la
diferencia, así la suma da justo. Si prestamo.cuota trae una cuota fija que calza (al menos lo justo, no más que el total y sin
pagarlo todo antes de la última; p. ej. 1.500.000 en 12 cuotas de 130.000), se respeta y la última es lo que falta (70.000). Si no dices el día, el primer pago cae el día de tu sueldo (inicio_mes en modo sueldo) o el 25.
Lo que queda se calcula con las cuotas pagadas. Los préstamos que hiciste suman en «Te deben», aparte de «Lo que debes».
Un compromiso con aproximado muestra un rango y su pago se reconoce si cae dentro de él (o dentro de la tolerancia de siempre) y trae alguna de sus palabras; sin palabras, solo el monto exacto.
Uno en UF (moneda: "UF") se paga en pesos, así que Alcancía estima cuánto es, sin conectarse a ningún lado: usa el valor
de la UF que sale del último pago reconocido de ese compromiso (pesos pagados ÷ UF); si aún no hay pagos, el más reciente entre el
que escribiste en Ajustes («Valor de la UF hoy») y el que sale del pago de otro compromiso en UF. Como la UF sube de a poco, el rango
se abre ±1,5 % por cada mes desde ese valor (configurable en Ajustes) más la variación del compromiso: «12,75 UF ≈ $490.000 –
$506.000». Es una estimación, no el valor oficial. Si no hay cómo estimarlo, se muestra «12,75 UF (aún no sé cuánto es en
pesos)» y no entra en los totales. Un pago en UF se reconoce por sus palabras (buscar) y, si escribiste el valor de la UF, también
por el monto (±15 %). En «Lo que debes» y el gasto máximo sugerido, lo aproximado cuenta por su máximo (y los ingresos por su
mínimo), para no quedarte corto. Al detectar un pago que varía mes a mes, se propone como aproximado; si parece un dividendo o la
descripción dice UF, se pregunta «¿Se paga en UF?».
Con inicio_mes en modo sueldo y el día en que te pagan (p. ej. 25), cada «mes» va de sueldo a sueldo y se llama como el mes
donde cae la mayor parte (si te pagan del 16 en adelante, el mes en que termina: «noviembre» = 25 oct – 24 nov; si te pagan del 2
al 15, el mes en que parte). Si anotaste tu sueldo como compromiso (tipo ingreso, categoría sueldo), el mes parte el día que
de verdad llegó, si llegó entre 12 días antes y 7 después del día de siempre. Los bonos e ingresos extra cuentan en el mes en que
caen. Los archivos movimientos/AAAA-MM.csv no cambian: siguen por mes calendario.
Sueldo detectado. Si inicio_mes no está en tu config, Alcancía busca tu sueldo: el ingreso más grande que se repite en al
menos 2 de los últimos 3 meses (o 3 de 4) con monto parecido (±25 %), que no es entre tus cuentas, y que dice sueldo (REMUNERACION,
SUELDO, NOMINA, PAYROLL…) o es al menos la mitad de lo que entró ese mes. Si lo encuentra, guarda inicio_mes con el día típico
(la mediana del día de llegada) y "auto": true, crea el compromiso «Sueldo» (aproximado, origen: "detectado") y deja esas
llegadas como Sueldo (con una regla si su descripción no calza con otros movimientos). Si no hay un sueldo claro, no inventa: el
mes queda calendario y te invita a decir cuándo te pagan.
Próximo sueldo y días hábiles. El próximo sueldo es el día típico del periodo siguiente; si cae sábado, domingo o feriado, se
corre al día hábil anterior (lo común en Chile) o al siguiente si eso es lo que muestran tus llegadas. Si ya pasó un día hábil
después de esa fecha sin llegada, el mes anterior sigue (hasta 7 días) y el Resumen pregunta «¿Aún no te pagan?». Los feriados
nacionales de Chile están en bin/feriados.json (solo datos, 2025–2028, incluidos los que se corren a lunes
y los irrenunciables) y se actualizan cada año con el decreto oficial; para otros países se usan solo los fines de semana.
«Cuéntale a Alcancía» (en «+» y en el Inicio, «Pregúntale a Alcancía») es un chat con tu alcancía. Responde tu IA, con tu cuenta, y nada se aplica solo: lo que propone aparece como una tarjeta («Agregar», «Sí, corrígelo», «Cambiar», «No»).
chat.json (estados, es:<n>).
Alcancia-celular.alcancia, en la carpeta de tu nube que elegiste en el Mac (Ajustes → «Alcancía en tu celular»). Es un JSON
(versión 1) que se abre con cualquier biblioteca estándar de AES-GCM; el código está en ui/copia.js y la pieza «cifrado» (ui/cifrado.js):
{"alcancia": "copia-celular", "version": 1,
"kdf": {"alg": "PBKDF2-SHA256", "iteraciones": 600000, "sal": "<16 bytes, base64>"},
"cifrado": "AES-256-GCM",
"verificador": {"iv": "<12 bytes>", "datos": "<«alcancia» cifrado, AAD «alcancia:celular:verificador»>"},
"datos": {"iv": "<12 bytes, nuevo en cada escritura>", "datos": "<contenido cifrado + etiqueta de 16 bytes, AAD «alcancia:celular:1»>"}}
version mayor que la
que conoce la app pide actualizarla.{"formato": 1, "generado", "version", "hoy", "estado": {...}}, con solo lo que la interfaz
necesita para pintar: config (pais, moneda, inicio_mes, uf), movimientos (las columnas de los CSV), categorias,
presupuesto, cuentas (id, nombre, moneda, saldo, conector), consejos, compromisos, conexiones (si está
conectada y cuándo fue la última vez), feriados y las palabras de compromisos_conocidos.json. Nunca llaves ni tokens de
conectores, rutas de tu computador, la conversación con Alcancía, recetas, la carpeta vigilada ni los datos de tu IA.
La misma interfaz, en una app para iPhone y Android (movil/, con Capacitor). El Mac sigue
siendo la fuente: lee tus cartolas y conexiones y guarda las llaves; el celular mira.
Alcancia-celular.alcancia, cifrado (formato).En esta fase, categorizar, marcar pagos, agregar cartolas o compromisos, conectar cuentas y conversar con Alcancía se hacen en el
Mac (el celular no lo ofrece; si llegas a tocar algo así, te lo dice). La app del celular no usa internet: no tiene servidores, ni
cuentas, ni llaves de conectores, ni telemetría. Cómo instalarla desde el código: movil/README.md.
Algunos bancos solo entregan la cartola en PDF. Alcancía lee los PDF con texto (los que genera el banco, no los escaneados) sin librerías: saca el texto con su posición, lo arma como tabla (filas por altura, columnas alineadas con la fila de encabezados) y lo pasa por la receta del banco, igual que un CSV. Si tu banco no tiene receta, tu IA ve las primeras filas de esa tabla y aprende a leerla. Un PDF escaneado (una foto) o protegido con clave no se puede leer: Alcancía te lo dice y te sugiere descargar la cartola en CSV o Excel, o guardar el PDF sin clave.
Una receta es un JSON de solo datos (nunca código), así que cualquiera puede agregar su banco sin programar. El formato está en
recetas/README.md y el catálogo comunitario vive en
alcancia-app/alcancia-catalogo. ¿Tu banco no está? Abre la app, agrega la cartola
y deja que tu IA aprenda a leerla: al final te ofrece compartir solo la receta, nunca tus movimientos.
Casi ningún banco deja que una persona use su propia API todavía, así que Alcancía junta todo lo que sí existe, siempre con conexiones oficiales y una llave que creas tú (nunca tu usuario y clave del banco):
| Servicio | Dónde | Qué trae | Ojo |
|---|---|---|---|
| Mercado Pago | AR, BR, CL, CO, MX, PE, UY | Pagos hechos y recibidos (últimos 12 meses) | La llave da acceso completo a la cuenta (no existe una de solo lectura). Beta. |
| PayPal | Todo el mundo | Movimientos de 3 años | Solo cuentas Business. Beta. |
| Stripe | Todo el mundo | Cobros, comisiones y transferencias | Llave restringida de solo lectura. Beta. |
| Buda.com | CL, PE, CO | Depósitos y retiros en pesos/soles | Llave de solo lectura. Beta. |
| SimpleFIN | EE. UU. y Canadá | Miles de bancos | Servicio aparte, US$1,50 al mes. Beta. |
| Up | Australia | Todas tus cuentas | Token personal de solo lectura. Beta. |
| Akahu | Nueva Zelanda | Casi todos los bancos | App personal gratuita. Beta. |
Beta = funciona con la API oficial y pasa las pruebas, pero falta que alguien lo use con su cuenta real. Si lo pruebas, cuéntanos. Para todo lo demás está la carpeta vigilada: descargas la cartola como siempre y Alcancía la agrega sola. Cuando tu país tenga finanzas abiertas oficiales (en Chile, la CMF parte en julio de 2027), las sumamos. Guía paso a paso: alcancia-app.github.io/alcancia/conectar.html. ¿Conoces otra API oficial? Mira Agregar un conector.
bin/mcp_servidor.py es un servidor MCP de solo lectura: corre en tu computador, lo abre tu
IA cuando lo necesita y no tiene servidores ni puertos abiertos. Herramientas: resumen_del_mes, gastos_por_categoria,
buscar_movimientos, principales_comercios, comparar_meses, presupuesto, compromisos (qué está pagado, pendiente o
atrasado este mes) y cuentas_y_datos. En la app: Conexiones → Tu IA,
fuera de Alcancía → Conectar (Claude Desktop, Claude Code, ChatGPT/Codex, Gemini CLI y Antigravity). A mano:
claude mcp add --scope user alcancia -- python3 ~/Developer/alcancia/bin/mcp_servidor.py
codex mcp add alcancia -- python3 ~/Developer/alcancia/bin/mcp_servidor.py
gemini mcp add -s user alcancia python3 ~/Developer/alcancia/bin/mcp_servidor.py
Lo que tu IA consulta viaja a tu proveedor de IA con tu cuenta, igual que si se lo escribieras.
Necesitas macOS 15 y las herramientas de Xcode (xcode-select --install).
git clone https://github.com/alcancia-app/alcancia ~/Developer/alcancia
cd ~/Developer/alcancia && bash build.sh # compila, arma la app con su propio Python y la instala en ~/Applications
open ~/Applications/Alcancia.app
La app no está firmada por Apple todavía: si macOS avisa, ve a Ajustes del Sistema → Privacidad y seguridad → «Abrir igualmente».
Actualizar: la app revisa sola al abrir y cada 6 horas (Ajustes → Actualizaciones). Instalada con build.sh, se actualiza con
git pull y vuelve a armarse; con un Release, baja Alcancia-macOS.zip, revisa su huella SHA-256 y se reemplaza. Tus datos
(~/Alcancia), tus conexiones (Llavero) y la copia para el celular siguen igual.
Necesitas Python 3 (solo biblioteca estándar) y Node para las pruebas de la interfaz.
cd ui && python3 -m http.server 8765 # interfaz con datos ficticios: http://localhost:8765 (?idioma=en, ?bienvenida, ?vacio)
python3 bin/importar.py vista cartola.csv /tmp/salida.json # probar una cartola (no guarda nada)
bash pruebas/correr.sh # todas las pruebas
Lee AGENTS.md antes de cambiar algo: sirve igual para personas y para tu IA.
¿Encontraste un problema de seguridad? Avísanos en privado, nunca en un issue público: cómo hacerlo y qué cubre está en
SECURITY.md. (Security issues: please report privately, see SECURITY.md.)
AGPL-3.0. Puedes usar, estudiar, cambiar y compartir Alcancía. Si la ofreces como servicio o la distribuyes modificada, tienes que publicar tu código con la misma licencia: así nadie puede tomarla y venderla cerrada.
Alcancía ("piggy bank") is a free, open-source spending tracker for people who struggle to keep their spending in check. Add statements from any bank or wallet in the world (CSV, Excel or text-based PDF); Alcancía sorts them without duplicates, your own AI (Claude Code, Codex or Gemini, with your account) fills in categories and gives you concrete tips, and you see in time when a category is running over budget. Commitments (rent, loans, bills, subscriptions, salary) can be added in your own words; Alcancía spots each payment in your statements, shows what's still due (overdue first), tracks loan installments, suggests a spending limit for day-to-day expenses and, on Mac, reminds you before things are due. You can also chat with your piggy bank: tell it you fell behind, that a payment was last month's, or ask how much you can pay each month on money family lent you (if that loan is already on your list, it asks whether it's the same one so it isn't counted twice); it proposes, you confirm. Your month can run from payday to payday. Your data stays on your computer in open files: no servers, no accounts, no ads, and it never asks for your bank password. A phone app (iPhone and Android, phase 1, read-only) shows the same screens: your Mac leaves a copy encrypted with a passphrase only you know (PBKDF2-SHA256 + AES-256-GCM) in a folder of your own cloud, and the phone opens it and can remind you before your payments are due. Each bank is supported through a data-only recipe (plus OFX, QIF and CAMT.053 out of the box); if yours is missing, your AI learns it and you can share just the recipe with the community. Transactions can also arrive automatically: official APIs with a key you create (Mercado Pago, PayPal, Stripe, Buda.com, SimpleFIN for US/Canada banks, Up, Akahu) and a watched Downloads folder. A read-only local MCP server lets your own AI (Claude, ChatGPT/Codex, Gemini) answer questions about your finances. Spanish-first, English included. Licensed under AGPL-3.0.
Permissions and network: the Keychain (keys of the accounts you connect and of the phone copy, only on that Mac), notifications (asked only when you add your first bill or turn on reminders, no amounts), Downloads (only if you turn on “Statements you download”), the cloud folder you choose, and, optionally, your AI's config file for the MCP server. The Mac connects only to GitHub (to check for and download updates, none of your data) and to each service you connect, only its domains; the phone app has no internet access. Updates are checked inside the app at launch and every 6 hours, downloaded only from this repo's Releases and verified with SHA-256; your data, connections and phone copy stay as they were.
Try it: browser preview with made-up data (add ?idioma=en) · Mac:
download Alcancia-macOS.zip (macOS 15,
Apple chip; unzip and drag it to Applications) or build from source (bash build.sh). The app
is not signed by Apple: the first time, try to open it, then go to System Settings → Privacy & Security and click Open
Anyway at the bottom; every download has its .sha256 in the Release · iPhone and Android:
build from source (phase 1, read-only) · Windows and Linux: coming. Questions and ideas are welcome in
Discussions, in English or Spanish; see CONTRIBUTING.md.
· Las piezas comunes (la app de Mac, tu IA, idiomas, actualizaciones…) viven en Pieza. · The shared pieces (the Mac app, your AI, languages, updates…) live in Pieza.
"receta".alcancia/config.json | Ajustes. Entre ellos inicio_mes: {"modo": "dia" | "sueldo", "dia": 25} (tu mes parte el día 1 o cuando llega tu sueldo; con "auto": true lo puso Alcancía al detectar tu sueldo y lo sigue ajustando, hasta que elijas otra cosa), avisos (true si quieres avisos de tus compromisos) y uf: {"valor": 39500, "fecha": "AAAA-MM-DD", "variacion_mensual": 1.5} (el valor de la UF que escribiste y cuánto puede variar al mes). |
.alcancia/ | Ajustes de la app, avisos.json (qué avisos ya se mostraron), recetas descargadas o creadas por ti, conexiones.json (estado de cada conexión, sin llaves), vigilar.json (cartolas ya revisadas en Descargas) y chat.json (la conversación con Alcancía: los últimos 50 mensajes, ya sin RUT ni números de cuenta; «Borrar» la borra). Las llaves de las conexiones viven en el Llavero de tu sistema, nunca en esta carpeta. |
Opcionales. Las pagadas son las de antes de desde; cada pago reconocido después suma una. |
fecha_fin, saldo | Opcionales: cuándo termina y lo que te queda por pagar (como lo anotaste). |
pago | Opcional, solo en gastos: "automatico" (se cobra solo: PAC, PAT, una suscripción con tarjeta) o "manual" (lo pagas tú). Sin el campo, Alcancía lo deduce: «se paga solo» si el nombre o buscar traen una palabra de compromisos_conocidos.json (automatico: PAC, PAT, cargo automático, Netflix, Spotify, Meli+…); si no, deudas, préstamos, cuentas, suscripciones y transferencias se pagan a mano, y un otro queda sin etiqueta (se recuerda igual). No confundir con pagos[…].como, que dice cómo se reconoció cada pago. |
activo | false = en pausa (ni se recuerda ni se busca). |
desde | Desde qué día cuenta (AAAA-MM-DD). Un vencimiento anterior solo se da por pagado si ya estaba pagado. |
origen | manual, detectado (salió de tu cartola) o ia (lo entendió tu IA). |
pagos | Por periodo (AAAA-MM en mensual, AAAA en anual, la fecha en semanal y una vez): {"como": "automatico", "fecha", "movimiento", "monto", "mora"?} cuando se reconoció en la cartola (mora: {"monto", "dias", "movimiento"?} si se pagó atrasado con interés por mora), {"como": "manual", "fecha"} cuando marcaste «ya lo pagué», y "no_es": ["<id de movimiento>"] cuando dijiste «no es este». Cuando confirmas en la conversación que un pago «era del mes pasado», se usa este mismo formato: el periodo anterior queda con ese pago (como, fecha, movimiento, monto) y el de este mes con el movimiento en no_es. |