Awesome Beancount
Una guía curada del ecosistema Beancount. Beancount es un potente sistema de contabilidad de código abierto que utiliza un formato simple basado en texto para gestionar sus finanzas con el rigor de la contabilidad por partida doble. Esta página combina listas seleccionadas por la comunidad y resúmenes del ecosistema en un recurso integral.
¿Por qué contabilidad en texto plano?
La contabilidad en texto plano (PTA, por sus siglas en inglés) es una metodología para gestionar las finanzas utilizando archivos de texto simples y potentes herramientas de línea de comandos. Este enfoque le otorga la propiedad total de sus datos, garantiza la longevidad y ofrece una flexibilidad inigualable para la automatización y el análisis.
- Centro oficial de PTA: Plain Text Accounting
- Una introducción sencilla: Contabilidad para mentes simples con contabilidad en texto plano
- De aplicaciones web a la CLI: Contabilidad en línea de comandos: De mint.com a Ledger
El ecosistema de Beancount
El ecosistema de Beancount es una colección de herramientas, complementos y recursos creados en torno a un motor central. Cada componente desempeña un papel específico en la creación de un flujo de trabajo completo de gestión financiera.
1. Motor central y recursos oficiales
Estos son los elementos fundamentales de Beancount, mantenidos por el creador y los colaboradores oficiales.
| Recurso | Descripción |
|---|---|
| Beancount (Core) | El motor que lee su archivo de libro mayor, aplica las reglas de partida doble y genera informes. Proporciona utilidades básicas de línea de comandos como bean-check y bean-format. Todas las demás herramientas se basan en esto. |
| Página de inicio | beancount.github.io |
| Código fuente | github.com/beancount/beancount |
| Documentación | GitHub Pages y Google Docs |
| Contribuciones externas | Lista oficial de contribuciones de la comunidad |
| Beanquery | Una potente herramienta de consulta de tipo SQL (v3) para ejecutar consultas avanzadas (por ejemplo, SELECT ... FROM ... WHERE ...) contra su libro mayor para generar análisis personalizados. |
2. Interfaces de usuario
Estas herramientas proporcionan interfaces visuales para explorar y editar sus datos financieros.
| Herramienta | Descripción |
|---|---|
| Fava | El panel web definitivo y con todas las funciones para Beancount. Proporciona gráficos interactivos, tablas detalladas, edición en el navegador y un sistema de extensiones para añadir funciones como presupuestos. |
| Fava-GTK | Una aplicación nativa de escritorio GNOME que envuelve a Fava para una experiencia de escritorio fluida. |
| Beancount Mobile | Una aplicación móvil de entrada de datos para añadir transacciones sobre la marcha. |
| Beancount Telegram Bot | Un bot de Telegram para añadir transacciones rápidamente a su libro mayor a través del chat. |
3. Importación de transacciones
La importación es el proceso de convertir datos de instituciones financieras (como archivos CSV o PDF bancarios) en entradas de Beancount.
| Herramienta | Descripción |
|---|---|
| Beangulp (v3) | El marco de trabajo moderno e independiente para crear importadores. Procesa archivos externos a través de scripts de Python (complementos) para generar directivas de Beancount. |
| Smart Importer | Una herramienta que potencia los importadores con aprendizaje automático para predecir y asignar categorías automáticamente. |
| Beancount Reds Ingestor | Una colección de importadores con una biblioteca común para manejar archivos CSV y OFX. |
| double-entry-generator | Un importador basado en reglas enfocado en servicios chinos como Alipay y WeChat Pay. |
Importadores de la comunidad (por país)
Una vasta colección de scripts para bancos y servicios específicos, mantenidos por la comunidad.
- China
- Alipay / 支付宝: deb-sig/double-entry-generator, wzyboy/importer
- China Merchants Bank (CMB): Tarjeta de débito, Tarjeta de crédito
- WeChat Pay / 微信支付: deb-sig/double-entry-generator
- Francia
- Caisse d'Epargne: beancount-ce
- Boursorama, Amex: Beancount-myTools
- Alemania
- Commerzbank: beancount-commerzbank
- Deutsche Kredit Bank (DKB): beancount-dkb
- ING: beancount-ing
- N26: beancount-n26
- Volksbank & GLS-Bank: beancount-importer-volksbank
- India
- SBI, BOI, Paytm, HSBC, ICICI: beancount-importers-india
- Países Bajos
- ABN AMRO: beancount-abnamro
- Suiza
- General: tariochbctools (BCGE, Neon, Raiffeisen, ZKB, Fidelity)
- Finpension: drnuke-bean
- PostFinance: tariochbctools, drnuke-bean
- Reino Unido
- Monzo, Revolut, Wise: Evernight/beancount-importers
- Revolut, Wise: tariochbctools
- EE. UU.
- Amex, Chase, Citi, Schwab: mterwill/gist
- Capital One: mtlynch/beancount-capitalone
- Chase: mtlynch/beancount-chase-bank, ArthurFDLR/beancount-chase
- Clipper: beancount-clipper
- Mercury: mtlynch/beancount-mercury
- Blockchain
4. Soporte para editores y herramientas
Herramientas que integran Beancount en su entorno de desarrollo para agilizar la edición y el mantenimiento.
- Soporte para IDE: Plugins que proporcionan resaltado de sintaxis, autocompletado y verificación de saldos en tiempo real.
- VSCode
- Emacs
- Vim
- Zed
- Sublime Text
- Atom
- Beancount Language Server (para cualquier editor compatible con LSP)
- Automatización y utilidades:
bean-add: Añade transacciones de forma interactiva desde la línea de comandos.beancount-black: Un formateador de código estricto para archivos de Beancount.beancount-categorizer: Categoriza transacciones automáticamente con reglas de expresiones regulares.beanahead: Administra y proyecta transacciones futuras.
- Herramientas de migración de datos: Utilidades para convertir datos desde otros sistemas contables.
- Desde GnuCash: henriquebastos/gc-to-bc, dtrai2/gc-to-bc
- Desde Ledger/hledger: travisdahlke/gist, zacchiro/ledger2beancount
- Desde YNAB: hoostus/beancount-ynab
5. Plugins (Extensiones de libro mayor)
Módulos de Python integrados en el libro mayor que se ejecutan durante el procesamiento para aplicar reglas personalizadas, automatizar transacciones o añadir nuevas funciones.
- Presupuestos:
- fava-envelope: Una extensión de Fava para presupuestos basados en el sistema de sobres.
- Automatización y verificaciones:
- autobean.share: División de gastos y gestión de deudas.
- autobean.sorted: Asegura que las transacciones estén ordenadas cronológicamente.
- beancount-checkclosed: Verifica automáticamente que haya un saldo de cero en las cuentas cerradas.
- Manipulación de datos:
- autobean.narration: Genera automáticamente descripciones de transacciones.
- beancount-lazy-plugins.filter_map: Aplica operaciones a un grupo filtrado de transacciones.
6. Fuentes de precios
Scripts que obtienen precios históricos y actuales de materias primas, acciones y divisas para realizar un seguimiento del valor de las inversiones.
- beancount-exchangerates: Para monedas fiduciarias a través de APIs como
frankfurter.dev. - pricehist: Un extractor de precios multifuente.
- beancount-cryptoassets: Para obtener precios de criptomonedas.
- tariochbctools: Incluye una fuente de precios para Interactive Brokers.
Aprendizaje y comunidad
Libros y guías detalladas
- Tracking Personal Finances using Python: Un libro que proporciona una guía completa para construir un sistema de finanzas personales con Beancount. (Sitio web)
- Serie de blogs en chino (BYVoid): Parte 1: ¿Por qué?, Parte 2: Débitos y créditos
Entradas de blog seleccionadas
- Inglés
- Francés
- Chino
Comunidad
- Lista de correo: Google Groups (Foro de discusión principal)
- Chat en vivo (IRC): #beancount en web.libera.chat
- Telegram (Chino): t.me/beancount_zh
Servicios comerciales y aplicaciones
Para usuarios que desean el poder de Beancount sin gestionar la infraestructura por sí mismos.
| Servicio | Descripción |
|---|---|
| Beancount.io | Una plataforma SaaS (Software como servicio) que proporciona una instancia de Beancount y Fava lista para usar. También ofrece aplicaciones móviles dedicadas para iOS y Android. |
