Beancount vs hledger : quel outil de comptabilité en texte brut vous convient le mieux ?
Si vous avez décidé de gérer vos finances avec la comptabilité en texte brut, vous avez déjà fait un choix judicieux. Vos données financières résideront dans des fichiers lisibles par l'homme que vous contrôlez totalement, suivis par un système de contrôle de version et sans dépendance vis-à-vis d'un fournisseur. Mais la question suivante se pose désormais : quel outil devriez-vous utiliser ?
Beancount et hledger sont les deux outils de comptabilité en texte brut (PTA) les plus populaires aujourd'hui. Tous deux sont open-source, activement maintenus et capables de tout gérer, des budgets personnels aux portefeuilles d'investissement complexes. Pourtant, ils adoptent des approches fondamentalement différentes pour enregistrer, valider et analyser vos données financières.
Ce guide détaille les principales différences afin que vous puissiez choisir celui qui correspond à votre flux de travail, à votre niveau d'expérience et à vos besoins de suivi financier.
La philosophie centrale : rigueur vs flexibilité
La plus grande différence entre Beancount et hledger n'est pas une fonctionnalité, c'est un état d'esprit.
Beancount est le professeur sévère. Il part du principe que vous ferez des erreurs de saisie de données et intègre des garde-fous pour les détecter rapidement. Chaque compte doit être explicitement ouvert avant utilisation. Chaque transaction doit s'équilibrer à zéro. Les devises doivent suivre un format rigide. Si quelque chose ne semble pas correct, Beancount refusera de traiter votre fichier jusqu'à ce que vous le corrigiez.
hledger est l'ami indulgent. Il utilise une syntaxe plus souple, vous permet de ne pas déclarer les comptes au préalable et peut même déduire les écritures d'équilibrage. Vous pouvez commencer à suivre vos finances avec une configuration minimale et ajouter progressivement de la structure à mesure que vos besoins augmentent.
Aucune des deux approches n'est objectivement meilleure. Si vous tenez à corriger les erreurs avant qu'elles ne se transforment en heures de débogage, la rigueur de Beancount est un atout. Si vous voulez commencer rapidement et préférez la flexibilité, la permissivité de hledger est un avantage.
Syntaxe et format de données
Les deux outils stockent les transactions dans des fichiers texte brut, mais les règles de syntaxe diffèrent considérablement.
Syntaxe Beancount
2026-03-15 * "Whole Foods" "Weekly groceries"
Expenses:Food:Groceries 85.42 USD
Liabilities:CreditCard:Visa
Règles clés :
- Les dates utilisent le format ISO 8601 (
AAAA-MM-JJ) - Les devises doivent être en lettres majuscules (ex :
USD,EUR) — pas de symboles comme$ou€ - Les noms de comptes nécessitent au moins deux composants séparés par des deux-points (ex :
Expenses:Food) - Les descriptions doivent être des chaînes de caractères entre guillemets
- Tous les comptes doivent être explicitement ouverts avec une directive
open
Syntaxe hledger
2026-03-15 Whole Foods | Weekly groceries
expenses:food:groceries $85.42
liabilities:creditcard:visa
Règles clés :
- Formats de date plus flexibles
- Les symboles monétaires comme
$et€sont autorisés - Les noms de comptes peuvent être en minuscules et de forme plus libre
- Les descriptions n'ont pas besoin de guillemets
- Pas besoin de pré-déclarer les comptes
Ce qu'il faut retenir : la syntaxe plus stricte de Beancount signifie plus de travail initial mais moins d'ambiguïtés. La syntaxe souple de hledger est plus facile à prendre en main mais nécessite plus de discipline pour rester cohérente.
Intégrité et validation des données
C'est ici que Beancount se différencie véritablement.
Assertions de solde
Les deux outils prennent en charge les assertions de solde (des instructions qui vérifient que votre solde enregistré correspond à votre relevé bancaire). Mais ils fonctionnent différemment.
Beancount utilise des assertions de solde datées qui sont indépendantes de l'ordre. Vous pouvez réorganiser vos fichiers de transactions comme bon vous semble, et les assertions fonctionneront toujours correctement. Les assertions de hledger dépendent de l'ordre dans le fichier, ce qui signifie que le déplacement de transactions peut les invalider.
Suivi des investissements
Pour toute personne suivant des investissements, cela compte beaucoup. Beancount impose une comptabilisation stricte des stocks : vous ne pouvez pas vendre des actions que vous n'avez jamais achetées, et il suit le prix de revient avec précision. Cela évite la « fuite de la base de coût », un bogue subtil où vos calculs de plus-values s'écartent de la réalité.
hledger gère les matières premières (commodities) et les lots mais avec moins de contraintes. Il est plus flexible, ce qui signifie qu'il est aussi plus indulgent envers les erreurs qui pourraient passer inaperçues jusqu'à la période des impôts.
Catégories de comptes
Beancount exige que chaque compte appartienne à l'une des cinq catégories suivantes : Actifs (Assets), Passifs (Liabilities), Revenus (Income), Dépenses (Expenses) ou Capitaux propres (Equity). Cette contrainte lui permet de générer automatiquement des bilans et des comptes de résultat corrects.
hledger autorise des hiérarchies de comptes arbitraires sans catégories racines obligatoires. Cela vous donne plus de libert é, mais signifie que vous devez suivre manuellement les conventions pour obtenir des rapports financiers significatifs.
Interface utilisateur et rapports
Beancount + Fava
La fonctionnalité phare de Beancount est Fava, une interface web élégante qui propose :
- Des graphiques et diagrammes interactifs (tendances de la valeur nette, répartition des dépenses, revenus vs dépenses)
- Des visualisations en carte proportionnelle (treemaps) pour les catégories de dépenses
- Un filtrage puissant par compte, étiquette (tag), période et bénéficiaire
- Un langage de requête pour des rapports personnalisés
- Un éditeur intégré pour vos fichiers de grand livre
Fava est largement considéré comme la meilleure interface utilisateur de l'écosystème de la comptabilité en texte brut. Si vous êtes une personne visuelle qui souhaite des tableaux de bord et des graphiques, c'est un argument majeur en faveur de Beancount.
Interfaces hledger
hledger adopte une approche multi-interface :
- CLI : Des rapports complets en ligne de commande avec des dizaines de commandes intégrées (
balance,register,incomestatement,cashflow, et plus encore) - hledger-ui : Une interface textuelle (TUI) pour parcourir les comptes et les transactions de manière interactive
- hledger-web : Une interface web plus simple pour la consultation de base et la saisie de données
Le CLI de hledger est plus puissant nativement que celui de Beancount. Si vous travaillez principalement dans le terminal et que vous souhaitez des rapports rapides et scriptables, hledger répond présent.
Performance
hledger est écrit en Haskell et traite environ 25 000 transactions par seconde. Pour la plupart des utilisateurs de finances personnelles, les deux outils sont quasiment instantanés. Mais si vous gérez un ensemble de données volumineux — des années de transactions sur plusieurs entités — la vitesse brute de hledger lui donne un avantage.
Beancount (v3) a été réécrit en C++ pour le parseur de base, améliorant considérablement les performances par rapport à l'implémentation originale en Python. Pour une utilisation typique personnelle ou de petite entreprise, vous ne remarquerez pas de différence.
Extensibilité et Plugins
Plugins Beancount
Beancount possède un système de plugins Python natif remarquablement puissant. Les plugins peuvent :
- Ventiler automatiquement les transactions (ex: dépenses partagées)
- Générer des transactions récurrentes
- Appliquer des règles de validation personnalisées
- Transformer les données dans le pipeline de traitement
L'écosystème Python signifie que vous pouvez exploiter n'importe quelle bibliothèque Python dans vos plugins. Cela rend Beancount hautement personnalisable pour les scénarios financiers complexes.
Extensions hledger
hledger offre une extensibilité via :
- Des règles d'importation CSV pour l'automatisation des relevés bancaires
- Des scripts de rapport personnalisés utilisant la sortie du CLI
- Une API HTTP-JSON pour créer des intégrations
- Des commandes additionnelles basées sur Haskell
Le système d'importation CSV de hledger est particulièrement réputé — il rend l'automatisation de l'importation des relevés bancaires simple grâce à des fichiers de règles qui font correspondre les colonnes CSV aux imputations comptables.
Prise en main et courbe d'apprentissage
hledger : Une barrière à l'entrée plus faible
hledger est généralement plus facile à prendre en main :
- Installation d'un binaire unique (excellent support multiplateforme, y compris Windows)
- Création d'un fichier et enregistrement immédiat des transactions
- Pas besoin de déclarer les comptes ou de suivre des conventions de nommage strictes
- Documentation complète et bien tenue à jour
- Communauté active avec des ressources adaptées aux débutants
Beancount : Plus de configuration, plus de structure
Beancount nécessite plus de configuration initiale :
- Installation de Python et de Beancount (et Fava pour l'interface web)
- Création des déclarations de comptes avant de les utiliser
- Respect de règles de syntaxe strictes dès le premier jour
- Apprentissage des cinq catégories de comptes
Le compromis est que cet investissement initial porte ses fruits. Un grand livre Beancount bien structuré est plus facile à maintenir, à valider et à auditer à mesure qu'il se développe.
Communauté et écosystème
Les deux projets disposent de communautés actives et solidaires :
- Beancount : Liste de diffusion active, écosystème croissant d'outils tiers (importateurs, plugins, extensions Fava) et une forte communauté de développeurs Python.
- hledger : Sorties fréquentes (environ trimestrielles), documentation extensive, canaux de discussion actifs et la communauté plus large de plaintextaccounting.org.
Les deux outils bénéficient du mouvement plus large de la comptabilité en texte brut, ce qui signifie des ressources partagées, des importateurs et des connaissances communautaires communes.
Migration entre les outils
Si vous commencez avec un outil et souhaitez changer plus tard, la migration est possible mais pas triviale :
- De hledger vers Beancount : Utilisez
hledger print -o tmp.beancountcomme point de départ, puis ajustez la syntaxe (ajoutez les déclarations de comptes, corrigez les formats de devises, restructurez les noms de comptes). - De Beancount vers hledger : L'outil
bean-reportpeut exporter les données, bien que des corrections manuelles soient généralement nécessaires.
La philosophie commune du texte brut signifie que vos données ne sont jamais verrouillées. Vous pouvez toujours lire et convertir vos fichiers, même si le processus nécessite un certain nettoyage manuel.
Tableau de comparaison rapide
| Caractéristique | Beancount | hledger |
|---|---|---|
| Langage | Python/C++ | Haskell |
| Rigueur syntaxique | Stricte | Flexible |
| Déclaration de compte | Requise | Optionnelle |
| Meilleure interface | Fava (web) | CLI + TUI |
| Suivi des investissements | Excellent | Bon |
| Système de plugins | Plugins Python | Scripts + API |
| Importation CSV | Via importateurs | Règles intégrées |
| Courbe d'apprentissage | Plus abrupte | Plus douce |
| Assertions de solde | Indépendantes de l'ordre | Dépendantes de l'ordre du fichier |
| Performance | Rapide (v3) | Très rapide |
| Support Windows | Bon | Excellent |
Lequel choisir ?
Choisissez Beancount si vous :
- Voulez un magnifique tableau de bord web pour visualiser vos finances
- Suivez des investissements et avez besoin d'une gestion précise du prix de revient (cost basis)
- Préférez un système qui détecte les erreurs tôt et impose la cohérence
- Êtes à l'aise avec Python et voulez une extensibilité puissante via des plugins
- Appréciez une organisation de fichiers indépendante de l'ordre des transactions
Choisissez hledger si vous :
- Préférez travailler dans le terminal avec des rapports rapides et scriptables
- Voulez démarrer rapidement avec une configuration minimale
- Avez besoin d'un excellent support Windows
- Préférez une syntaxe flexible qui s'adapte à votre style
- Voulez des mises à jour fréquentes et une maintenance active
La pure vérité : les deux outils sont excellents. La communauté de la comptabilité en texte brut est accueillante quel que soit l'outil que vous utilisez, et les compétences que vous apprenez avec l'un sont facilement transférables à l'autre. Choisissez celui qui correspond à votre flux de travail, essayez-le pendant un mois, et ajustez si nécessaire.
Simplifiez votre suivi financier avec Beancount.io
Que vous choisissiez Beancount ou hledger, la comptabilité en texte brut vous donne le contrôle de vos données financières. Si vous souhaitez bénéficier de la puissance de Beancount avec un tableau de bord Fava hébergé, des imports bancaires automatiques et aucune gestion d'infrastructure, Beancount.io facilite tout le processus. Commencez gratuitement et découvrez la comptabilité en texte brut sans les contraintes de configuration.
