Skip to content

Dekimori/PersonalCapital-plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Personal Capital

Personal finance for Obsidian. Cashflow, assets, dividends, deposits, FX, all in plain text inside your vault.

Obsidian License Platform


Dashboard overview

Why

The easy way to finally start tracking your expenses and budget, and even more: grow your investments.

Built it for myself, but decided to share.

Personal Capital keeps everything in your Obsidian vault as plain text:

  • A JSONL ledger is the single source of truth with one file per year, version-control-friendly.
  • The dashboard is rendered live from the ledger. No hidden state, no migrations, no lock-in.
  • Track your investments with fetch parser and auto update.
  • Migrate to / from beancount ledger (in development)

Why manual? Its not an accountant tool for buisness, the Strategy > than the Detalis. Organising your finance yourself is a habbit that will 100% make you more smart and efficient.


Install

Recommended: BRAT

  1. Install BRAT from Community plugins.
  2. Open BRAT settings → Add Beta plugin → paste this repo URL.
  3. Settings → Community plugins → enable Personal Capital.

BRAT will auto-update the plugin whenever a new release is published.

Manual

  1. Download main.js, manifest.json, styles.css from the latest Release.
  2. Place them in .obsidian/plugins/personal-capital/ inside your vault.
  3. Settings → Community plugins → enable Personal Capital.

A finance/ folder is scaffolded on first activation with an empty dashboard ready for onboarding.


How to use

Capital, allocation, instruments

The basic loop is simple. If you never tracked your budget just start to fill it, nothing more. Log money movements as they happen, let the dashboard derive everything else, reconcile when reality drifts from the ledger.

┌─────────────┐    ┌──────────────┐    ┌────────────────┐    ┌─────────────┐
│  Log entry  │ ─► │  Auto-fetch  │ ─► │ Dashboard view │ ─► │  Reconcile  │
│ (income,    │    │ prices, FX,  │    │ (net worth,    │    │ (vs real    │
│  expense,   │    │  dividends   │    │  P&L, budget)  │    │  accounts)  │
│  buy/sell)  │    │ (once w/m)   │    │                │    │             │
└─────────────┘    └──────────────┘    └────────────────┘    └─────────────┘
1. Set up accounts

Open the Accounts modal and add the cash containers you actually use: bank cards, broker cash, paper wallet, savings pots. Each account has a name, currency and starting balance. Everything else is derived from ledger entries that touch the account, so you do not need to keep balances in sync by hand.

Tip: keep accounts coarse. One account per real-world holder is usually enough. Splitting "groceries card" vs "groceries cash" rarely pays off.

2. Log income and expenses

Click an empty cell in the cashflow table and pick the category, or use the quick-entry modal. Each line is appended to the JSONL ledger for the year. The dashboard recalculates monthly totals on the fly.

Categories are split into baskets (needs / wants / savings) so you can see month-over-month allocation without setting hard budget caps. Hard caps are optional, leave them blank to just track.

3. Track investments

Add an asset (share, bond, deposit, cash position) with its ticker, currency and source account. Buy and sell entries flow through the ledger like any other money movement, so the cash account balance updates automatically.

The fetcher pulls prices from MOEX or Yahoo Finance and writes dividends straight into the ledger when configured. Deposit interest accrues from the rate you set, no manual coupon entries needed unless you want them.

4. Reconcile when reality drifts

Once a month, open the Reconcile modal. It diffs the real balance of each account (which you type in) against what the ledger says. The gap becomes a single adjusting entry rather than hours of detective work.

This is the forgiving part. You will miss entries. The point is to fix them in seconds, not to maintain perfect bookkeeping.

5. Read the dashboard

The top cards show total capital, monthly cashflow and budget basket allocation. The chart tracks capital growth over time. Below that you get asset allocation by class, the full instrument list with P&L, and account balances.

Everything is live. No manual refresh. Edit a ledger line and the dashboard updates next render.

Extras
  • Multi-currency. Each account and asset carries its own currency. FX rates are fetched from CBR and applied at render time so the totals stay in your base currency.
  • Plain text. The whole vault is your data. Back it up, sync it, version-control it, grep it.
  • Beancount bridge (in development). Import or export to beancount-format ledgers for users who already live in that ecosystem.

Privacy & network

(!) I have used claude to combine all my typescript garbage in a single js, fix bugs and research. (!!) Most of formulas and base logic hand-written, since I trust my economy education, still have to fix smth here and there..

Everything runs locally. Outbound requests are limited to public, read-only market-data endpoints:

Endpoint Purpose
iss.moex.com Share/bond prices and dividend history
query1.finance.yahoo.com Fallback for non-Russian tickers
cbr.ru FX rates against RUB

No telemetry. No analytics. No accounts. Verify by grepping main.js for fetch(.


Compatibility

Obsidian 1.0.0+, desktop and mobile.

License

MIT, © 2026

About

Obsidian budgeting/growth plugin

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors