Lam55 downloadsPrivate, local-first portfolio tracker with encrypted records in your vault. Track investment cash flows, returns, and S&P 500 benchmarks without an account or telemetry.
English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Español | Deutsch | Français | Português (Brasil)
Your portfolio. Your vault. Encrypted.
Investment Tracker is a private, local-first portfolio tracker for Obsidian. Track cash flows, valuations, returns, and benchmark performance while encrypted investment records stay in your Vault—without an account, telemetry, or a developer-operated backend.
It works at the account level, so you can calculate investment performance without maintaining position-level trade history.
| Topic | How Investment Tracker works |
|---|---|
| Investment records | Encrypted and stored inside the user's Obsidian Vault |
| Developer-operated backend | None |
| Account or sign-in | Not required |
| Telemetry and analytics | None |
| Encryption | AES-256-GCM, with the ledger key protected by PBKDF2-SHA256 and a separate recovery key |
| Optional network access | Automatic benchmark mode requests public benchmark and FX data from FRED |
| Vault sync | A user-selected service such as Obsidian Sync or iCloud may sync the encrypted ledger |
| Exports | User-created JSON and CSV exports are plaintext |
Install Investment Tracker from Obsidian → Settings → Community plugins → Browse. Search for “Investment Tracker,” select the plugin, and choose Install, then Enable.
Updates are delivered through Obsidian's Community plugins update mechanism.
For manual installation or testing, place main.js, manifest.json, and styles.css in:
<Vault>/.obsidian/plugins/investment-tracker/
Changing the interface language never changes an existing account's currency. On a new installation, the plugin only uses locale information to suggest an initial currency; users can change it before creating an account.
Investment Tracker has no developer-operated cloud, account system, telemetry, analytics, advertising, or automatic upload mechanism. Account names, dates, amounts, notes, and event data are encrypted and stored in the user's Obsidian Vault. New installations use the Investment Tracker Data folder; existing safe data paths are preserved during upgrades.
Event data is encrypted with AES-256-GCM. The ledger key is wrapped using a password-derived PBKDF2-SHA256 key and a separate recovery key. The password and unwrapped ledger key are not written to plugin settings.
Automatic locking has two independent rules: lock immediately when leaving Investment Tracker or when Obsidian loses focus, and lock after 1, 5, 15, or 30 minutes without activity in Investment Tracker. At least one rule remains enabled. If immediate leave locking is disabled, leaving still hides financial values, collapses expanded history, and closes sensitive dialogs. The inactivity rule or a manual lock determines when the ledger key is cleared from memory.
A newly generated recovery key is hidden after leaving and is shown again only after the ledger is unlocked. Keep the recovery key outside the Vault and use a strong, unique password.
Encryption protects stored ledger files from casual disclosure. It cannot protect data while the plugin is unlocked, from a compromised device, from screenshots or clipboard exposure, or from another malicious plugin with access to the same Vault.
Investment Tracker does not operate a sync service. If the user enables Obsidian Sync, iCloud, or another Vault synchronization service, that user-selected service may synchronize the encrypted ledger files between devices.
JSON and CSV exports are plaintext files created only when the user explicitly exports them. Treat exported files as sensitive financial records and store or delete them appropriately.
Read the full Privacy Policy and Security Policy.
Core record keeping and return calculations do not require a developer-operated service. Automatic benchmark mode sends HTTPS GET requests to the Federal Reserve Economic Data service at fred.stlouisfed.org for S&P 500 and currency-conversion data.
Those requests contain only public series identifiers, the selected currencies needed to choose an FX series, and date ranges. They do not include account names, balances, cash-flow amounts, valuations, notes, passwords, recovery keys, or ledger contents.
Users can select manual benchmark mode to avoid automatic FRED requests. Automatic benchmark updates require an internet connection. The S&P 500 series used by the plugin is a price index and does not include dividends.
No portfolio ledger is sent to a developer-operated backend. The plugin has no developer account system, telemetry, analytics, or automatic portfolio upload. Automatic benchmark mode makes the limited FRED requests described under Network disclosure.
The encrypted ledger is stored inside the user's Obsidian Vault. New installations use Investment Tracker Data. If the Vault is synchronized through a service selected by the user, that service may also store or transfer the encrypted ledger.
Stored event data is encrypted with AES-256-GCM. A password-derived PBKDF2-SHA256 key and a separate recovery key protect the ledger key. Data is visible while the plugin is unlocked, and user-created JSON or CSV exports are not encrypted.
Local records and return calculations can be used without a developer-operated service. Automatic FRED benchmark and currency updates require internet access; manual benchmark mode avoids those requests.
No. Investment Tracker does not connect to brokerage accounts. Users manually record external contributions, withdrawals, and total account valuations.
No position-level trade history is required. The plugin is designed for account-level cash flows and valuations rather than live holdings or tax-lot accounting.
Only public series identifiers, selected currencies needed for FX-series selection, and date ranges are included in automatic benchmark requests. Portfolio records and credentials are not included.
Use the separately stored recovery key to regain access according to the plugin's recovery flow. Losing both the password and recovery key may make the encrypted ledger inaccessible.
No. JSON and CSV exports are plaintext and should be handled as sensitive financial records.
Open Settings → Investment Tracker → Help and feedback to report a bug, suggest a feature, or copy non-sensitive diagnostic information. Reports may be written in any language.
Feedback links open GitHub only after the user clicks a button. The plugin never automatically creates a report or sends ledger data, account names, balances, transactions, passwords, recovery keys, Vault names, Vault paths, or diagnostic information to the developer. Review copied diagnostics and redact screenshots before submitting them.
Report security or privacy vulnerabilities through GitHub private vulnerability reporting, not a public issue.
npm ci
npm run check
npm run build:release
npm run privacy:check
Translations use English source strings as the fallback. Pull requests that change user-facing text must update every locale and keep interpolation placeholders unchanged.
Release tags must exactly match the semantic version in manifest.json, without a v prefix. The release workflow creates a draft GitHub Release containing only main.js, manifest.json, and styles.css for manual review before publication.
Maintainer instructions are in the full Release Guide.
This plugin is a record-keeping and calculation tool, not financial, tax, legal, or investment advice. Verify important calculations independently before making decisions.