À jour au 15/09/2026.
Pour un catalogue maintenu d'importateurs, de plugins, d'éditeurs et de sources de prix, commencez par Awesome Beancount. Pour des flux de travail communautaires pratiques, consultez le showcase communautaire. Pour le CLI hébergé qui englobe la vérification, les requêtes, l'importation et les rapports, consultez la référence du CLI Beancount ; les analyses orientées Fava sont disponibles dans Solutions : analytique.
Fonctionnalités principales et philosophie de Beancount
Beancount est un système de comptabilité en partie double open source qui utilise des fichiers texte brut pour enregistrer les transactions. À la base, Beancount traite votre grand livre comme un ensemble de données défini par une grammaire simple et stricte. Chaque événement financier (transactions, ouvertures de comptes, prix des matières premières, etc.) est une directive dans un fichier texte, que Beancount analyse en une base de données en mémoire d'entrées. Cette conception impose le principe de la partie double : chaque transaction doit équilibrer les débits et les crédits entre les comptes. Le résultat est un grand livre hautement transparent et auditable que vous pouvez versionner, inspecter et interroger facilement.
Philosophie – exactitude et minimalisme : La conception de Beancount privilégie l'intégrité des données et la simplicité. Son créateur, Martin Blais, décrit Beancount comme « pessimiste » en supposant que l'utilisateur fera des erreurs et impose donc des vérifications et contraintes supplémentaires. Par exemple, Beancount ne vous permettra pas de retirer des actifs qui n'ont jamais été ajoutés (empêchant les soldes d'actions ou de liquidités négatifs) et peut exiger que chaque compte soit ouvert avant utilisation. Il ne dispose pas du concept de Ledger de postings « virtuels » ou automatiquement équilibrés – un choix délibéré pour forcer des entrées entièrement équilibrées. Beancount « va en réalité très loin dans l'exactitude » avec plus de vérifications croisées que la partie double de base. Cette approche prudente séduit les utilisateurs qui « ne se font pas trop confiance » et qui veulent que le logiciel détecte leurs erreurs.
Options minimales, cohérence maximale : Contrairement à la multitude d'options et de réglages en ligne de commande de Ledger, Beancount opte pour le minimalisme. Il y a très peu d'options globales, et aucune ne modifie la sémantique des transactions en dehors du fichier de grand livre. Toute la configuration affectant la comptabilité (comme les méthodes de base de coût des matières premières ou les hypothèses de réservation) se fait dans le fichier via des directives ou des plugins, garantissant ainsi que le chargement du même fichier produit toujours les mêmes résultats, quelle que soit la manière dont les rapports sont générés. Cette conception évite la complexité des nombreux boutons de Ledger et les interactions subtiles entre eux. La philosophie de Beancount est qu'un outil comptable doit être un pipeline stable et déterministe du fichier d'entrée aux rapports. Il y parvient en traitant le grand livre comme un flux ordonné de directives qui peut être traité programmatiquement en séquence. Même les choses que Ledger traite comme une syntaxe spéciale (comme les soldes d'ouverture ou les déclarations de prix) sont des directives de première classe dans le modèle de données de Beancount, ce qui rend le système hautement extensible.
Extensibilité via plugins et langage de requête : Beancount est implémenté en Python et fournit des hooks pour injecter une logique personnalisée dans le pipeline de traitement. Les utilisateurs peuvent écrire des plugins en Python qui opèrent sur le flux de transactions (par exemple, pour appliquer une règle personnalisée ou générer des entrées automatiques). Ces plugins s'exécutent lors du traitement du fichier, étendant ainsi les fonctionnalités de base de Beancount sans avoir à modifier le code source. Beancount inclut également un puissant langage de requête (inspiré de SQL) pour découper et analyser le grand livre. L'outil bean-query traite le grand livre analysé comme une base de données et vous permet d'exécuter des requêtes analytiques – par exemple, additionner les dépenses par catégorie ou extraire toutes les transactions pour un bénéficiaire donné. Dans Beancount 3.x, cette capacité de requête a été déplacée dans un paquet autonome beanquery, mais du point de vue de l'utilisateur, elle offre toujours des rapports flexibles via des requêtes de type SQL.
Texte brut et contrôle de version : En tant qu'outil de comptabilité en texte brut, Beancount met l'accent sur le contrôle de l'utilisateur et la longévité des données. Le grand livre est simplement un fichier texte .beancount que vous pouvez éditer dans n'importe quel éditeur de texte. Cela signifie que tout votre historique financier est stocké sous une forme lisible par un humain, et que vous pouvez le placer dans Git ou un autre VCS pour suivre les modifications au fil du temps. Les utilisateurs conservent souvent leur fichier Beancount sous contrôle de version pour maintenir une piste d'audit de chaque modification (avec des messages de commit décrivant les changements). Cette approche s'aligne sur la philosophie de Beancount selon laquelle les données comptables, en particulier les finances personnelles ou d'une petite entreprise, doivent être transparentes et « pérennes » – pas enfermées dans une base de données propriétaire. Selon les propres mots de Martin Blais, Beancount est un « travail d'amour » conçu pour être simple, durable et gratuit pour la communauté. Il a été développé pour la première fois vers 2007 et a évolué à travers des réécritures majeures (v1 à v2, et maintenant v3 en 2024) pour affiner sa conception tout en préservant sa philosophie de minimalisme et d'exactitude.
Outils, plugins et extensions dans l'écosystème Beancount
L'écosystème Beancount a développé un riche ensemble d'outils, de plugins et d'extensions qui améliorent les fonctionnalités de base du grand livre. Ils couvrent l'importation de données, l'édition de grands livres, la visualisation de rapports et l'ajout de fonctionnalités comptables spécialisées. Voici un aperçu des composants et modules complémentaires clés dans le monde Beancount :
Utilitaires d'importation de données (importateurs)
L'un des besoins les plus importants pour une utilisation pratique est l'importation de transactions provenant de banques, de cartes de crédit et d'autres institutions financières. Beancount fournit un cadre d'importation et des scripts d'importation contribués par la communauté à cet effet. Dans Beancount 2.x, le module intégré beancount.ingest (avec des commandes comme bean-extract et bean-identify) était utilisé pour définir des plugins d'importateur en Python et les appliquer aux relevés téléchargés. Dans Beancount 3.x, cela a été remplacé par un projet externe appelé Beangulp. Beangulp est un cadre d'importateurs dédié qui a évolué à partir de beancount.ingest et est désormais la méthode recommandée pour automatiser l'importation de transactions pour Beancount 3.0. Il permet d'écrire des scripts Python ou des outils en ligne de commande qui lisent des fichiers externes (comme des relevés CSV ou PDF) et produisent des entrées Beancount. Cette nouvelle approche découple la logique d'importation du noyau Beancount – par exemple, l'ancienne commande bean-extract a été supprimée en v3, et à la place, vos scripts d'importation produisent eux-mêmes des transactions via l'interface CLI de Beangulp.
Des dizaines d'importateurs prêts à l'emploi existent pour différentes banques et formats, contribués par la communauté. Il existe des scripts d'importation pour des institutions du monde entier – d'Alipay et WeChat Pay en Chine, à diverses banques européennes (Commerzbank, ING, ABN AMRO, etc.), en passant par des banques américaines comme Chase et Amex. Beaucoup de ces scripts sont rassemblés dans des dépôts publics (souvent sur GitHub) ou dans des paquets comme beancount-importers. Par exemple, le projet Tarioch Beancount Tools (tariochbctools) fournit des importateurs pour les banques suisses et britanniques et gère même les importations de transactions crypto. Un autre exemple est Lazy Beancount, qui regroupe un ensemble d'importateurs courants (pour Wise, Monzo, Revolut, IBKR, etc.) et fournit une configuration basée sur Docker pour une automatisation facile. Quelle que soit la banque ou le service financier que vous utilisez, il est probable que quelqu'un ait écrit un importateur Beancount pour celui-ci – ou vous pouvez écrire le vôtre en utilisant le cadre Beangulp. La flexibilité de Python signifie que les importateurs peuvent gérer l'analyse de fichiers CSV/Excel, les téléchargements OFX/QIF, ou même le scraping d'API, puis émettre des transactions au format Beancount standardisé.
Édition et intégration d'éditeurs
Comme les grands livres Beancount ne sont que du texte, les utilisateurs tirent souvent parti de leurs éditeurs de texte ou IDE préférés pour les maintenir. L'écosystème fournit des plugins de support d'éditeur pour rendre cette expérience plus fluide. Il existe des extensions pour de nombreux éditeurs populaires qui ajoutent la coloration syntaxique, l'auto-complétion des noms de comptes et la vérification des erreurs en temps réel :
- Emacs Beancount-Mode : Un mode majeur Emacs (
beancount-mode) est disponible pour éditer les fichiers .beancount, offrant des fonctionnalités comme la coloration syntaxique et l'intégration avec le vérificateur de Beancount. Il peut même exécuterbean-checken arrière-plan afin que les erreurs du grand livre (comme une transaction déséquilibrée) soient signalées pendant que vous éditez. - Extension VS Code : Une extension Beancount sur le Marketplace VSCode offre des commodités similaires pour les utilisateurs de Visual Studio Code. Elle prend en charge la coloration syntaxique, l'alignement des montants, l'auto-complétion pour les comptes/bénéficiaires, et même des vérifications de solde à la volée lors de l'enregistrement du fichier. Elle peut également s'intégrer à Fava, vous permettant de lancer l'interface web Fava depuis VSCode.
- Des plugins ou modes existent également pour Vim, Atom et d'autres éditeurs. Par exemple, il existe une grammaire Tree-sitter pour Beancount, qui alimente la coloration syntaxique dans les éditeurs modernes et a même été adoptée dans le composant d'éditeur web de Fava. En bref, quel que soit votre environnement d'édition, la communauté a probablement fourni un plugin pour rendre l'édition de fichiers Beancount pratique et sans erreur.
Pour une saisie rapide de transactions en dehors des éditeurs traditionnels, il existe également des outils comme Bean-add et des applications mobiles. Bean-add est un outil en ligne de commande qui permet d'ajouter une nouvelle transaction via une invite ou une commande en une ligne, en gérant les suggestions de dates et de comptes. Sur mobile, un projet appelé Beancount Mobile fournit une interface simple pour saisir des transactions en déplacement (par exemple, enregistrer un achat en espèces depuis votre téléphone). De plus, un bot Telegram Beancount existe pour capturer des transactions via la messagerie – vous pouvez envoyer un message avec les détails de la transaction, et le bot le formate dans votre fichier de grand livre.
Interfaces web et outils de visualisation
(Fava) L'interface web de Fava fournit un tableau de bord interactif pour Beancount, avec des rapports comme un état des résultats avec des visualisations (montrées ici comme une treemap des dépenses par catégorie) ainsi que des tableaux de comptes et de soldes.
Le frontend phare de Beancount est Fava, une interface web moderne. Fava s'exécute comme une application web locale qui lit votre fichier Beancount et produit une expérience interactive riche dans votre navigateur. Il offre une suite complète de rapports : bilan, compte de résultat, valeur nette au fil du temps, avoirs de portefeuille, graphiques de performance, budgets, etc. – le tout prêt à l'emploi. Les utilisateurs citent souvent Fava comme une raison majeure de choisir Beancount plutôt que d'autres outils de comptabilité en texte brut. Avec une seule commande (fava ledger.beancount), vous pouvez parcourir vos finances avec des graphiques et des tableaux au lieu de texte. Fava prend en charge des fonctionnalités telles que : exploration des comptes, filtrage des transactions par bénéficiaire ou par étiquette, un éditeur de requêtes (pour exécuter des requêtes Beancount et voir les résultats dans le navigateur), et même un éditeur web intégré pour votre grand livre. Il est très utilisable, rendant la comptabilité en texte brut accessible à ceux qui préfèrent les interfaces visuelles.
Sous le capot, Fava est écrit en Python (Flask en backend) et JavaScript (Svelte en frontend). Il a son propre cycle de publication et est activement maintenu. Notamment, Fava a suivi le rythme du développement de Beancount – par exemple, Fava 1.30 a ajouté le support de Beancount v3, en passant à l'utilisation interne des nouveaux paquets beanquery et beangulp. À partir de Fava 1.30.13 (2026-05-19) (journal des modifications), le support de Beancount 2 a été entièrement abandonné ; le Fava actuel sur PyPI (1.30.16 au 15/09/2026) attend un grand livre Beancount 3 et des importateurs basés sur beangulp. L'accent mis par Fava sur la convivialité inclut de belles touches comme l'auto-complétion dans l'éditeur web, et une interface élégante avec mode sombre et graphiques réactifs. Il existe également une déclinaison appelée Fava-GTK, qui empaquette Fava dans une application de bureau pour les utilisateurs GNOME/Linux qui préfèrent une sensation d'application native.
Au-delà de Fava, d'autres options de visualisation et d'analyse existent. Parce que les données Beancount peuvent être exportées ou interrogées sous forme de tableaux, les utilisateurs tirent souvent parti d'outils comme les notebooks Jupyter ou Pandas pour des analyses personnalisées. Par exemple, un utilisateur décrit l'extraction de données de Beancount via l'interface de requête dans un DataFrame Pandas pour préparer un rapport personnalisé. Il existe également des scripts contribués par la communauté pour des rapports spécifiques – par exemple, un outil d'analyse d'allocation de portefeuille ou un graphique de contrôle de processus pour les dépenses par rapport à la valeur nette. Cependant, pour la plupart des gens, Fava offre plus qu'assez de puissance de reporting sans avoir à écrire de code. Il prend même en charge les extensions : vous pouvez déposer des fichiers Python qui ajoutent de nouvelles pages de rapport ou des graphiques à Fava. Une extension notable est fava-envelope pour la budgétisation par enveloppes dans Fava. Dans l'ensemble, Fava sert de hub de visualisation central de l'écosystème Beancount.
Utilitaires en ligne de commande et scripts
Beancount est livré avec divers outils CLI (surtout dans l'ancienne branche v2, dont certains ont été réduits en v3). Ces outils opèrent sur votre fichier de grand livre pour le vérifier ou générer des rapports spécifiques en texte ou en HTML :
- bean-check : un validateur qui vérifie les erreurs de syntaxe ou de comptabilité dans le fichier. Exécuter
bean-check monfichier.beancountvous alertera de tout déséquilibre, compte manquant ou autre problème, et ne sortira rien si le fichier est sans erreur. - bean-format : un formateur qui nettoie votre grand livre en alignant les nombres dans des colonnes soignées, un peu comme exécuter un formateur de code sur le code source. Cela aide à garder le fichier propre et lisible.
- bean-query : un shell interactif ou un outil par lots pour exécuter le langage de requête de Beancount sur votre grand livre. Vous pouvez l'utiliser pour produire des rapports tabulaires personnalisés (par exemple,
bean-query monfichier.beancount "SELECT account, sum(amount) WHERE ..."). - bean-report : un générateur de rapports polyvalent (en v2) qui peut produire des rapports prédéfinis (bilan, compte de résultat, balance d'essai, etc.) sur la console ou dans des fichiers. Par exemple,
bean-report fichier.beancount balancesafficherait les soldes des comptes. (En pratique, beaucoup de ces rapports texte ont été supplantés par la présentation plus agréable de Fava.) - bean-web / bean-bake : une interface web plus ancienne qui servait les rapports sur
localhostou les « cuisait » en fichiers HTML statiques. Ces outils étaient surtout utilisés avant que Fava ne devienne populaire ; bean-web fournissait une vue web de base des mêmes rapports que bean-report pouvait générer. Dans Beancount 3, bean-web a été supprimé (car Fava est maintenant le frontend web recommandé, offrant une expérience supérieure). - bean-example : un utilitaire pour générer un exemple de fichier de grand livre (utile pour les débutants afin de voir un modèle d'entrées Beancount).
- bean-doctor : un outil de débogage qui peut diagnostiquer des problèmes dans votre grand livre ou votre environnement.
Il convient de noter qu'à partir de Beancount v3, beaucoup de ces outils ont été déplacés hors du projet principal. Le paquet Beancount de base a été rationalisé, et des outils comme le moteur de requête et les importateurs ont été divisés en paquets séparés (beanquery, beangulp, etc.) pour une maintenance plus facile. Par exemple, la fonctionnalité de bean-query est désormais fournie par l'outil beanquery qui est installé séparément. Du point de vue de l'utilisateur, la fonctionnalité reste disponible ; elle a simplement été modularisée. La communauté Arch Linux a noté ce changement lors de la mise à jour de Fava : le paquet Fava a ajouté des dépendances sur beanquery et beangulp pour supporter Beancount 3.x. Cette approche modulaire permet également à d'autres membres de la communauté de contribuer à ces outils auxiliaires plus indépendamment du cycle de publication de Beancount.
Plugins et extensions Beancount
Une force remarquable de l'écosystème Beancount est le système de plugins. En ajoutant une ligne plugin "module.name" dans votre fichier Beancount, vous pouvez intégrer une logique Python personnalisée qui s'exécute pendant le traitement du grand livre. La communauté a créé de nombreux plugins pour étendre les capacités de Beancount :
- Qualité des données et règles : Des exemples incluent
beancount-balexprqui vous permet d'asserter des équations impliquant plusieurs comptes (par exemple, Actif A + Actif B = Passif X), etbeancount-checkclosedqui insère automatiquement des assertions de solde lorsque vous fermez un compte pour garantir qu'il atteint zéro. Il existe même un plugin pour s'assurer que les transactions du fichier sont triées par date (autobean.sorted) afin de détecter les entrées hors ordre. - Automatisation : Le plugin
beancount-asset-transferpeut générer des entrées de transfert en nature entre comptes (utile pour déplacer des actions entre courtiers tout en préservant la base de coût). Un autre,autobean.xcheck, vérifie votre grand livre Beancount par rapport à des relevés externes pour détecter des écarts. - Transactions récurrentes et budgets : Le plugin « repeat » ou d'interpolation d'Akuukis permet de définir des transactions récurrentes ou d'étaler une dépense annuelle sur plusieurs mois. Pour la budgétisation, l'extension
fava-envelope(utilisée via Fava) prend en charge la méthodologie de budgétisation par enveloppes en texte brut. Il existe également MiniBudget de Frank Davies – un petit outil autonome inspiré de Beancount pour aider à la budgétisation personnelle ou pour les petites entreprises. - Impôts et rapports : Certains plugins aident à la comptabilité fiscale, comme celui qui classe automatiquement les gains en capital en court terme vs long terme. Un autre (
fincen_114de Justus Pendleton) génère un rapport FBAR pour les contribuables américains ayant des comptes étrangers, illustrant comment les données Beancount peuvent être exploitées pour des rapports réglementaires. - Dépôts de plugins communautaires : Il existe des ensembles de plugins sélectionnés comme beancount-plugins (de Dave Stephens) se concentrant sur des choses comme les écritures d'amortissement, et beancount-plugins-zack (de Stefano Zacchiroli) qui incluent des aides diverses comme le tri des directives.
En plus des plugins, d'autres outils utilitaires gravitent autour de Beancount pour répondre à des besoins spécifiques. Par exemple, beancount-black est un auto-formateur similaire au formateur de code Black, mais pour les fichiers de grand livre Beancount. Il existe un bot Beancount (Telegram/Mattermost) pour ajouter des transactions via le chat comme mentionné, et un workflow Alfred pour macOS pour ajouter rapidement des transactions à votre fichier. Un outil nommé Pinto offre un CLI « suralimenté » avec saisie interactive (comme un bean-add amélioré). Pour ceux qui migrent depuis d'autres systèmes, des convertisseurs existent (YNAB2Beancount, CSV2Beancount, GnuCash2Beancount, Ledger2Beancount) pour aider à importer des données d'ailleurs.
En résumé, l'écosystème Beancount est assez étendu. Le tableau 1 ci-dessous répertorie quelques outils et extensions majeurs avec leurs rôles :
| Outil/Extension | Description |
|---|---|
| Fava (interface web) | Application web complète pour visualiser et éditer les livres Beancount. Fournit des rapports interactifs (bilan, compte de résultat, etc.), des graphiques et des capacités de requête. Boost majeur d'utilisabilité pour Beancount. |
| Beangulp (cadre d'importation) | Cadre d'importation autonome pour Beancount v3, remplaçant l'ancien module ingest. Aide à convertir les relevés bancaires (CSV, PDF, etc.) en entrées Beancount à l'aide de scripts de plugin. |
| Beanquery (outil de requête) | Moteur de requête autonome de type SQL pour les données Beancount. Remplace bean-query en v3, permettant une interrogation avancée des transactions et des soldes via une syntaxe SELECT-FROM-WHERE familière. |
| Bean-check / Bean-format | Outils CLI de base pour valider un fichier Beancount (vérifier les erreurs) et le formater automatiquement pour plus de cohérence. Utile pour maintenir un grand livre correct et propre. |
| Plugins d'éditeur (Emacs, VSCode, Vim, etc.) | Plugins/modes qui ajoutent le support syntaxique Beancount et le linting dans les éditeurs de texte. Améliorent l'expérience de l'édition manuelle des fichiers .beancount avec des fonctionnalités comme l'auto-complétion et la mise en évidence des erreurs en direct. |
| Importateurs communautaires | Collections de scripts d'importation bancaire (beaucoup sur GitHub) couvrant des banques aux États-Unis, en UE, en Asie, etc. Permettent aux utilisateurs d'ingérer automatiquement des transactions depuis leurs institutions financières dans Beancount. |
| Plugins (extensions de grand livre) | Plugins optionnels dans le fichier pour appliquer des règles ou ajouter des fonctionnalités (par exemple, partage de dépenses, entrées récurrentes, assertions de solde personnalisées). Écrits en Python et exécutés pendant le traitement du fichier pour la personnalisation. |
| Convertisseurs (outils de migration) | Utilitaires pour convertir des données d'autres formats en Beancount, par exemple depuis GnuCash ou Ledger CLI vers le format Beancount. Facilitent l'adoption de Beancount sans repartir de zéro. |
| CLI bea (Beancount.io) | CLI hébergé et local (bea check, bea query, bea import, bea report, …) documenté dans la référence CLI. Enveloppe les outils Beancount 3 pour les opérations quotidiennes sur le grand livre. |
| Open Ledger | Grands livres publics d'entreprises publiés sous forme de fichiers Beancount et intégrés dans les articles de résultats – voir /open-ledger et le showcase communautaire pour voir comment les livres en texte brut voyagent. |
CLI hébergé et Open Ledger (ajouté en 2026)
Deux éléments qui étaient minces ou absents lorsque cet aperçu a été rédigé pour la première fois se trouvent maintenant dans le flux de travail quotidien de Beancount.io :
- CLI
bea— La référence du CLI Beancount et le démarrage rapide du CLI couvrent la validation des grands livres, l'exécution de BQL, l'importation de fichiers bancaires et la production de rapports sans jongler avec les différents points d'entréebean-*. Privilégiezbea check/bea querylorsque vous suivez les exemples de la documentation actuelle. - Open Ledger — Les périodes fiscales publiques de certaines entreprises vivent sous forme de dépôts Beancount et apparaissent via des intégrations de grand livre sur le blog. Parcourez l'inventaire sur /open-ledger ; la procédure de modélisation est Modéliser une entreprise publique dans Beancount.
Comparaison avec Ledger, hledger et systèmes similaires
Beancount appartient à la famille des outils de comptabilité en partie double en texte brut, parmi lesquels Ledger CLI (Ledger de John Wiegley) et hledger sont importants. Bien que tous ces systèmes partagent l'idée centrale des fichiers de grand livre en texte brut et de la comptabilité en partie double, ils diffèrent en syntaxe, en philosophie et en maturité de l'écosystème. Le tableau suivant met en évidence les différences clés entre Beancount, Ledger et hledger :
| Aspect | Beancount (Python) | Ledger CLI (C++) | hledger (Haskell) |
|---|---|---|---|
| Syntaxe & structure de fichier | Syntaxe stricte et structurée définie par une grammaire formelle (BNF). Les transactions ont des lignes explicites date drapeau "Bénéficiaire" "Narration" et des postings avec des quantités ; tous les comptes doivent être explicitement ouverts/définis. Pas de postings implicites ; chaque transaction doit être équilibrée. | Syntaxe plus libre. Le bénéficiaire/la description est généralement sur la même ligne que la date. Permet un certain équilibrage implicite (comme une transaction à un seul posting qui peut impliquer un second posting vers un compte par défaut). Les noms de comptes peuvent être utilisés sans déclaration préalable. Offre de nombreuses options en ligne de commande qui peuvent affecter l'analyse (par exemple, hypothèses d'année, règles de fusion des matières premières). | Suit en grande partie la syntaxe de Ledger avec des différences mineures. hledger est une réimplémentation des fonctionnalités de base de Ledger en Haskell, donc le format de journal est très similaire à celui de Ledger (avec quelques extensions et une analyse plus stricte par défaut). Par exemple, hledger est un peu plus strict sur les dates et la syntaxe des matières premières que Ledger, mais pas aussi strict que Beancount. |
| Philosophie | Conservatrice et pointilleuse. Met l'accent sur la détection des erreurs de l'utilisateur et le maintien de l'intégrité des données avant tout. Impose de nombreuses vérifications (assertions de solde, suivi des lots) par défaut. Configuration minimale – approche « une seule façon de faire » pour la cohérence. Conçu comme une bibliothèque avec des plugins pour l'extensibilité (traite les données du grand livre comme un flux à traiter, permettant une logique Python personnalisée). | Optimiste et flexible. Fait confiance à l'utilisateur pour saisir les données correctement ; moins de contraintes intégrées par défaut. Hautement personnalisable avec des dizaines d'options et de drapeaux de commande pour ajuster le comportement. Tendance à être un outil monolithique avec des fonctionnalités intégrées (rapports, graphiques) et utilise un langage spécifique au domaine dans le grand livre pour des choses comme les transactions automatisées et périodiques. L'extensibilité se fait généralement via des scripts externes ou le langage de requête intégré plutôt que des API de plugin. | Pragmatique et cohérent. Vise à apporter l'approche de Ledger à un public plus large avec un comportement prévisible. hledger par défaut à plus de cohérence (aucune hypothèse d'équilibrage sans comptes explicites) et a moins de pièges que les modes les plus permissifs de Ledger. Il a un sous-ensemble des fonctionnalités de Ledger (certaines des options plus exotiques de Ledger ne sont pas prises en charge), mais ajoute certaines des siennes (comme une interface web et une importation CSV intégrée). Met l'accent sur la stabilité et l'exactitude, mais sans un système de plugins comme celui de Beancount. |
| Transactions & équilibrage | Partie double stricte : chaque transaction doit avoir des totaux de débits et de crédits égaux. Ne permet pas les entrées déséquilibrées ou les espaces réservés (pas de « postings virtuels » qui s'auto-équilibrent). Applique également l'indépendance de l'ordre : le grand livre peut être trié par date arbitrairement car les assertions de solde sont limitées à la date, ne reposant pas sur l'ordre du fichier. Le suivi des coûts des matières premières est rigoureux – lorsque vous vendez des actifs, vous devez spécifier les lots ou Beancount appliquera FIFO/LIFO de sorte que vous ne puissiez pas retirer quelque chose que vous n'avez pas ajouté. | Permet plus de clémence dans les transactions. Ledger permet les « postings virtuels » (en utilisant des crochets [ ] ou des parenthèses) qui ne nécessitent pas un compte d'équilibrage explicite – souvent utilisé pour gérer la budgétisation ou l'équilibrage des capitaux propres implicites. Il est possible dans Ledger de saisir une transaction incomplète (en omettant un côté) et de laisser Ledger déduire le montant d'équilibrage. De plus, Ledger n'applique pas strictement la suppression lot par lot des actifs ; il soustraira volontiers d'un solde agrégé de matières premières même si des lots spécifiques n'ont pas été suivis. Cela facilite, par exemple, la comptabilité au coût moyen, mais signifie que Ledger ne vous empêchera pas de faire des erreurs comme vendre plus d'actions que vous n'en avez dans un lot donné. | Similaire à Ledger en permettant les postings virtuels et l'équilibrage implicite, mais avec un comportement plus cohérent. hledger applique des règles d'analyse plus strictes que Ledger mais est plus clément que Beancount. |
| Stock & base de coût | Suivi précis des lots. Beancount attache des informations de coût aux lots de matières premières (par exemple, achat de 10 actions à 100 $ chacune), et lors de la réduction d'un stock, il exige de correspondre à un lot spécifique ou d'utiliser une stratégie définie. Il garantit que les gains en capital et les bases de coût sont calculés correctement par conception. La méthode du coût moyen n'est pas la valeur par défaut à moins que vous n'écriviez explicitement une logique pour cela, car Beancount traite chaque lot distinctement pour préserver l'exactitude. | Stock plus abstrait. Ledger traite les montants de matières premières plus fluidement ; par défaut, tous les lots sont fusionnés dans les rapports (il affiche simplement les quantités totales). Il fournit des options pour rapporter par lot ou au coût moyen si nécessaire, mais c'est une préoccupation de rapport. Historiquement, Ledger n'utilisait pas les informations de coût pour équilibrer les transactions multi-matières premières, ce qui pouvait conduire à des erreurs subtiles de calcul des gains en capital. Cependant, la flexibilité de Ledger permet aux utilisateurs de choisir FIFO, LIFO, moyenne, etc., au moment du rapport via des drapeaux en ligne de commande. | Similaire à Ledger avec une gestion flexible des stocks. hledger peut suivre les lots lorsqu'ils sont spécifiés mais n'applique pas un suivi lot par lot aussi strictement que Beancount. Les calculs de gains en capital sont disponibles mais nécessitent une configuration plus manuelle. |
| Rapports & interface utilisateur | Principalement via Fava (interface web) et bean-query/bean-report. Fava offre un tableau de bord web élégant avec graphiques et diagrammes, rendant Beancount très convivial pour l'analyse. Prend également en charge les rapports textuels et les requêtes de type SQL via bean-query. Pas de TUI officiel (interface texte), mais l'intégration des éditeurs/IDE comble cette lacune. | Rapports principalement en ligne de commande. Ledger possède de nombreuses commandes de rapport intégrées (balance, register, stats, etc.) qui produisent du texte dans le terminal. Il peut produire des graphiques (ASCII ou via gnuplot) et a même des modules complémentaires pour les rapports HTML, mais il n'a pas d'interface web officielle maintenue dans le cadre du projet. (Il y a eu des tentatives tierces d'interfaces web pour Ledger, mais aucune aussi importante que Fava pour Beancount.) Pour une interface, les utilisateurs s'appuient sur le terminal ou peut-être des GUI comme Ledger-Live (un projet séparé). | Offre à la fois CLI et une interface web simple. hledger hérite des rapports CLI de Ledger (avec des commandes similaires) et fournit en plus hledger-web, une interface web de base pour visualiser les comptes et les transactions dans un navigateur. hledger-web n'est pas aussi riche en fonctionnalités que Fava, mais il offre une vue en lecture seule. hledger dispose également de hledger-ui, une interface basée sur curses dans le terminal pour une utilisation interactive. |
| Extensibilité & plugins | Grande extensibilité via Python. L'API de plugin permet l'exécution de code Python arbitraire pendant le traitement du grand livre, ce qui signifie que les utilisateurs peuvent implémenter des fonctionnalités personnalisées sans modifier le noyau. L'écosystème de plugins (pour la budgétisation, etc.) en témoigne. De plus, on peut écrire des scripts Python pour utiliser les bibliothèques de Beancount pour des rapports personnalisés. | Extensibilité de niveau inférieur. Ledger peut être étendu en écrivant vos propres scripts qui analysent la sortie de Ledger ou en utilisant son langage de requête intégré de manière astucieuse. Il offre également des fonctionnalités comme les transactions automatisées (règles qui génèrent automatiquement des postings déclenchés par des événements dans le journal) et les transactions périodiques, qui sont des sortes d'extensibilité intégrée dans le fichier de grand livre. Mais il n'offre pas une API pour injecter du code arbitraire dans le moteur comptable – ce n'est pas une bibliothèque de la même manière (bien que libledger existe pour les développeurs C++). | Extensibilité modérée. hledger omet délibérément les fonctionnalités de transactions automatisées/périodiques de Ledger pour garder les choses plus simples, mais fournit des outils comme hledger-import pour la conversion d'autres formats et permet des modules complémentaires. Étant écrit en Haskell, il est utilisé comme bibliothèque dans certains projets, mais écrire des plugins personnalisés n'est pas aussi simple que l'approche de Beancount. Au lieu de cela, hledger se concentre sur la couverture des besoins courants (rapports, web, UI) dans son ensemble d'outils officiel. |
| Communauté & développement | Active mais principalement dirigée par un seul auteur (Martin Blais) et un petit groupe de contributeurs. Les versions majeures sont peu fréquentes (v2 était stable pendant ~6 ans, puis v3 en 2024). La communauté contribue via des plugins et des outils (Fava était à l'origine un projet tiers devenu intégral). La liste de diffusion de Beancount et GitHub sont actifs avec des discussions, et la base d'utilisateurs a grandi grâce à l'attrait de Fava pour les non-développeurs. | Longue histoire (Ledger remonte à 2003) et large utilisation chez les ingénieurs. À l'origine un projet d'une seule personne (Wiegley), il a vu de nombreux contributeurs au fil du temps. Le développement de Ledger a ralenti ces dernières années ; il est stable mais offre moins de nouvelles fonctionnalités (l'accent est passé à la maintenance). La liste de diffusion ledger-cli est un hub pour toutes les discussions sur la comptabilité en texte brut (y compris Beancount et hledger). De nombreux outils et scripts autour de Ledger existent, mais l'écosystème n'est pas aussi unifié (pas de « GUI Ledger » unique, etc., bien que plusieurs efforts indépendants existent). | Communauté croissante, avec Simon Michael dirigeant le développement de hledger. hledger a des versions annuelles et des améliorations constantes, suivant souvent les changements de fonctionnalités de Ledger mais traçant aussi sa propre voie. Il gagne en popularité auprès des utilisateurs qui veulent la puissance de Ledger avec plus de prévisibilité. La communauté tend à se chevaucher avec celle de Ledger (plaintextaccounting.org couvre les deux). L'écosystème de hledger comprend des modules complémentaires comme hledger-flow (pour l'automatisation des flux de travail) et bénéficie de son écriture en Haskell (attirant ceux de cette communauté). |
En résumé, Beancount se distingue par son accent sur la rigueur, l'extensibilité basée sur les plugins et une interface web conviviale. Ledger reste l'outil classique, très flexible, prisé par les puristes de la ligne de commande et ceux qui ont besoin d'une vitesse ultime (le moteur C++ de Ledger est très rapide sur d'énormes fichiers). hledger offre un juste milieu – une grande partie des fonctionnalités de Ledger avec un peu plus de structure et une interface web officiellement prise en charge (bien que simple). Les trois partagent les avantages de la comptabilité en texte brut (auditabilité, versionnage Git, données brutes), mais l'écosystème de Beancount (surtout avec Fava) l'a rendu, sans doute, plus accessible à l'utilisateur moyen ces dernières années. D'un autre côté, les utilisateurs de Ledger/hledger préfèrent parfois leur relative simplicité de configuration (pas besoin de Python) et leur stabilité éprouvée. En fin de compte, le choix entre eux dépend de la préférence personnelle : ceux qui valorisent une exactitude rigoureuse et un écosystème riche penchent souvent vers Beancount, tandis que ceux qui veulent un outil léger et orienté terminal pourraient rester avec Ledger ou hledger.
Scénarios d'utilisation de Beancount
Beancount est suffisamment polyvalent pour être utilisé pour le suivi des finances personnelles ainsi que (dans certains cas) pour la comptabilité de petites entreprises. Son approche centrale en partie double est la même dans les deux scénarios, mais l'échelle et les pratiques spécifiques peuvent différer.
Finances personnelles
De nombreux utilisateurs de Beancount l'emploient pour gérer leurs finances individuelles ou familiales. Une configuration typique de finances personnelles dans Beancount pourrait inclure des comptes pour les chèques et l'épargne, les cartes de crédit, les investissements, les prêts, les catégories de revenus (salaire, intérêts, etc.) et les catégories de dépenses (loyer, épicerie, divertissement, etc.). Les utilisateurs enregistrent les transactions quotidiennes soit manuellement (en saisissant les reçus, les factures, etc.), soit en important les relevés bancaires à l'aide des outils d'importation discutés précédemment. Les avantages que Beancount apporte aux finances personnelles incluent :
- Consolidation et analyse : Toutes vos transactions peuvent vivre dans un seul fichier texte (ou un ensemble de fichiers) qui représente des années d'historique financier. Cela facilite l'analyse des tendances à long terme. Avec le langage de requête de Beancount ou avec Fava, vous pouvez répondre à des questions comme « Combien ai-je dépensé en voyages au cours des 5 dernières années ? » ou « Quelle est ma facture d'épicerie mensuelle moyenne ? » en quelques secondes. Un utilisateur a noté qu'après être passé à Beancount, « l'analyse des données financières (dépenses, dons, impôts, etc.) est triviale » soit via Fava, soit en interrogeant les données et en utilisant des outils comme Pandas. En substance, votre grand livre devient une base de données financière personnelle que vous pouvez interroger à volonté.
- Budgétisation et planification : Bien que Beancount n'impose pas de système de budgétisation, vous pouvez en implémenter un. Certains utilisateurs font de la budgétisation par enveloppes en créant des comptes budgétaires ou en utilisant le plugin
fava-envelope. D'autres utilisent simplement des rapports périodiques pour comparer les dépenses aux objectifs. Parce que c'est en texte brut, intégrer Beancount avec des outils de budgétisation externes ou des feuilles de calcul est simple (exportation de données ou utilisation des sorties CSV des requêtes). - Investissements et suivi de la valeur nette : Beancount excelle dans le suivi des investissements grâce à sa gestion robuste des bases de coût et des prix du marché. Vous pouvez enregistrer les achats/ventes d'actions, de crypto, etc., avec les détails de coût, puis utiliser les directives
Pricespour suivre la valeur marchande. Fava peut afficher un graphique de valeur nette au fil du temps et une répartition du portefeuille par classe d'actifs. C'est extrêmement utile pour la gestion de patrimoine personnel – vous obtenez des informations similaires à celles fournies par des outils commerciaux comme Mint ou Personal Capital, mais entièrement sous votre contrôle. Pour une analyse comparative des alternatives à Mint, voir la comparaison des alternatives à Mint et la comparaison des alternatives à Empower / Personal Capital. La gestion multi-devises est également intégrée, donc si vous détenez des devises étrangères ou de la crypto, Beancount peut les suivre et les convertir pour les rapports. - Rapprochement et exactitude : Les finances personnelles impliquent souvent un rapprochement avec les relevés bancaires. Avec Beancount, on peut régulièrement rapprocher les comptes en utilisant des assertions de solde ou la fonctionnalité de documents. Par exemple, chaque mois, vous pourriez ajouter une entrée
balance Assets:Bank:Checking <date> <solde>pour confirmer que votre grand livre correspond au relevé de la banque à la fin du mois. L'outilbean-check(ou l'affichage des erreurs de Fava) vous alertera si les choses ne correspondent pas. Un utilisateur mentionne faire un rapprochement mensuel de tous les comptes, ce qui « aide à détecter toute activité inhabituelle » – une bonne pratique d'hygiène en finances personnelles que Beancount facilite. - Automatisation : Les personnes férues de technologie ont automatisé de grandes parties de leur flux de travail de finances personnelles avec Beancount. En utilisant des importateurs, des tâches cron et peut-être un peu de Python, vous pouvez configurer votre système pour que, par exemple, chaque jour vos transactions bancaires soient récupérées (certains utilisent OFX ou des API) et ajoutées à votre fichier Beancount, catégorisées par règles. Au fil du temps, votre grand livre devient principalement auto-mis à jour, et vous n'avez plus qu'à le réviser et l'ajuster si nécessaire. Un membre de la communauté sur Hacker News a partagé qu'après 3 ans, ses livres Beancount étaient « automatiques à 95 % ». Ce niveau d'automatisation est possible grâce à l'ouverture du texte brut de Beancount et à ses capacités de script.
Les utilisateurs de finances personnelles choisissent souvent Beancount plutôt que des feuilles de calcul ou des applications parce que cela leur donne une propriété complète des données (aucune dépendance à un service cloud qui pourrait fermer – une préoccupation alors que Mint a été abandonné, par exemple) et parce que la profondeur de l'analyse est plus grande lorsque toutes vos données sont intégrées. La courbe d'apprentissage n'est pas triviale – il faut apprendre les bases de la comptabilité et la syntaxe Beancount – mais des ressources comme la documentation officielle et les tutoriels communautaires aident les nouveaux venus à démarrer. Une fois configuré, beaucoup trouvent que cela apporte une tranquillité d'esprit d'avoir une image claire et fiable de leurs finances à tout moment.
Comptabilité de petites entreprises
Utiliser Beancount pour une petite entreprise (ou une organisation à but non lucratif, un club, etc.) est moins courant que l'utilisation personnelle, mais c'est certainement possible et certains l'ont fait avec succès. Le cadre en partie double de Beancount est en fait le même système qui sous-tend la comptabilité d'entreprise, juste sans certaines des fonctionnalités de niveau supérieur fournies par les logiciels comptables dédiés (comme les modules de facturation ou les intégrations de paie). Voici comment Beancount peut s'intégrer dans un contexte de petite entreprise :
- Grand livre général et états financiers : Une petite entreprise peut traiter le fichier Beancount comme son grand livre général. Vous auriez des comptes d'actifs pour les comptes bancaires, les comptes clients, éventuellement l'inventaire ; des comptes de passif pour les cartes de crédit, les prêts, les comptes fournisseurs ; des capitaux propres pour le capital du propriétaire ; des comptes de revenus pour les ventes ou services ; et des comptes de dépenses pour toutes les dépenses professionnelles. En tenant ce grand livre, vous pouvez produire un compte de résultat (bénéfices et pertes) et un bilan à tout moment en utilisant les rapports ou requêtes de Beancount. En fait, les rapports intégrés de Beancount ou Fava peuvent générer un bilan et un compte de résultat en quelques secondes, parfaitement conformes aux principes comptables. Cela peut être suffisant pour une petite opération pour évaluer la rentabilité, la situation financière et les flux de trésorerie (avec un peu de requête pour les flux de trésorerie, car les états de flux de trésorerie directs ne sont pas intégrés mais peuvent être dérivés).
- Factures et comptes clients/fournisseurs : Beancount n'a pas de système de facturation intégré ; les utilisateurs géreraient généralement la facturation en dehors (par exemple, créer des factures dans Word ou une application de facturation) puis enregistreraient les résultats dans Beancount. Par exemple, lorsque vous émettez une facture, vous enregistreriez une écriture débitant les comptes clients et créditant les revenus. Lorsque le paiement arrive, vous débitez le compte Caisse/Banque et créditez les comptes clients. De cette façon, vous pouvez suivre les créances en souffrance en consultant le solde du compte A/R. La même chose s'applique aux factures (A/P). Bien que ce soit plus manuel que les logiciels comptables spécialisés (qui peuvent envoyer des rappels ou s'intégrer aux e-mails), c'est tout à fait faisable. Certains utilisateurs ont partagé des modèles ou des flux de travail sur la façon dont ils gèrent les factures avec Beancount et s'assurent de ne pas manquer les factures ouvertes (par exemple, en utilisant des métadonnées ou des requêtes personnalisées pour lister les factures impayées).
- Inventaire ou coût des marchandises vendues : Pour les entreprises qui vendent des produits, Beancount peut suivre les achats et les ventes d'inventaire, mais cela nécessite des écritures disciplinées. Vous pourriez utiliser les fonctionnalités de comptabilité
Inventaireet de coût : l'achat d'inventaire augmente un compte d'actifs (avec le coût attaché aux articles), sa vente déplace le coût vers une dépense (COGS) et enregistre les revenus. Parce que Beancount insiste sur la correspondance des lots, il appliquera une réduction correcte de l'inventaire avec le bon coût, ce qui peut en fait garantir que vos calculs de bénéfice brut sont exacts si c'est bien fait. Cependant, il n'y a pas de suivi automatisé des SKU ou autre – tout est au niveau financier (quantité et coût). - Paie et transactions complexes : Beancount peut enregistrer les transactions de paie (charges salariales, retenues fiscales, etc.), mais calculer ces chiffres pourrait se faire en externe ou via un autre outil, puis être simplement réservé dans Beancount. Pour une très petite entreprise (disons un ou deux employés), c'est gérable. Vous enregistreriez, par exemple, une seule écriture de journal par période de paie qui répartit les salaires, les impôts retenus, les charges patronales, l'argent payé, etc. Le faire manuellement est similaire à la façon dont on pourrait le faire dans QuickBooks avec des écritures de journal – cela nécessite de savoir quels comptes toucher.
- Multi-utilisateur et audit : Un défi dans un contexte commercial est si plusieurs personnes doivent accéder aux livres ou si un comptable doit les examiner. Étant donné que Beancount est un fichier texte, il n'est pas multi-utilisateur en temps réel. Cependant, héberger le fichier dans un dépôt Git peut permettre la collaboration : chaque personne peut éditer et commiter, et les différences peuvent être fusionnées.
- Conformité réglementaire : Pour la déclaration fiscale ou la conformité, les données de Beancount peuvent être utilisées pour générer les rapports nécessaires, mais cela peut nécessiter des requêtes ou des plugins personnalisés. Nous avons vu l'exemple d'un plugin communautaire pour les rapports de conformité du gouvernement indien, et un pour les rapports FBAR FinCEN. Cela montre qu'avec des efforts, Beancount peut être adapté pour répondre à des exigences de déclaration spécifiques. Les petites entreprises dans des juridictions aux exigences simples (comptabilité de caisse ou comptabilité d'exercice de base) peuvent certainement tenir leurs livres dans Beancount et produire des états financiers pour les déclarations fiscales. Cependant, des fonctionnalités comme les plans d'amortissement ou l'amortissement peuvent nécessiter que vous écriviez vos propres écritures ou utilisiez un plugin (les plugins d'amortissement de Dave Stephens aident à automatiser cela par exemple). Il n'y a pas de GUI pour « cliquer sur amortir un actif » comme dans certains logiciels comptables ; vous encoderez l'amortissement comme des transactions (ce qui en un sens le démystifie – tout est une écriture que vous pouvez inspecter).
En pratique, de nombreux propriétaires de petites entreprises férues de technologie ont utilisé Beancount (ou Ledger/hledger) s'ils préfèrent le contrôle et la transparence à la commodité de QuickBooks. Une discussion sur Reddit a noté que pour une comptabilité standard de petite entreprise avec un volume limité de transactions, Beancount fonctionne très bien. Le facteur limitant est généralement le niveau de confort – si le propriétaire de l'entreprise (ou son comptable) est à l'aise avec un outil basé sur du texte. Un avantage est le coût : Beancount est gratuit, alors que les logiciels comptables peuvent être coûteux pour une petite entreprise. D'un autre côté, l'absence de support officiel et la nature DIY signifient qu'il convient le mieux à ceux qui sont à la fois propriétaires de l'entreprise et un peu férus de technique. Pour les freelances ou les entrepreneurs individuels ayant des compétences en programmation, Beancount peut être un choix attrayant pour gérer les finances sans dépendre de services de comptabilité en nuage.
Des approches hybrides sont également possibles : certaines petites entreprises utilisent un système officiel pour la facturation ou la paie, mais importent périodiquement les données dans Beancount pour l'analyse et l'archivage. De cette façon, ils obtiennent le meilleur des deux mondes – la conformité et la facilité pour les opérations quotidiennes, plus la puissance de Beancount pour une vision consolidée.
En résumé, Beancount peut gérer la comptabilité de petites entreprises, à condition que l'utilisateur soit prêt à gérer manuellement des choses que les logiciels commerciaux automatisent. Il garantit un haut degré de transparence – vous comprenez profondément vos livres parce que vous les écrivez – et pour un utilisateur diligent, il peut produire des livres impeccables. Les utilisateurs personnels et professionnels bénéficient des forces centrales de Beancount : un moteur comptable fiable, une piste d'audit complète et la flexibilité de s'adapter à des scénarios uniques (via des scripts et des plugins). Qu'il s'agisse de suivre un budget familial ou les finances d'une startup, Beancount offre une boîte à outils pour le faire avec précision et ouverture.
Communauté et activité de développement
Beancount a une communauté dédiée et une histoire de développement qui reflète sa nature open source, de niche mais passionnée. Voici les points clés concernant sa communauté, ses mainteneurs et ses projets connexes :
-
Maintenance du projet : L'auteur principal de Beancount est Martin Blais, qui a commencé le projet vers 2007 et l'a guidé à travers plusieurs versions. Le développement a été longtemps largement un effort individuel (en dehors des contributions communautaires de correctifs). La philosophie de Martin était de construire un outil comptable « utile d'abord pour moi, ainsi que pour d'autres, de la manière la plus simple et la plus durable ». Cette motivation personnelle a maintenu le projet comme un travail d'amour. En 2025, Martin Blais est toujours le mainteneur principal (son nom apparaît sur les commits et il répond aux questions sur la liste de diffusion/suivi des problèmes), mais l'écosystème autour de Beancount compte de nombreux autres contributeurs dans leurs projets respectifs.
-
GitHub et dépôts : Le code source est hébergé sur GitHub sous le dépôt
beancount/beancount. Le projet est sous licence GPL-2.0 et a attiré un nombre modeste de contributeurs au fil des ans. À la mi-2024, Beancount Version 3 a été officiellement publiée comme nouvelle branche stable. Cette version a impliqué la division de certains composants : par exemple, les dépôts beangulp (pour les importateurs) et beanquery (pour l'outil de requête) font maintenant partie de l'organisation GitHubbeancount, maintenus quelque peu indépendamment. Le dépôt principal de Beancount se concentre sur le moteur comptable de base et l'analyseur de fichiers. En 2025, le GitHub de Beancount montre des discussions actives sur les problèmes et un certain développement en cours – bien que le volume ne soit pas élevé, les problèmes et les demandes de tirage arrivent au compte-gouttes, et des mises à jour occasionnelles sont apportées pour corriger des bugs ou affiner des fonctionnalités. -
Développement de Fava : Fava, l'interface web, a commencé comme un projet séparé (créé par Dominic Aumayr, qui l'a protégé par copyright en 2016). Il a sa propre communauté de contributeurs et est également sur GitHub sous
beancount/fava. Les mainteneurs et contributeurs de Fava (par exemple, Jakob Schnetz, Stefan Otte, et d'autres ces dernières années) ont activement amélioré l'interface, avec des versions tous les quelques mois. Le chat Gitter de Fava (lié sur la documentation de Fava) et son suivi des problèmes GitHub sont des endroits où les utilisateurs et les développeurs discutent des nouvelles fonctionnalités ou des bugs. Le projet accueille les contributions, comme en témoigne une note du CHANGELOG remerciant plusieurs membres de la communauté pour leurs PR. L'alignement étroit de Fava avec le développement de Beancount (comme l'ajout rapide du support de Beancount v3 et de la nouvelle syntaxe beanquery) indique une bonne collaboration entre les deux projets. -
Listes de diffusion et forums : Beancount a une liste de diffusion officielle (précédemment sur Google Groups, intitulée « Beancount » ou parfois discutée sur la liste générale Ledger). Cette liste de diffusion est une mine de connaissances – les utilisateurs posent des questions sur la façon de modéliser certains scénarios, signalent des bugs et partagent des astuces. Martin Blais est connu pour répondre sur la liste de diffusion avec des explications détaillées. De plus, la communauté plus large de la comptabilité en texte brut se recoupe fortement. La liste de diffusion Ledger CLI accueille souvent des questions sur Beancount également, et il y a un forum sur plaintextaccounting.org et un subreddit r/plaintextaccounting où les sujets Beancount reviennent fréquemment. Les utilisateurs sur ces plateformes discutent des comparaisons, partagent des configurations personnelles et aident les nouveaux venus. Le ton général de la communauté est très coopératif – les utilisateurs de Beancount aident souvent les utilisateurs de Ledger et vice versa, reconnaissant que tous ces outils ont des objectifs similaires.
-
Groupes de discussion : Outre les listes de diffusion, il existe des canaux de discussion comme le Slack/Discord Plaintext Accounting (organisé par la communauté) et le Gitter de Fava. Ceux-ci sont moins formels, plus en temps réel, pour obtenir de l'aide ou discuter de fonctionnalités. Par exemple, on pourrait aller sur le Slack pour demander si quelqu'un a un importateur pour une banque spécifique. Il y a aussi un canal Matrix/IRC (historiquement #ledger ou #beancount sur IRC) où certains utilisateurs de longue date trainent. Bien que moins peuplé que les communautés de logiciels grand public, ces canaux ont des gens bien informés qui peuvent souvent répondre à des questions comptables obscures.
-
Contributeurs et membres clés de la communauté : Quelques noms se démarquent dans la communauté Beancount :
- « Redstreet » (Red S) : Un contributeur prolifique qui a écrit de nombreux plugins (comme
beancount-balexpr,sellgains, et d'autres) et fournit souvent du support. Il maintient également un ensemble de scripts d'importation et un outil appelébean-downloadpour télécharger des relevés. - Vasily M (Evernight) : Auteur de certains cadres d'importation et plugins comme
beancount-valuation, et contributions à Fava concernant les investissements. - Stefano Zacchiroli (zack) : Un développeur Debian qui a créé le mode beancount pour Emacs et son propre dépôt de plugins. Il a également défendu la comptabilité en texte brut dans des contextes académiques.
- Simon Michael : Bien que principalement le responsable de hledger, il gère plaintextaccounting.org qui inclut Beancount. Cette pollinisation croisée a aidé à faire connaître Beancount aux utilisateurs de Ledger/hledger.
- Frank hell (Tarioch) : Contributeur des Tarioch Beancount Tools, un ensemble majeur d'importateurs et de récupérateurs de prix, surtout pour les institutions européennes.
- Siddhant Goel : Un membre de la communauté qui blogue sur Beancount (par exemple, son guide de migration vers v3) et maintient certains importateurs. Ses articles de blog ont aidé de nombreux nouveaux utilisateurs.
Ces personnes et beaucoup d'autres contribuent au code, à la documentation et à l'aide sur les forums, rendant l'écosystème dynamique malgré sa taille relativement petite.
- « Redstreet » (Red S) : Un contributeur prolifique qui a écrit de nombreux plugins (comme
-
Statistiques GitHub et forks : Le dépôt GitHub de Beancount a accumulé quelques centaines d'étoiles (indiquant un intérêt) et des forks. Les forks notables de Beancount lui-même sont rares – il n'y a pas de fork divergent bien connu qui tente d'être « Beancount mais avec la fonctionnalité X ». Au lieu de cela, lorsque les utilisateurs voulaient quelque chose de différent, ils écrivaient soit un plugin, soit utilisaient un autre outil (comme hledger) plutôt que de forker Beancount. On pourrait considérer hledger comme une sorte de fork de Ledger (pas de Beancount) et Beancount lui-même comme une ré-imagination indépendante des idées de Ledger, mais dans le dépôt de Beancount, il n'y a pas de grands projets scindés. La communauté s'est généralement coalescée autour du dépôt principal et l'a étendu via l'interface de plugin au lieu de fragmenter le code. Cela est probablement dû au fait que Martin Blais était ouvert aux contributions externes (ses docs ont même une section reconnaissant les contributions et modules externes) et que l'architecture de plugin rendait inutile de maintenir un fork pour la plupart des nouvelles fonctionnalités.
-
Ressources communautaires : Il existe plusieurs ressources de haute qualité pour apprendre et utiliser Beancount créées par la communauté :
-
La documentation Beancount sur GitHub Pages (et les Google Docs sources que Martin maintient) – très complète, incluant la théorie sur la comptabilité et comment Beancount l'implémente.
-
De nombreux articles de blog et notes personnelles – par exemple, LWN.net a publié un article « Counting beans… with Beancount », et de nombreux blogs personnels (comme listés dans la section « Blog Posts » d'Awesome Beancount) partagent des expériences et des astuces. Cela aide à construire la connaissance et attire de nouveaux utilisateurs.
-
Discussions et présentations : Beancount a été présenté lors de meetups et de conférences (par exemple, une conférence PyMunich 2018 sur la gestion des finances avec Python/Beancount). Ces discussions présentent l'outil à des publics plus larges et suscitent souvent l'intérêt sur des forums comme Hacker News.
-
-
Projets connexes notables : Outre Fava, certains autres projets liés à Beancount ont leurs propres communautés :
- Le site Plain Text Accounting – maintenu par Simon Michael, il agrège des informations sur tous ces outils et a un forum où les gens partagent leur utilisation de divers outils, y compris Beancount.
- Intégration d'outils financiers : Certains utilisateurs intègrent Beancount avec des outils de veille économique ou des bases de données. Par exemple, un fil Google Groups détaille l'utilisation de PostgreSQL avec les données Beancount via des fonctions personnalisées. Bien que ce ne soit pas courant, cela montre l'esprit expérimental de la communauté pour repousser les capacités de Beancount (par exemple, pour traiter de très grands ensembles de données ou des requêtes complexes au-delà de l'intégré).
En résumé, la communauté de Beancount, bien que plus petite que celles des grands projets open source, est très engagée et compétente. Le projet bénéficie d'un flux constant d'améliorations et de canaux de support très utiles. L'éthos collaboratif (partage d'importateurs, écriture de plugins, réponse aux questions) signifie qu'un nouveau venu en 2025 peut s'appuyer sur un travail préalable important et la sagesse de la communauté pour mettre en place son système comptable. Le développement est actif au sens écosystémique – versions de Fava, développement de plugins, etc. – même si les changements du noyau sont plus occasionnels. La croissance de l'écosystème (comme en témoigne la liste Awesome Beancount de dizaines d'outils) témoigne d'une communauté saine rendant Beancount toujours plus capable.
Développements récents et fonctionnalités à venir
Pour la recherche de Beancount.io sur l'automatisation de la comptabilité, visitez Bean Labs pour explorer ses journaux de recherche et ses méthodes.
Au 15/09/2026, l'écosystème Beancount continue d'évoluer sur la ligne modulaire v3. Voici les développements notables depuis la coupe v3 de mi-2024 et ce qui reste encore sur la feuille de route :
-
Beancount 3.2.x (2025–2026) : Après la modularisation de la pile par 3.0, PyPI a avancé à travers 3.2.0 (2025-09-14) et les versions d'empaquetage suivantes 3.2.1–3.2.3 (CHANGES, PyPI). Le travail visible par l'utilisateur dans cette fenêtre inclut le formatage, les raffinements de tolérance/précision, et une couverture Python/CI plus large – pas une réécriture du noyau C++. Associez les mises à niveau avec les versions majeures correspondantes de
beanquery/beangulp. -
Publication de Beancount 3.0 (2024) : Après une longue période où Beancount 2.x était la norme, la version 3 a été officiellement publiée à la mi-2024. C'était une étape majeure car v3 représente une simplification et une modernisation du code. Martin Blais avait envisagé v3 comme une occasion de « réorganiser et simplifier » davantage le système. Bien qu'on ait pensé à l'origine que ce serait une grande réécriture, en pratique, la mise à jour pour les utilisateurs n'a pas été trop perturbatrice. Les principaux changements étaient sous le capot : un nouvel analyseur, des améliorations de performance et l'extraction de composants optionnels hors du noyau. La publication a été déployée progressivement (v3 était en bêta depuis 2022, mais en juillet 2024, elle est devenue la version stable recommandée). Des utilisateurs comme Siddhant Goel ont rapporté que la migration de 2.x à 3.x était « pour la plupart sans incident » avec seulement quelques changements de flux de travail.
-
Modularisation – les outils déplacés vers des paquets séparés : L'un des grands changements avec Beancount 3 est que de nombreux outils qui vivaient dans le dépôt monolithique ont été détachés. Par exemple, bean-query est maintenant fourni par le paquet
beanquery, et beancount.ingest a été remplacé par le paquetbeangulp. Des commandes commebean-extractetbean-identify(pour les importations) ont été supprimées du noyau Beancount. Au lieu de cela, la philosophie est d'utiliser des scripts autonomes pour l'importation. Cela signifie que si vous passez à v3, vous installereriezbeangulpet exécuteriez des scripts d'importation (chaque importateur étant essentiellement un petit programme) plutôt que d'avoir un fichier de configuration centralbean-extract. De même, les requêtes sont exécutées viabeanqueryqui peut être installé et mis à jour indépendamment du noyau Beancount. Cette approche modulaire a été conçue pour faciliter la maintenance et encourager les contributions communautaires. Elle a également allégé le noyau de Beancount, de sorte que le noyau se concentre purement sur l'analyse et la logique comptable, tandis que les fonctionnalités auxiliaires peuvent évoluer séparément. Du point de vue de l'utilisateur, après la mise à niveau, il faut ajuster les commandes (par exemple, utiliserbean-queryde beanquery, ou utiliser Fava qui abstrait cela de toute façon). Le journal des modifications de Fava note explicitement ces changements : Fava dépend maintenant de beanquery et beangulp, et il gère les flux de travail d'importation différemment pour Beancount 3 vs 2. -
Améliorations de performance : La performance était l'une des motivations pour revisiter la conception de Beancount. Le plan v3 (comme décrit dans le document « V3 goals » de Martin) incluait l'optimisation de l'analyseur et éventuellement rendre le processus de chargement plus rapide et moins gourmand en mémoire. En 2025, certaines de ces améliorations se sont concrétisées. Anedcotiquement, les utilisateurs avec de très grands grands livres (des dizaines de milliers de transactions, ou beaucoup de transactions boursières) ont rapporté de meilleures performances avec la dernière version. Par exemple, un utilisateur traitant des « transactions de micro-investissement » qui a rencontré des problèmes de performance a noté ces préoccupations sur le Google Group – ce type de retour a probablement informé v3. Le nouvel analyseur est plus efficace et écrit de manière plus claire, ce qui pourrait être étendu à l'avenir. De plus, Fava 1.29 a déplacé vers un mécanisme de surveillance de fichiers plus efficace (en utilisant la bibliothèque
watchfiles) pour améliorer la réactivité lorsque le grand livre change. À l'avenir, la communauté pourrait explorer l'analyse incrémentale (ne retraiter que les parties modifiées du fichier au lieu de tout) pour gérer plus rapidement les grands grands livres – cela a été suggéré dans les docs comme idée « serveur Beancount / réservation incrémentale ». -
Améliorations du suivi des investissements : Il y a eu un travail continu pour améliorer les rapports d'investissement et de portefeuille. Par exemple, la gestion de la base de coût moyenne par rapport à FIFO a été longuement discutée. Bien que Beancount impose la correspondance des lots, certains utilisateurs préfèrent le coût moyen pour certaines juridictions. Une proposition et une discussion existent pour rendre la réservation de base de coût plus flexible (éventuellement via un plugin ou une option). En 2025, aucun commutateur intégré pour le coût moyen n'est présent, mais le travail de base dans v3 (la refonte de la réservation) facilite l'implémentation par les plugins. Un plugin communautaire « Gains Minimizer » a été publié qui peut suggérer quels lots vendre pour minimiser les impôts, montrant le type d'outillage avancé construit autour des investissements. Fava, également, a ajouté des fonctionnalités comme une extension de résumé de portefeuille (avec des calculs de taux de rendement). En termes de fonctionnalités à venir, on peut s'attendre à plus dans ce domaine : éventuellement des suggestions de rééquilibrage automatisé de portefeuille ou une analyse des risques, probablement sous forme d'outils externes lisant les données Beancount (car toutes les données y sont).
-
Nouveaux plugins et extensions : L'écosystème de plugins continue de croître. Les ajouts notables récents incluent :
- Outils de rapport budgétaire – par exemple, un simple rapporteur budgétaire CLI si l'on n'utilise pas l'interface de Fava.
- Chiffrement et sécurité – la configuration fava-encrypt, permettant d'héberger Fava en ligne avec le grand livre chiffré au repos, a été introduite, répondant à la préoccupation de l'auto-hébergement de vos finances.
- Plugins de qualité de vie – comme
autobean-format(un nouveau formateur qui peut gérer plus de cas limites en analysant et réimprimant le fichier), et l'intégration debeancheckdans les éditeurs (flymake pour Emacs).
À l'avenir, la communauté est susceptible de continuer à combler les lacunes via des plugins. Par exemple, nous pourrions voir plus de plugins liés aux impôts (certains utilisateurs ont partagé des scripts pour des choses comme le calcul des ventes de lavage ou des rapports fiscaux locaux spécifiques).
-
Fonctionnalités à venir potentielles : Sur la base des discussions sur le suivi des problèmes et la liste de diffusion, quelques idées sont à l'horizon (bien que non garanties) :
- Résolution temporelle : Actuellement, Beancount ne suit que les dates (pas d'horodatages) pour les transactions. Il y a eu des questions sur l'ajout de l'heure (pour les transactions boursières ou l'ordre des transactions le même jour). Martin Blais a explicitement décidé que les horodatages inférieurs au jour étaient hors de portée pour garder les choses simples. Cela est susceptible de ne pas changer bientôt – donc les prochaines versions probablement n'ajouteront pas la résolution temporelle, s'en tenant à la position que si vous avez besoin de l'heure, vous l'incorporez dans la narration ou un compte.
- Édition GUI améliorée : Fava améliore continuellement ses capacités d'édition. Une possibilité est un éditeur web plus complet (avec auto-suggestion, peut-être une saisie par formulaire pour les nouvelles transactions). Le travail de base utilisant tree-sitter dans l'éditeur de Fava a été posé. Nous pourrions voir Fava devenir non seulement un visualiseur mais un éditeur plus puissant, réduisant le besoin d'ouvrir un éditeur de texte pour de nombreuses tâches.
- Meilleur support multi-grands livres : Certains utilisateurs maintiennent plusieurs fichiers Beancount (pour différentes entités ou pour diviser le personnel et le professionnel). Actuellement, inclure des fichiers est possible mais avait des limitations (plugins dans les fichiers inclus, etc.). Un plugin récent
autobean.includea été créé pour inclure en toute sécurité des grands livres externes. À l'avenir, nous pourrions voir un support de première classe pour les configurations multi-fichiers – peut-être un concept de « projet » Beancount avec plusieurs fichiers (cela est suggéré par des fonctionnalités comme le paramètrebeancount.mainBeanFilede l'extension VSCode). Cela aiderait ceux qui tiennent une comptabilité multi-entités ou qui veulent modulariser leur grand livre. - Calcul en temps réel ou incrémental : À mesure que les grands livres grandissent, la capacité de recalculer rapidement les rapports devient importante. Il y a une idée d'un serveur Beancount qui reste en cours d'exécution et met à jour les résultats au fur et à mesure que les transactions changent. Cela pourrait se manifester comme une optimisation dans Fava ou un démon que les plugins d'éditeur peuvent interroger. Peut-être qu'une future version de Fava tirera parti d'un processus Beancount en cours d'exécution continue pour rendre l'interface plus réactive pour les énormes grands livres.
- Comptabilité de fonds / fonctionnalités à but non lucratif : Il y a eu une proposition d'amélioration concernant la comptabilité de fonds dans Beancount. Les organisations à but non lucratif ont des besoins comptables (fonds restreints vs non restreints) qui pourraient potentiellement être modélisés avec la hiérarchie de comptes ou d'étiquettes de Beancount. La discussion n'a pas encore conduit à des fonctionnalités intégrées, mais si plus d'ONG adoptent Beancount, cela pourrait conduire à de nouvelles capacités (peut-être juste des bonnes pratiques documentées ou des plugins pour le suivi des soldes de fonds).
-
Perspectives à long terme : Martin Blais a laissé entendre qu'il voit l'avenir de Beancount dans la transformation du noyau en un moteur et le déplacement de plus de fonctionnalités vers des plugins. C'est cohérent avec ce que nous voyons (modularisation en v3). Donc, une « fonctionnalité à venir » en termes philosophiques est une plus grande extensibilité – peut-être même permettre aux plugins de définir de nouveaux types de directives ou d'étendre la syntaxe de manière contrôlée. Si cela se produit, le noyau de Beancount pourrait rester relativement petit et stable, tandis que l'écosystème fournira la plupart des nouvelles fonctionnalités sous forme de modules complémentaires. Cela pourrait conduire à un marché de plugins ou à une liste plus centralisée de plugins afin que les utilisateurs puissent choisir (la liste Awesome Beancount est un début).
En conclusion, l'écosystème Beancount en 2026 est actif et en évolution. La publication de Beancount 3.0 a été un événement fondateur majeur ; la ligne 3.2.x et la position de Fava uniquement Beancount 3 (depuis la 1.30.13) sont la base pratique à citer aujourd'hui. Les améliorations en matière de performance, d'outillage et de convivialité (surtout via Fava et le CLI bea) continuent d'abaisser la barrière d'entrée. Bien que Beancount reste un outil qui nécessite une certaine expertise, il est beaucoup plus accessible maintenant qu'il y a quelques années, grâce à ces développements. Les fonctionnalités à venir se concentreront probablement sur le raffinement de l'expérience – performances plus rapides, meilleures intégrations et extensions spécialisées – plutôt que sur des changements radicaux de la philosophie centrale. La trajectoire de la communauté suggère que Beancount continuera de mûrir en tant que pièce maîtresse de la comptabilité en texte brut, trouvant un équilibre entre la puissance austère de la comptabilité en partie double et la commodité des logiciels modernes. Comme l'a fait remarquer un utilisateur sur Hacker News, la comptabilité en texte brut vous donne des « super-pouvoirs » pour comprendre vos finances – et les améliorations récentes et futures de Beancount visent à rendre ces super-pouvoirs plus faciles à utiliser pour tous.
Sources : Documentation et dépôt Beancount ; Documentation et journal des modifications de Fava ; « A Comparison of Beancount and Ledger » de Martin Blais ; Liste de ressources Awesome Beancount ; Expériences utilisateurs et rapports communautaires ; Versions des paquets PyPI vérifiées le 15/09/2026.





