| Crates.io | portfolio_rs |
| lib.rs | portfolio_rs |
| version | 0.6.1 |
| created_at | 2022-09-20 13:02:53.763585+00 |
| updated_at | 2025-09-07 10:28:12.61343+00 |
| description | A command line tool with interactive TUI for managing financial investment portfolios written in Rust. |
| homepage | |
| repository | https://github.com/MarkusZoppelt/portfolio_rs |
| max_upload_size | |
| id | 669881 |
| size | 2,324,317 |

A command line tool with interactive TUI for managing financial investment portfolios written in Rust.
This project is the modern successor of finance.
Install/run via pkgx:
pkgx portfolio_rs
You can install portfolio_rs directly from cargo (via crates.io):
cargo install portfolio_rs
Create a JSON file with your portfolio positions.
Look at the example data for the format and data scheme.
Default: Customizable Interactive TUI (recommended):
portfolio_rs [JSON_FILE] [--tab TAB] [--disable COMPONENTS]
You may optionally specify which tab to open at start-up:
portfolio_rs [JSON_FILE] --tab overview # Start on Overview & Allocation tab (default)
portfolio_rs [JSON_FILE] --tab balances # Start on Balances tab
CLI Commands (optional):
portfolio_rs balances [JSON_FILE] # Show balances table
portfolio_rs allocation [JSON_FILE] # Show allocation chart
portfolio_rs performance [JSON_FILE] # Show performance metrics
Configuration:
portfolio_rs config # Show config file location
portfolio_rs components # Show available components
If no file is specified, the tool uses the file from your config. If you need help, try portfolio_rs --help for usage information.
The interactive Terminal User Interface (default mode) provides:
You can disable specific UI components using the --disable flag with comma-separated component names:
Overview Tab Components:
tab_bar - Top navigation tabstotal_value - Large portfolio value displayasset_allocation - Visual bar chartdetailed_allocation - Allocation percentage listhelp - Help text at bottomBalances Tab Components:
tab_bar - Top navigation tabsname - Position name columnasset_class - Asset class columnamount - Amount/quantity columnbalance - Balance/value columnExamples:
# Hide tab bar and help text
portfolio_rs --disable tab_bar,help example_data.json
# Show only the allocation chart (hide detailed list)
portfolio_rs --disable detailed_allocation example_data.json
# Minimal balances view (name and balance only)
portfolio_rs --disable asset_class,amount example_data.json
h / l : Switch tabs left/right (vim-style)j / k : Navigate up/down (select positions in Balances tab)e : Edit selected position amount (in Balances tab)Tab / ← → : Switch between tabs1-2 : Jump directly to specific tabsq / Esc : Quit the applicationSelect any position with j/k and press e to edit
Real-time balance preview and input validation
Changes are saved automatically to your data file
Supports decimal precision for crypto and fractional shares



Upon first run, portfolio_rs will create a default config file.
Use portfolio_rs config to show the config file location.
The most useful config entry is portfolio_file where you can set the absolute path to your data file. This will be used when no file is specified as an argument.
This tool supports (gpg) encrypted json files. Decrypted values are never written to disk.
# you will need a valid gpg key in ~/.gnupg/
portfolio_rs [COMMAND] data.json.gpg
Pro Tip: Use a plugin like vim-gnupg for editing your data file.