Settings
The Settings page is where you configure the plugin to work with your Beancount ledger. Settings are organized into six tabs for easy navigation and configuration.
📋 Overview
Settings are accessible via Settings → Community Plugins → Beancount Ledger. The interface is organized into these tabs:
- General - Currency, automatic price fetching, and debug settings
- Connection - Beancount executable and system configuration
- File Organization - Structured layout options
- BQL - Query display preferences and editor settings
- Performance - Data fetch limits
- Backup - Backup and recovery settings
⚙️ General Tab
Operating Currency
- Purpose: The primary currency for reporting and as the default in transaction forms.
- Examples:
USD,EUR,INR,GBP - Impact: All balance calculations and Net Worth displays use this currency as the base.
- Validation: Validated as a valid 3-letter currency code on input.
Debug Mode
- Purpose: Enable detailed logging to the browser console for troubleshooting.
- When to Enable: If you encounter issues and need to inspect what the plugin is doing.
- Access Logs: Open Obsidian's Developer Console with
Ctrl+Shift+I(Windows/Linux) orCmd+Option+I(macOS). - Output Prefix: Plugin logs are prefixed with
[Beancount]for easy filtering.
Automatic Price Fetching
This section controls how the plugin runs bean-price to keep your commodity prices up to date.
- Enable automatic price fetching: When enabled, the plugin runs
bean-price <ledger>at a regular interval, extracts price directives from stdout, and appends any new ones toprices.beancount(duplicates are skipped automatically). - Fetch interval (hours): How frequently the automatic fetch runs (default: 24 hours).
- Last automatic fetch: Displays when the most recent automatic fetch ran, shown as a relative time (e.g., 2 hours ago).
Tip: You can also trigger a manual fetch at any time via Command Palette → "Fetch Commodity Prices".
See the Automated Price Fetching guide for details on annotating commodities with price sources.
🔌 Connection Tab
This tab manages the connection between the plugin and your Beancount installation.
Automatic System Detection
On startup, the plugin automatically detects:
- Python Executable: Searches PATH and standard installation locations for Python 3.
- Beancount Installation: Verifies
bean-querycommand is available. - Beancount File: Finds your main ledger file (if it was previously configured).
- WSL Availability: Checks if Windows Subsystem for Linux is running (for Windows users).
Status Indicators
After detection, you'll see status icons for:
- ✅ Ready: The component is correctly configured and working.
- ⚠️ Warning: The component exists but may have issues.
- ❌ Error: The component is not found or not working. Click to see error details.
Manual Configuration
If automatic detection fails, you can:
- Set Python Executable Path: Enter the full path to your Python 3 executable.
- Set Beancount File Path: Enter the absolute path to your
.beancountfile. - Set Beancount Command Path: Enter the full path to
bean-query.
Test Commands
Verify your setup with individual test buttons:
- Test Bean Check: Validates Beancount file syntax (runs
bean-check). - Test Bean Query: Tests BQL query execution.
- Test Bean Query CSV: Validates CSV output format.
- Test All Commands: Runs all tests sequentially.
📁 File Organization Tab
Configure how your Beancount ledger is organized.
Structured Layout
The plugin organizes your finances using a structured folder layout with multiple files by type:
Finances/
├── ledger.beancount # Main file with includes
├── 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
├── queries.beancount # Named query directives
└── transactions/ # Folder for transaction files
├── 2024.beancount # Transactions by year
├── 2025.beancount
└── 2026.beancount
Configuration Options
- Folder Name: Name of the root folder for structured layout (default:
Finances). - Importing Existing Ledgers: If you have an existing single-file ledger, the plugin can import and organize it into this structured layout via the onboarding wizard.
📊 BQL Tab
Customize how Beancount Query Language results are displayed in your notes.
Show Query Tools
- Default: Enabled ✅
- Purpose: Displays toolbar buttons above BQL code block results:
- Refresh (⟳): Re-run the query with fresh data.
- Copy (📋): Copy raw CSV results to clipboard.
- Download (📥): Export results as a CSV file.
Show Query Text
- Default: Disabled ❌
- Purpose: Shows the original BQL query above results.
Editor Settings
- Account Name Autocomplete: Toggle account name popup while typing.
- Editor Autocomplete: Toggle payee, narration, currency, tag, and link autocomplete.
- Editor Diagnostics (Linting): Select between Off, On save, or On change validation.
- Format on Save: Format
.beancountfiles automatically on save.
⚡ Performance Tab
Optimize plugin performance for your hardware and ledger size.
Max Transaction Results
- Default: 2000
- Purpose: Limits the number of transactions fetched for the Transactions tab. Lower this if the Dashboard feels sluggish.
Max Journal Results
- Default: 1000
- Purpose: Limits entries displayed per page in the Journal tab.
💾 Backup Tab
Configure automatic backups for data safety.
Create Backups
- Default: Enabled ✅
- Purpose: Automatically creates timestamped backup files before modifying your Beancount files.
- Backup Format:
<filename>.backup.<YYYYMMDD-HHMMSS>
Max Backup Files
- Default: 10
- Purpose: Maximum number of backup files to keep (set to
0for unlimited). Oldest backups are automatically deleted when the limit is exceeded.