| Crates.io | xmf |
| lib.rs | xmf |
| version | 0.2.1 |
| created_at | 2025-08-31 06:15:22.01688+00 |
| updated_at | 2025-08-31 06:15:22.01688+00 |
| description | A CLI app to track finance portfolios |
| homepage | https://github.com/codito/xmf |
| repository | https://github.com/codito/xmf |
| max_upload_size | |
| id | 1818194 |
| size | 284,652 |
A command-line application written in Rust for tracking your investment portfolios including stocks, mutual funds, and fixed deposits.
Clone this repository:
git clone https://github.com/codito/xmf.git
cd xmf
Build and install using Cargo:
cargo install --path .
Pre-built binaries for Linux, Windows, and macOS are available with each release.
Initialize the configuration:
xmf setup
This creates a default configuration file at the appropriate location for your system.
Edit the configuration file to add your investments:
# Location varies by OS:
# Linux: ~/.config/xmf/config.yaml
# macOS: ~/Library/Application Support/in.codito.xmf/config.yaml
# Windows: %APPDATA%\codito\xmf\config.yaml
View your portfolio summary:
xmf summary
The configuration file uses YAML format and supports multiple portfolios. You
can find a complete example configuration in
docs/example_config.yaml.
After running xmf setup, you'll get a configuration file with detailed
comments explaining each section. Here's a minimal example:
portfolios:
- name: "My Stocks"
investments:
- symbol: "AAPL"
units: 10
- symbol: "MSFT"
units: 5
- name: "Indian Mutual Funds"
investments:
- isin: "INF109K01VD2"
units: 100
- name: "Fixed Deposits"
investments:
- name: "Bank FD"
value: 50000
currency: "INR" # will get converted to global currency
currency: "USD" # global currency is used for all reporting
xmf supports multiple investment profiles with named configuration files.
E.g., xmf summary -n <config_name will use the configuration ~/.config/xmf/config_name.yml.
symbol field with a Yahoo Finance ticker symbolisin field with the fund's ISIN codename, value, and optionally currencyYou can customize the API endpoints used by the application:
providers:
yahoo:
base_url: "https://query1.finance.yahoo.com"
amfi:
base_url: "https://mf.captnemo.in"
xmf setup: Create a default configuration filexmf summary: Display portfolio summary with current valuesxmf change: Show price changes over different periodsxmf returns: Calculate CAGR (Compound Annual Growth Rate) for investments,
or rolling returns with --rolling <period>xmf fees: Display expense ratios for mutual fundsxmf alloc: Show asset allocation breakdown by category-v, --verbose: Enable verbose logging-r, --refresh: Force refresh of cached data-n, --config-name <NAME>: Use a named configuration file--config-path <FILE>: Use a custom configuration file pathMIT