First-Time Setup
This guide walks you through the 3-step onboarding wizard that appears when you first enable the plugin.
🚀 Launching the Onboarding
The Onboarding Modal appears automatically when:
- You enable the plugin for the first time
- No Beancount file is configured in settings
Manual Launch:
Open Command Palette (Ctrl/Cmd + P) → "Obsidian Finance: Run Setup/Onboarding"
Step 1: Prerequisites Check 🔍
The plugin verifies your system has the required software.
Required Software
- Python 3.8 or higher: The runtime environment for Beancount
- Beancount v3+: The accounting engine (
pip install beancount) - bean-query: The query tool for BQL execution (
pip install beanquery- separate package) - bean-price (optional): For automated commodity price fetching (
pip install beanprice)
Running the Check
- Click "🔍 Check Prerequisites" button
- The plugin automatically detects:
- Python executable and version
- bean-query command and version
- bean-price command and version (optional — green if found, neutral if not)
- System environment (Windows, macOS, Linux, WSL)
Results
✅ All Prerequisites Met
If all requirements are satisfied, you'll see:
- Python command path and version
- bean-query command path and version
- bean-price command path and version (or a neutral notice if not installed)
- "Next: File Setup →" button to proceed
The detected commands are automatically saved to your settings — including beanPriceCommand if bean-price was found.
❌ Prerequisites Not Met
If requirements are missing, you'll see:
- Specific items that failed (Python or bean-query)
- Platform-specific installation instructions
- Link to official Beancount documentation
- Option to "Skip (Manual Config)" for later setup
Installation Instructions
The modal displays platform-specific instructions based on your OS:
Windows:
# Install Python from python.org
# Then in PowerShell:
pip install beancount
pip install beanquery
bean-query --version
macOS:
brew install python@3.11
pip3 install beancount
pip3 install beanquery
bean-query --version
Linux:
sudo apt install python3 python3-pip # Debian/Ubuntu
pip3 install beancount
pip3 install beanquery
bean-query --version
See the official Beancount installation guide for detailed instructions.
Skipping Prerequisites
Click "Skip (Manual Config)" to configure later in Settings → Connection. Useful if:
- You have Beancount installed in a non-standard location
- You're using WSL or a custom Python environment
- You want to configure later
Step 2: File Setup 📁
Choose your starting point after prerequisites are verified.
📊 Option 1: Start with Demo Data
Best for:
- New Beancount users wanting to learn
- Testing the plugin before committing
- Understanding how the plugin works
- Seeing examples of proper Beancount syntax
What You Get:
- A complete structured folder layout in your vault
- Sample accounts (checking, savings, investments, credit cards)
- Realistic transactions spanning multiple months
- Example investments with price tracking
- Various transaction types (income, expenses, transfers)
- Properly formatted directives to learn from
Demo Data Includes:
- Accounts: Assets (Bank, Investments), Liabilities (Credit Card), Income, Expenses
- Transactions: Salary deposits, grocery shopping, restaurant meals, utilities, investments
- Commodities: Stock tickers (AAPL, GOOGL, VTSAX) with prices
- Balance Assertions: Monthly reconciliation examples
The demo data is completely safe to explore and modify. You can delete it anytime and start fresh with your real data.
📁 Option 2: Use Existing Beancount File
Best for:
- Existing Beancount users migrating to Obsidian
- Users with an existing Beancount file → imports and organizes it into structured layout
- Safe to explore and modify. Delete it anytime and start fresh.
Option 2: Existing File 📁
Setup Steps:
- Select File: Choose from existing
.beancountfiles in your vault via dropdown - Or Enter Path Manually: Provide absolute path to file outside vault
- Configure Folder: Set the folder name for structured layout (default: "Finances")
- Import: Plugin automatically imports and organizes your file into structured layout
Path Examples:
- Inside vault: Select from dropdown
- Outside vault:
C:\Users\You\Documents\finances.beancount - WSL:
/mnt/c/Users/You/Documents/finances.beancount
Navigation
- ← Back to Prerequisites: Return to Step 1
- Start Setup: Proceed with chosen configuration
Step 3: Verification ✅
After setup completes, you'll see a success screen with:
Configuration Summary
- Python command and version
- Bean-query command
- File organization (Structured Layout)
- Data source (Demo or Existing)
- Folder location
Next Steps Provided
- Open the Finance Dashboard
- Explore the 5 tabs (Overview, Transactions, Journal, Balance Sheet, Commodities)
- Try BQL queries in markdown notes
- Customize settings
Actions
- Open Dashboard & Close: Opens the unified dashboard view and closes the modal
- Close: Just close the modal (can open dashboard later via Command Palette)
Structured Layout
Both options create a structured folder layout by default. This modern organization approach keeps your ledger maintainable as it grows.
Why Structured Layout?
- Organized: Directives grouped by type
- Scalable: Works well for ledgers of any size
- Navigable: Easy to find specific entries
- Version Control: Better git diffs and merge handling
- Collaborative: Multiple people can work on different files
Folder Structure Created:
Finances/ # Your chosen folder name
├── ledger.beancount # Main file (includes all others)
├── accounts.beancount # Account opening directives
├── commodities.beancount # Commodity declarations
├── prices.beancount # Price directives
├── balances.beancount # Balance assertions
├── pads.beancount # Pad directives
├── notes.beancount # Note directives
├── events.beancount # Event directives
└── transactions/ # Transaction files by year
├── 2024.beancount
├── 2025.beancount
└── 2026.beancount
🔄 Re-running Onboarding
You can run the onboarding wizard anytime:
- Open Command Palette (
Ctrl/Cmd + P) - Type "Run Setup/Onboarding"
- Follow the wizard to reconfigure or start fresh
Use Cases:
- Switching from demo data to real data
- Changing folder names or organization
- Importing a different ledger file
- Starting over with a clean slate
⚙️ Post-Setup Configuration
After onboarding completes:
Verify Connection
- Open Settings → Beancount for Obsidian → Connection
- Check for green checkmarks on all tests
- If any tests fail, review the Troubleshooting Guide
Configure Preferences
- Operating Currency: Set your default currency (USD, EUR, etc.)
- Automatic Price Fetching: If bean-price was detected, enable this in Settings → General to keep commodity prices up to date automatically
- Performance: Adjust limits based on your ledger size
- BQL: Configure query display preferences
- Backups: Enable automatic backups (recommended)
Start Using the Plugin
Once configured, you're ready to:
- Open Dashboard: Click the ribbon icon or use Command Palette
- Add Transactions: Use the "Add Transaction" command
- Execute Queries: Try BQL code blocks in your notes
- Explore Views: Check out all dashboard tabs
🎓 Learning Path
For New Beancount Users
- Start with Demo Data: Explore the sample ledger
- Open Dashboard: See your financial overview
- Examine Transactions: Look at the demo entries in the Journal tab
- Try Editing: Modify a demo transaction to understand the workflow
- Learn BQL: Execute some sample queries
- Read Beancount Docs: Visit Beancount Documentation
For Existing Beancount Users
- Point to Your Ledger: Use existing file option
- Test Connection: Ensure bean-query works
- Explore Dashboard: See your real data visualized
- Try Features: Test transaction editing, BQL queries
- Consider Migration: Optionally migrate to structured layout
- Customize Settings: Adjust to your preferences
💡 Tips
Demo Data:
- Safe to experiment with - can't hurt your real finances
- Delete the demo folder anytime: just remove
Finances/folder - Great reference for Beancount syntax examples
File Paths:
- Use absolute paths for reliability
- WSL users: use Linux-style paths (
/mnt/c/...) - Inside vault: plugin handles path conversion automatically
Structured Layout:
- Organized by directive type for better maintainability
- Recommended for all ledgers, especially those with > 500 transactions
- Easy to navigate and version control
Onboarding:
- Can be run multiple times safely
- Each run offers to backup existing data
- No data loss - always creates backups first
🆘 Troubleshooting Onboarding
Onboarding Modal Doesn't Appear
- Check if
beancountFilePathis already set in settings - Manually run: Command Palette → "Run Setup/Onboarding"
File Path Invalid
- Ensure the file exists and has
.beancountor.beanextension - Check file permissions (readable by Obsidian)
- For WSL: verify path format is correct
Demo Data Not Loading
- Check console for errors (Ctrl+Shift+I)
- Ensure vault has write permissions
- Try using a different folder name
Bean-query Not Found
- Install Beancount:
pip install beancount - Verify installation:
bean-query --versionin terminal - Set manual path in Connection settings if auto-detect fails
For more help, see the Troubleshooting Guide.