Dmitry1k downloadsУчёт доходов и расходов по счетам прямо в заметках Obsidian
Track income and expenses directly in your Obsidian notes.
Each note is a separate account (cash, card, crypto wallet, etc.).
Translations: 🇷🇺 Документация на русском языке (Russian)
Version: 2.2.0 | Min Obsidian Version: 1.8.7
npm install
npm run build
Copy the contents of dist/ to .obsidian/plugins/finance-manager/
Then: Obsidian Settings → Community plugins → enable Finance Manager.
BRAT: Add a beta plugin for testinghttps://github.com/dimanchello/obsidian-financePlugin auto-detects language from Obsidian settings:
Insert in any note:
```finance-account
```
On first open the plugin automatically inserts an id: <hex> line into the block — a unique account identifier. This lets you rename or move the note without losing data.
Use Insert account template command from the command palette.
Each account has four tabs, switched via the ••• menu:
| Name | Click the title → edit inline |
| Currency | Click the badge next to the title → select from list or custom |
Export: CSV, JSON, XML
Import:
data.records)Exchange rate is imported only when explicitly specified in the file and not equal to 1. Empty value or rate = 1 is not stored.
Find orphaned accounts — shows data folders whose id does not appear in any note. This can happen if a note was deleted or its finance-account block was removed. The command lets you delete such folders manually.
Data is stored in .obsidian/plugins/finance-manager/accounts/{accountId}/ in separate JSON files:
.obsidian/plugins/finance-manager/accounts/{accountId}/
meta.json # name, currency, accent color, note path
records.json # income/expense records
debts.json # debts
credits.json # credits
deposits.json # deposits
exchanges.json # currency exchanges
state.json # filter state and column visibility settings
{
"version": 4,
"name": "Sberbank Card",
"currency": "₽",
"accentColor": "#7c3aed"
}
{
"version": 4,
"records": [
{
"id": "uuid",
"createdAt": 1700000000000,
"date": "2024-11-15",
"time": "14:30",
"type": "expense",
"amount": 1500.00,
"category": "Groceries",
"tag": "food",
"payer": "Ivan",
"note": "Supermarket",
"attachmentPath": "",
"isInternal": false
}
],
"categories": ["Groceries", "Transport"],
"tags": ["food"],
"payers": ["Ivan"]
}
npm run dev # Watch mode
npm run build # Build to dist/
npm test # Unit tests
npm run lint # ESLint check
MIT