Contabilidade em Texto Simples (Plain Text Accounting, PTA)
(plaintextaccounting.org)- Plain Text Accounting (PTA) é uma abordagem que registra dados contábeis em arquivos de texto simples e os processa com ferramentas amigáveis à linha de comando como Ledger, hledger e Beancount, e este site é um portal que reúne materiais relacionados em um só lugar
- A atividade da comunidade está distribuída entre Matrix/IRC, fóruns, Reddit, Lemmy, Hacker News, Mastodon, X e Bluesky, permitindo acompanhar perguntas, notícias e conversas sobre projetos por vários canais
- Os materiais de aprendizado estão organizados em comparação de apps, documentação oficial, fundamentos de contabilidade, guias introdutórios, cheat sheets, cookbook, FAQ, slides e vídeos, permitindo que mesmo quem está começando com PTA avance passo a passo
- O ecossistema de apps oferece várias implementações e matrizes de recursos centradas em Ledger, Beancount e hledger, e as três principais ferramentas são baseadas respectivamente em C++/Python/Haskell, com histórico de lançamentos em 2025~2026
- Há integrações para importação e conversão, plugins de editor, faturas, consulta de preços, relatórios, registro de tempo, UI, fluxo de trabalho e bibliotecas, permitindo conectar dados de contabilidade em texto simples a diversos ambientes de trabalho
Conceito de PTA e o papel do plaintextaccounting.org
- Plain Text Accounting é uma forma de fazer escrituração e contabilidade usando arquivos de texto simples e softwares eficientes e amigáveis à linha de comando como Ledger, hledger e Beancount
- O plaintextaccounting.org funciona como um portal para as ferramentas, documentação e casos práticos da comunidade PTA
- É possível receber atualizações do repositório do site, e também há relatórios financeiros e orientações para apoio
Comunidade e canais de discussão
- As conversas em tempo real seguem pelo Matrix em
#plaintextaccounting, pelo espaço Matrix do plaintextaccounting e pelo canal IRC#plaintextaccountingna Libera Chat - Discussões e notícias estão distribuídas por vários canais públicos
- PTA forum
- /r/plaintextaccounting
- lemmy.world/c/plaintextaccounting
- Busca por stories/comments sobre plain text accounting no Hacker News
#plaintextaccounting,#ledgercli,#hledger,#beancountno Mastodon- Buscas e hashtags no Twitter/X e Bluesky
- No Stack Exchange, são fornecidos links de busca e tags como
ledger-cliehledger - Também há links para mailing lists e chats de cada projeto, além do
This Week In Hledger
Documentação e materiais de aprendizado
- Os materiais de comparação de apps incluem lista de apps PTA, matriz de recursos, FAQ “qual app PTA devo escolher?” e Syntax Quick Reference
- A documentação oficial dos apps inclui Ledger, hledger, Beancount, rustledger, Ledger(Go), Tackler e pta
- Os materiais de fundamentos de contabilidade incluem PTA FAQ, Accounting basics/links do hledger, Double-Entry Counting Method do Beancount e “Accounting for Computer Scientists”, entre outros
- Os materiais introdutórios estão divididos por ponto de partida
- Cheat sheets, cookbook, FAQ, slides e vídeos também estão organizados em seções separadas, e a seção de vídeos traz uma observação de que é difícil encontrar vídeos sobre PTA no YouTube
Principais apps de PTA e comparação de recursos
- Ao começar com PTA, é possível experimentar um ou mais apps listados no site, e em geral a migração de dados entre apps é possível
- A lista atual de apps principais reúne vários projetos
- Ledger: C++, iniciado em 2003, último lançamento em 2025, cerca de 245 committers, cerca de 5.9k stars
- Beancount: Python, iniciado em 2008, último lançamento em 2026, cerca de 103 committers, cerca de 5.5k stars
- hledger: Haskell, iniciado em 2007, último lançamento em 2026, cerca de 194 committers, cerca de 4.4k stars
- Transity, Ledger(Go), Abandon, zhang, Tackler, rustledger, knut, acc e ledg também estão incluídos na lista atual
- Projetos antigos ou inativos são organizados separadamente, como placc, budget-cli, mynt, awk-pta, pta, blossom, .Net Ledger, monescript, Penny, UMM e cl-ledger
- A matriz de recursos de Ledger, hledger e Beancount foi atualizada com base em 2024-09 e compara interface do usuário, instalação, ajuda, formatos de entrada e saída, comandos, configuração, extensibilidade, nomes de contas, orçamento, gráficos, consulta de preços, consultas e validação
- As diferenças mais importantes se concentram em itens que afetam diretamente a escolha da ferramenta
- Os CLIs incluem
ledgerno Ledger,hledgerno hledger ebeanqueryno Beancount - Facilidade de instalação e configuração aparece como
yespara Ledger/hledger enopara Beancount - O hledger oferece formatos de saída text/html/csv/tsv/fods/beancount/sql/json
- A validação do Beancount é marcada como sempre rigorosa, enquanto Ledger e hledger aparecem como configuráveis
- Os CLIs incluem
Ecossistema de software
- A seção de AI inclui o agente de IA local-first e multimodelo
accountant24, que usa hledger, além de um artigo de configuração que usa Claude Code como camada de agentes com hledger e um vault do Obsidian - Como distribuições e configurações alternativas, são listados Full-fledged hledger, hledger-flow, Lazy Beancount, hledger-youtube-business, rtrLEDGER e docker-finance
- Conversão e importação de dados ocupam uma parte importante, incluindo além da conversão CSV nativa de Ledger e hledger, as ferramentas de importação do Beancount v2,
banks2ledger,beancount-import,beancount2ledger,hledger2beancount,ledger2beancount,plaid2texte outras- Ferramentas para migrar de GnuCash, Intuit/QuickBooks/QIF, KMyMoney e YNAB para *ledger ou Beancount também estão organizadas em subseções separadas
- Ferramentas de geração de dados são usadas para criar transações de preço, depreciação, juros, transações recorrentes e postings de ganhos/perdas de capital
- Os plugins de editor são divididos para Emacs, JetBrains IDE, Nano, Sublime, TextMate, Vim e VS Code
- Ex.:
ledger-mode,beancount-mode,hledger-mode,vim-ledger,vim-beancount,hledger-vscode,vscode-beancount
- Ex.:
- As ferramentas de formatação listadas incluem
beancount-black,beancount-black web appehledger-fmt - Entre as ferramentas de faturas, é apresentado o utilitário Go
kairos, que gera faturas a partir de arquivos timedot do hledger
UI, relatórios, fluxo de trabalho e bibliotecas
- As ferramentas de consulta de preços incluem
bean-pricedo Beancount,hledger-stockquotes,ledger-get-prices,pricehiste utilitários de consulta de ações e câmbio baseados no Yahoo Finance - As ferramentas de relatório se expandem para orçamento, análise de ativos, relatórios de diferença, taxa interna de retorno, gráficos, Sankey, saída em PDF e cálculo de ganhos de capital
- As ferramentas de registro de tempo incluem org, hook do Taskwarrior, CSV do Toggl, conversão de timeclock e exemplos de registro de tempo com base em hledger
- As UIs de terminal incluem
hledger add,hledger-ui,hledger-iadd,bean-add,ledger xact,puffineregdel, dando suporte à entrada, consulta e edição de transações - GUI, web e interfaces móveis também são ligadas como ferramentas separadas
- Web: fava, hledger-web, Paisa, BeanHub
- Mobile: Beancount Mobile CE, beancount-mobile, NanoLedger, cashier, cone, MoLe
- GUI: fruit-credits, Ledgera, Prudent, Surebeans e outros
- A seção de fluxo de trabalho trata de configurações para gerar journals do hledger a partir de CSV ou rastrear e reportar finanças tradicionais e de cripto com base em Docker
- A seção de bibliotecas reúne componentes de desenvolvimento para analisar, consultar, gerar relatórios e integrar arquivos PTA, como parser do Beancount, BeanHub API, hledger-lib, hledger-web JSON API, node-hledger e pyhledger
1 comentários
Opiniões no Hacker News
Sistemas que exigem classificação rigorosa imediata não servem para algumas pessoas. Em uma empresa onde trabalhei antes, usávamos um fluxo em duas etapas: primeiro anotávamos rapidamente no iPhone Notes algo como
-50 Alice tools,+20 Bob returned loan, e depois um script fazia o parsing de data, palavras-chave, contraparte e itens internos de análise, transformando tudo em um template de contabilidade por partidas dobradasOs itens que o script não conseguia entender eram classificados manualmente e, se necessário, adicionados a uma lista de regras; também mantínhamos uma lista de correspondências por pessoa para que Alice e Bob não precisassem usar o mesmo vocabulário
É difícil imaginar que, toda vez que dinheiro muda de mãos, alguém que está em uma fila, dirigindo ou no meio de uma conversa vá preencher sempre um formato como
Cat1:cat2:cat3. No fim, é provável que a pessoa volte a usar notas curtas ou chat, ou tente preencher “de memória” não no fim do dia, mas talvez no fim de semanaCom ferramentas baseadas em texto, dá para montar livremente o fluxo que quiser, como conectar um script que recebe notas do iPhone e as transforma no formato ledger; por isso, soa um pouco estranho ver isso como uma reclamação
A cada trimestre, baixamos CSVs das contas bancárias, dos cartões de crédito e do Zoho, e um script Ruby olha o campo de memorando e converte para arquivos ledger. O script e a saída precisam de pequenos ajustes, mas mais de 95% fica automatizado
Como bônus, também adicionamos ao arquivo ledger verificações de consistência, como conferir se bate com o saldo recebido do banco e se os lançamentos estão dentro do período atual
Uso ledger-cli há quase 20 anos, desde que comecei a trabalhar por conta própria, e embora não seja perfeito, estou muito satisfeito. Como tudo é texto puro, consigo processar com scripts, ler no VIM e extrair dados facilmente
O arquivo ledger de uma das empresas que administro hoje é um texto puro de 2 MB com transações desde 2016. Não vi muito valor em granular demais as contas/classificações, mas ele foi uma ferramenta indispensável para o acompanhamento geral
Também foi divertido aprender a contabilidade por partidas dobradas usada por ferramentas como o ledger; olhando para trás, não foi difícil e parece uma habilidade útil para a vida toda
Como estratégia de contas/classificação, uso uma estrutura alinhada às categorias de despesas que a Receita Federal do Canadá exige na declaração de imposto. No começo, criei classificações lógicas, como custos de hospedagem e custos de protótipos/fabricação, mas depois de alguns anos remapeando tudo para as categorias da CRA, percebi que alinhar tudo às categorias fiscais desde o início torna a declaração de fim de ano muito mais simples
Se os dados estivessem em SQLite, teria sido muito mais fácil implementar, mas aí eu perderia a vantagem de editar diretamente em um editor de texto
Graças aos LLMs, ficou muito mais fácil manter contabilidade em texto puro de forma consistente. Isso ajuda especialmente a importar extratos bancários para o hledger evitando entrada manual
Uso um arquivo JSON que mapeia transações bancárias para contas hledger; se aparece uma transação sem novo mapeamento, um script Python gera um prompt para o Claude. O Claude olha a lista de contas, sugere o mapeamento da nova transação e, com base nisso, retorna o lançamento do hledger
Depois, outro script imprime de forma limpa os lançamentos hledger das transações bancárias daquele mês, e eu só ajusto por alguns minutos antes de finalizar. Até as instruções de mapeamento, que antes virariam um monte frágil de regexes e condicionais, podem ser escritas em linguagem natural
Gostei do processo de aprendizado usando Beancount, de escrever ferramentas de importação de dados e da experiência de mexer diretamente com contabilidade. Mas faz quase 1 ano desde a última vez que importei dados; eu pretendia fazer isso todo mês, mas mesmo com bastante automação ainda leva 30–60 minutos e dá trabalho
Quando passou a exigir também confirmação pelo celular, simplesmente desisti
Também faz cerca de 1 ano que não importo dados, e para retomar só consigo imaginar dividir em pedaços pequenos, processando um mês por vez ao longo de vários dias
https://plaid.com/
Uso ledger para a escrituração e contabilidade pessoais e de várias LLCs. Se você tem familiaridade com terminal, lida bem com CLI, usa com frequência vim ou emacs, noções básicas de sed/awk e scripts em bash/python/perl/ruby, é bem provável que aprender ledger e contabilidade de partidas dobradas e migrar para ele seja muito mais satisfatório do que o método que você usa hoje
Para importar transações rapidamente, o reckon é útil: https://github.com/cantino/reckon
Também é bom dividir o problema com
include.bal --dcpode ser um pouco familiar para contadores dos EUA, mas muitas vezes eles não entendem corretamente a forma como o ledger usa números negativos; então achei mais fácil escrever alguns scripts para converter para o estilo DR/CR. Fiquei surpreso ao ver como os contadores com quem lidei tinham dificuldade com abstraçõesSe eu fosse acrescentar só uma dica, seria: amarre tudo com um Makefile ou algo parecido. Quando há muitos arquivos de transações separados por conta, os comandos para incluir os arquivos corretos tendem a ficar longos
Também nunca lembro a sintaxe exata de vários scripts de gráficos e resumos; com make, dá para chamar coisas como
make cashflow,make balance 'A=Checking',make balance-plot 'A=retirement'Escrevi vários textos com receitas práticas para usar o Ledger de forma eficaz em situações mais complexas do que o tutorial básico: https://felixcrux.com/blog/ledger-practices
Ao importar transações bancárias, primeiro atribuo à conta com o nome da contraparte; então um script usa
ledger printpara criar um segundo arquivo de diário por contraparte, revertendo a transação original e colocando-a temporariamente em subcontas do projetoUnknowne da classificaçãoUnknownDepois, a pessoa responsável pela escrituração associa a transação a uma fatura específica e a atribui a uma conta
Project:Category; se necessário, divide um único pagamento entre vários projetos/classificações. Incluindo todos os diários de transações bancárias e os diários de contrapartes, dá para verificar comledger balse a escrituração foi concluídaContabilidade em texto simples é bacana, mas acho que a maior barreira para muita gente é baixar os dados bancários em um formato padrão
Os bancos não vão apoiar ativamente nada além de CSV ou Excel, e plataformas agregadoras de dados como Yodlee ou Plaid não são amigáveis para open source nem para usuários amadores
Antigamente havia uma empresa chamada Wesabe(https://en.wikipedia.org/wiki/Wesabe) que fazia um software para sincronização bancária no desktop. Ela acabou sendo praticamente engolida pelo Mint.com, mas ainda penso naquela abordagem e ela parece possível também em open source
Ainda não usei, mas depois de passar 4 horas ao longo de vários dias ajudando uma empresa SaaS de escrituração com problemas de conexão bancária, eu estaria disposto a dedicar tempo a isso
Sempre que faço conciliação de transações, acabo brigando com um sistema cujo interior não posso ver nem corrigir diretamente. Agora estou começando a duvidar se o esforço vale a pena; se houver ferramentas razoáveis, acho melhor lidar diretamente com CSVs. Para constar, a empresa disse que era “algo normal” e nem reembolsou
Ele também tem lint; se você gostar do resultado, pode salvar o script e importar de novo quando quiser. Para acompanhar coisas como ações, também oferece download de preços de commodities/ativos
Os gráficos não são genéricos o suficiente para o meu gosto, então exporto os dados para outro lugar, mas como ferramenta de entrada de dados é excelente
Por isso baixo o PDF e extraio os dados, mas isso é doloroso além do necessário. Para oferecer um PDF fácil de ler por máquinas, bastaria seguir regras simples que permitissem extrair 3 ou 4 campos de transação e alguns campos do extrato, como data e saldo, sem heurísticas frágeis
Um PDF com marca, legível por humanos, e um PDF fácil de ler por máquinas não são coisas incompatíveis
Eu planejava processar esses dados e inseri-los no sistema contábil, mas nunca cheguei a fazer isso; depois meu celular quebrou e perdi também as ações do Tasker. Não tenho mais ânimo para implementar de novo
O domínio relacionado ainda existe. Texto de 2023: https://news.ycombinator.com/item?id=36022005, texto de 2021: https://news.ycombinator.com/item?id=28420797, texto de 2016: https://news.ycombinator.com/item?id=11164330
Outras menções ao conceito podem ser vistas em https://hn.algolia.com/?q=Plain+Text+Accounting
Tenho curiosidade sobre como outras pessoas realmente usam ferramentas de contabilidade em texto simples. Queria saber se usam para entender hábitos de consumo e mudar comportamento, para acompanhar despesas, receitas e patrimônio líquido, ou se o que atrai é o próprio processo ordenado
Toda vez que vejo esse assunto, sinto ao mesmo tempo o impulso de mergulhar de vez e a culpa por não ter conseguido manter tentativas anteriores. Agora estou há um mês e meio sem atualizar meu livro-razão pessoal, então a culpa pesa mais
No fim, como não tenho certeza de por que uso isso, com o tempo acaba parecendo registrar transações apenas por registrar
Despesas de trabalho são parecidas. Pago equipamentos ou serviços no meu cartão e depois reporto para receber de volta em dinheiro ou por transferência. Mas isso não funciona em alguns países ou empresas
Para gastos pessoais do dia a dia, já dá para saber pelo banco e pela experiência, então não há necessidade de fazer contabilidade. É preciso haver uma motivação financeira, não emocional. Quando você sabe que, se abandonar a contabilidade, um amigo vai gastar centenas de dólares seus em bebidas ou a empresa vai ficar com um cabo HDMI de graça, você digita o valor sem hesitar. O motivo de a contabilidade pessoal não funcionar bem é que o que se perde não é dinheiro, é só análise
Também tenho alguns scripts que automatizam processos como importar transações da Wise e acompanhar taxas de câmbio. Mas não tenho disciplina suficiente para usar isso nos gastos pessoais diários ou no controle de orçamento
Ver quanto desperdicei comendo fora todos os dias e calcular o resultado composto se eu tivesse colocado esse valor em um fundo de índice ajudou muito a reduzir meu hábito de comer fora. Também consigo diferenciar contas a receber de clientes, fluxo de caixa real e fluxo de caixa baseado em receita esperada
Ao dividir mentalmente o saldo da conta poupança em algo como “40% para objetivo de investimento, 1% para presentes”, passei a gastar menos por impulso ao ver um saldo grande. Também tenho um programa que gera gráficos de crescimento do patrimônio e de aumento ou redução dos gastos por categoria, registra observações sobre se essas mudanças tiveram efeito líquido positivo na vida e despeja tudo em uma página web; uso isso todo ano para definir os próximos planos
Também tenho um script em Python que converte o arquivo ledger para Excel e envia ao contador para a declaração anual de imposto. Mantenho o arquivo ledger da empresa separado, não o gerencio manualmente; exporto os dados do software do contador e faço meus próprios cálculos em casa
No negócio, uso para projeções de fluxo de caixa que estimam como os gastos vão crescer conforme a receita aumenta, detecção de anomalias em despesas por departamento, decisões entre contratar mais ou aumentar gastos de marketing e cálculos de indicadores como ROIC
A contabilidade por partidas dobradas ajuda a importar extratos bancários, gerar o ledger e encontrar divergências contábeis. Separo contas por finalidade, como gastos discricionários, benefícios de funcionários e insumos do negócio, e faço depósitos semanais a partir da conta principal para verificar se há algo fora do normal
No passado, um contador, sem falar de forma transparente, lançou despesas falsas nos livros para fazer parecer que tinha economizado muito imposto, e acabei indo parar no tribunal e pagando uma multa alta e encargos por atraso. Agora não confio em contadores e sempre verifico tudo de novo
Tenho muitos scripts de automação que importam dados do Stripe, extratos bancários, livros do contador etc., e uso Python para conciliá-los e encontrar divergências. Para mim, como programador, a contabilidade em texto simples se encaixa bem, e ao longo de anos construí meu próprio sistema em cima do hledger