Beancount vs hledger: Qual Ferramenta de Contabilidade em Texto Simples é a Ideal para Você?
Se você decidiu gerenciar suas finanças com contabilidade em texto plano, já fez uma escolha inteligente. Seus dados financeiros residirão em arquivos legíveis por humanos que você controla totalmente, rastreados com controle de versão e livres de dependência de fornecedores (vendor lock-in). Mas agora surge a próxima pergunta: qual ferramenta você deve usar?
Beancount e hledger são as duas ferramentas de contabilidade em texto plano (PTA) mais populares hoje. Ambas são de código aberto, mantidas ativamente e capazes de lidar com tudo, desde orçamentos pessoais até carteiras de investimento complexas. No entanto, elas adotam abordagens fundamentalmente diferentes sobre como você registra, valida e analisa seus dados financeiros.
Este guia detalha as principais diferenças para que você possa escolher aquela que se adapta ao seu fluxo de trabalho, nível de experiência e necessidades de rastreamento financeiro.
A Filosofia Central: Estrito vs. Flexível
A maior diferença entre o Beancount e o hledger não é um recurso — é uma mentalidade.
O Beancount é o professor rigoroso. Ele assume que você cometerá erros na entrada de dados e cria proteções para detectá-los precocemente. Cada conta deve ser explicitamente aberta antes do uso. Cada transação deve totalizar zero. As moedas devem seguir um formato rígido. Se algo não parecer correto, o Beancount se recusará a processar seu arquivo até que você o corrija.
O hledger é o amigo compreensivo. Ele usa uma sintaxe mais relaxada, permite que você pule a pré-declaração de contas e pode até inferir lançamentos de ajuste. Você pode começar a rastrear suas finanças com configuração mínima e adicionar estrutura gradualmente conforme suas necessidades crescem.
Nenhuma abordagem é objetivamente melhor. Se você valoriza a detecção de erros antes que eles se transformem em horas de depuração, o rigor do Beancount é um benefício. Se você deseja começar rapidamente e prefere flexibilidade, a permissividade do hledger é uma vantagem.
Sintaxe e Formato de Dados
Ambas as ferramentas armazenam transações em arquivos de texto simples, mas as regras de sintaxe diferem significativamente.
Sintaxe do Beancount
2026-03-15 * "Whole Foods" "Weekly groceries"
Expenses:Food:Groceries 85.42 USD
Liabilities:CreditCard:Visa
Regras principais:
- As datas usam o formato ISO 8601 (
AAAA-MM-DD) - As moedas devem ser letras maiúsculas (ex:
USD,BRL) — sem símbolos como$ouR$ - Os nomes das contas exigem pelo menos dois componentes separados por dois pontos (ex:
Expenses:Food) - As descrições devem ser strings entre aspas
- Todas as contas devem ser explicitamente abertas com uma diretiva
open
Sintaxe do hledger
2026-03-15 Whole Foods | Weekly groceries
expenses:food:groceries $85.42
liabilities:creditcard:visa
Regras principais:
- Formatos de data mais flexíveis
- Símbolos de moeda como
$e€são permitidos - Os nomes das contas podem ser em letras minúsculas e ter formato mais livre
- As descrições não precisam de aspas
- Não há necessidade de pré-declarar contas
A conclusão: a sintaxe mais rigorosa do Beancount significa mais trabalho inicial, mas menos ambiguidades. A sintaxe relaxada do hledger é mais fácil para começar, mas exige mais disciplina para manter a consistência.
Integridade e Validação de Dados
É aqui que o Beancount realmente se diferencia.
Asserções de Saldo
Ambas as ferramentas suportam asserções de saldo — declarações que verificam se o seu saldo registrado corresponde ao seu extrato bancário. Mas elas funcionam de forma diferente.
O Beancount usa asserções de saldo datadas que são independentes da ordem. Você pode reorganizar seus arquivos de transações como quiser, e as asserções ainda funcionarão corretamente. As asserções do hledger dependem da ordem do arquivo, o que significa que mover transações de lugar pode invalidá-las.
Rastreamento de Inventário
Para quem rastreia investimentos, isso importa muito. O Beancount impõe um registro rigoroso de inventário: você não pode vender ações que nunca comprou, e ele rastreia a base de custo com precisão. Isso evita o "vazamento da base de custo" — um bug sutil onde seus cálculos de ganhos de capital se desviam da realidade.
O hledger lida com commodities e lotes, mas com menos imposição. É mais flexível, o que significa que também é mais tolerante com erros que podem passar despercebidos até a época do imposto de renda.
Categorias de Contas
O Beancount exige que cada conta pertença a uma de cinco categorias: Ativos, Passivos, Receitas, Despesas ou Patrimônio Líquido. Essa restrição permite que ele gere automaticamente balanços patrimoniais e demonstrações de resultados adequados.
O hledger permite hierarquias de contas arbitrárias sem categorias raiz obrigatórias. Isso lhe dá mais liberdade, mas significa que você precisa seguir convenções manualmente para obter relatórios financeiros significativos.
Interface de Usuário e Relatórios
Beancount + Fava
O recurso de destaque do Beancount é o Fava, uma interface web polida que oferece:
- Gráficos e tabelas interativos (tendências de patrimônio líquido, detalhamento de despesas, receitas vs. despesas)
- Visualizações em treemap para categorias de gastos
- Filtragem poderosa por conta, tag, período de tempo e beneficiário
- Uma linguagem de consulta (query language) para relatórios personalizados
- Um editor integrado para seus arquivos de razão (ledger)
O Fava é amplamente considerado a melhor interface de usuário no ecossistema de contabilidade em texto plano. Se você é uma pessoa visual que deseja painéis e gráficos, este é um ponto importante a favor do Beancount.
Interfaces do hledger
O hledger adota uma abordagem de múltiplas interfaces:
- CLI: Relatórios robustos via linha de comando com dezenas de comandos integrados (
balance,register,incomestatement,cashflowe mais) - hledger-ui: Uma interface baseada em terminal para navegar por contas e transações de forma interativa
- hledger-web: Uma interface web mais simples para navegação básica e entrada de dados
A CLI do hledger é mais poderosa nativamente do que a do Beancount. Se você vive no terminal e deseja relatórios rápidos e passíveis de script, o hledger atende a essa necessidade.
Desempenho
O hledger é escrito em Haskell e processa aproximadamente 25.000 transações por segundo. Para a maioria dos usuários de finanças pessoais, ambas as ferramentas são efetivamente instantâneas. Mas se você estiver gerenciando um grande conjunto de dados — anos de transações em múltiplas entidades — a velocidade bruta do hledger lhe dá uma vantagem.
O Beancount (v3) teve seu núcleo de processamento reescrito em C++, melhorando significativamente o desempenho em relação à implementação original em Python. Para uso pessoal típico ou de pequenas empresas, você não notará diferença.
Extensibilidade e Plugins
Plugins do Beancount
O Beancount possui um sistema nativo de plugins em Python que é incrivelmente poderoso. Os plugins podem:
- Dividir transações automaticamente (ex: despesas compartilhadas)
- Gerar transações recorrentes
- Aplicar regras de validação personalizadas
- Transformar dados no pipeline de processamento
O ecossistema Python significa que você pode aproveitar qualquer biblioteca Python em seus plugins. Isso torna o Beancount altamente personalizável para cenários financeiros complexos.
Extensões do hledger
O hledger oferece extensibilidade através de:
- Regras de importação de CSV para automação de extratos bancários
- Scripts de relatórios personalizados usando a saída da CLI
- Uma API HTTP-JSON para construção de integrações
- Comandos adicionais baseados em Haskell
O sistema de importação de CSV do hledger é particularmente bem conceituado — ele torna a automação de importações de extratos bancários direta com arquivos de regras que mapeiam colunas CSV para lançamentos em contas.
Primeiros Passos e Curva de Aprendizado
hledger: Menor Barreira de Entrada
O hledger é geralmente mais fácil de começar:
- Instalação de um único binário (excelente suporte multiplataforma, incluindo Windows)
- Criação de um arquivo e início imediato do registro de transações
- Sem necessidade de declarar contas ou seguir convenções de nomenclatura rígidas
- Documentação abrangente e bem mantida
- Comunidade ativa com recursos amigáveis para iniciantes
Beancount: Mais Configuração, Mais Estrutura
O Beancount requer mais configuração inicial:
- Instalar Python e Beancount (e Fava para a interface web)
- Criar declarações de contas antes de usá-las
- Seguir regras de sintaxe rígidas desde o primeiro dia
- Aprender as cinco categorias de contas
A vantagem é que esse investimento inicial rende dividendos. Um livro-razão do Beancount bem estruturado é mais fácil de manter, validar e auditar à medida que cresce.
Comunidade e Ecossistema
Ambos os projetos possuem comunidades ativas e solidárias:
- Beancount: Lista de discussão ativa, ecossistema crescente de ferramentas de terceiros (importadores, plugins, extensões do Fava) e uma forte comunidade de desenvolvedores Python
- hledger: Lançamentos frequentes (aproximadamente trimestrais), documentação extensa, canais de chat ativos e a comunidade mais ampla do plaintextaccounting.org
Ambas as ferramentas se beneficiam do movimento mais amplo de contabilidade em texto simples (plain-text accounting), o que significa recursos compartilhados, importadores e conhecimento comunitário.
Migração Entre Ferramentas
Se você começar com uma ferramenta e quiser mudar depois, a migração é possível, mas não trivial:
- hledger para Beancount: Use
hledger print -o tmp.beancountcomo ponto de partida, depois ajuste a sintaxe (adicione declarações de conta, corrija formatos de moeda, reestruture nomes de contas) - Beancount para hledger: A ferramenta
bean-reportpode exportar, embora correções manuais sejam tipicamente necessárias
A filosofia compartilhada de texto simples significa que seus dados nunca estão presos. Você sempre pode ler e converter seus arquivos, mesmo que o processo exija alguma limpeza manual.
Tabela de Comparação Rápida
| Recurso | Beancount | hledger |
|---|---|---|
| Linguagem | Python/C++ | Haskell |
| Rigor da sintaxe | Rígido | Flexível |
| Declaração de conta | Obrigatória | Opcional |
| Melhor UI | Fava (web) | CLI + TUI |
| Acompanhamento de investimentos | Excelente | Bom |
| Sistema de plugins | Plugins Python | Scripts + API |
| Importação de CSV | Via importadores | Regras integradas |
| Curva de aprendizado | Mais íngreme | Mais suave |
| Asserções de saldo | Independente da ordem | Dependente da ordem do arquivo |
| Desempenho | Rápido (v3) | Muito rápido |
| Suporte para Windows | Bom | Excelente |
Qual Você Deve Escolher?
Escolha o Beancount se você:
- Quer um belo painel web para visualizar suas finanças
- Acompanha investimentos e precisa de um tratamento preciso de base de custo
- Prefere um sistema que detecta erros precocemente e impõe consistência
- Sente-se confortável com Python e quer extensibilidade poderosa via plugins
- Valoriza a organização de arquivos independente da ordem
Escolha o hledger se você:
- Prefere trabalhar no terminal com relatórios rápidos e programáveis
- Quer começar rapidamente com configuração mínima
- Precisa de excelente suporte para Windows
- Prefere uma sintaxe flexível que se adapta ao seu estilo
- Deseja lançamentos frequentes e manutenção ativa
A verdade honesta: ambas as ferramentas são excelentes. A comunidade de contabilidade em texto simples é acolhedora, independentemente de qual ferramenta você use, e as habilidades que você aprende com uma são facilmente transferidas para a outra. Escolha a que melhor se adapta ao seu fluxo de trabalho, experimente por um mês e ajuste se necessário.
Simplifique o seu Acompanhamento Financeiro com o Beancount.io
Quer você escolha o Beancount ou o hledger, a contabilidade em texto simples coloca você no controle dos seus dados financeiros. Se você deseja o poder do Beancount com um dashboard Fava hospedado, importações bancárias automáticas e zero gerenciamento de infraestrutura, o Beancount.io torna tudo muito simples. Comece gratuitamente e experimente a contabilidade em texto simples sem a sobrecarga de configuração.
