I’ve been on a bit of a journey with plain text accounting interfaces over the past year, and I’m curious if others have wrestled with this same tension.
I came to Beancount from the FIRE community about 18 months ago—found it on r/personalfinance, loved the idea of tracking every penny toward early retirement in plain text. Started with Fava immediately because, honestly, the web interface sold me on the whole system. Those interactive net worth charts? The expense treemaps breaking down where my money actually goes? Beautiful. I could obsess over my savings rate and visualize progress toward FI in real-time.
But then I started automating things. Monthly reports. Portfolio rebalancing checks. Investment fee analysis. And I discovered the command-line side—BQL queries, bean-query scripts, piping data to Python for custom analysis. Suddenly I’m writing cron jobs that generate HTML dashboards and wondering why I ever clicked through Fava’s interface manually.
Here’s where I’m conflicted: Are these fundamentally different tools for different users, or should one tool do both?
The Fava Case: Accessibility Matters
Fava is genuinely impressive. It’s a modern, polished dashboard with interactive charts and intuitive filtering. For someone in the FIRE community tracking progress toward their FI number, the visual feedback is motivating. I can see my net worth trend over 12 months, spot spending anomalies immediately, and drill down into any category with a few clicks.
For beginners (which I was 18 months ago), Fava makes Beancount learnable. You can see your accounts, understand the balance sheet structure, catch data entry errors visually. Without Fava, I’m not sure I would have stuck with Beancount long enough to appreciate the plain text philosophy.
The CLI Case: Power and Automation
But then you hit the limits. I wanted to answer questions like “What percentage of my income goes to healthcare each year?” or “How do my actual investment returns compare to a simple S&P 500 index?” Clicking through Fava filters gets tedious. Writing a BQL query that outputs exactly what you need? That’s power.
The command-line tools (hledger is known as the “command-line powerhouse” of plain text accounting) enable automation. My monthly close is now a shell script: import transactions, run validation checks, generate reports, commit to Git. That workflow doesn’t work well in a web interface.
Can One Tool Be Both?
Here’s what I’m wondering: Is there a fundamental tradeoff between beautiful GUI and scriptable power, or can we have both?
Some possibilities:
-
Natural Progression Model: Maybe you’re supposed to start with Fava (visual learning) and graduate to CLI (efficiency)? Like learning Git with GitHub Desktop before using command-line git?
-
Task-Based Split: Different tools for different jobs. Fava for exploration and anomaly detection. CLI for automation and complex analysis. Use what fits the task.
-
Convergence Dream: Could Fava add “power mode” features—embedded terminal, script runner, advanced BQL editor—while keeping beginner-friendly defaults? Or would that bloat the tool?
-
Permanent Fragmentation: Maybe plain text accounting attracts two personality types—visual thinkers who need GUI (Fava users) and terminal people who want maximum control (hledger-web or CLI-only users)—and tools should specialize for their audiences?
The Community Question
I worry about the plain text accounting community fragmenting. If Beancount emphasizes Fava UX while hledger emphasizes terminal power, do we end up with different user bases who can’t share workflows? Or do the communities cross-pollinate (hledger users appreciate Beancount’s visualizations, Beancount users adopt hledger’s CLI efficiency)?
My Current Workflow (Curious About Yours)
Right now I use both, split by task:
- Morning routine: Open Fava, check net worth, scan for any unusual transactions (2 minutes)
- Monthly review: Fava’s expense treemap to spot category trends, export data for deeper analysis (10 minutes)
- Tax prep / annual planning: Pure CLI, BQL scripts that generate exactly the reports I need (saves hours vs manual export)
- Automation: Everything runs headless—imports, validations, alerts—no GUI needed
Questions for the community:
- Do you use Fava, command-line only, or both? What drives that choice?
- What tasks require GUI vs require CLI for you?
- If you could add one “power feature” to Fava without making it bloated, what would it be?
- For beginners: Does Fava-only usage feel valid, or is there pressure to “graduate” to command-line?
- Philosophy question: Does plain text accounting require command-line literacy, or are we building tools for different audiences?
Curious to hear how others navigate this. The beauty of plain text accounting is supposed to be flexibility and power—but I’m wondering if the GUI vs CLI divide creates an unnecessary fork in the road.