{"id":30703259,"url":"https://github.com/codito/xmf","last_synced_at":"2025-09-02T16:58:14.473Z","repository":{"id":301994053,"uuid":"1010681698","full_name":"codito/xmf","owner":"codito","description":"A mutual funds and stocks tracker in rust","archived":false,"fork":false,"pushed_at":"2025-08-27T11:18:42.000Z","size":158,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-08-27T20:03:39.436Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/codito.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-29T15:34:52.000Z","updated_at":"2025-08-27T11:18:12.000Z","dependencies_parsed_at":"2025-07-21T16:22:19.308Z","dependency_job_id":"69a69ec9-a6e8-4676-bf84-e21b9438c4f0","html_url":"https://github.com/codito/xmf","commit_stats":null,"previous_names":["codito/xmf"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/codito/xmf","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codito%2Fxmf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codito%2Fxmf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codito%2Fxmf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codito%2Fxmf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codito","download_url":"https://codeload.github.com/codito/xmf/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codito%2Fxmf/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273317763,"owners_count":25084037,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-02T02:00:09.530Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-09-02T16:58:10.283Z","updated_at":"2025-09-02T16:58:14.442Z","avatar_url":"https://github.com/codito.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# xmf - A Simple Mutual Funds and Stocks Tracker\n\nA command-line application written in Rust for tracking your investment\nportfolios including stocks, mutual funds, and fixed deposits.\n\n![crates io](https://img.shields.io/crates/v/xmf)\n\n![xmf summary](./docs/xmf_summary.png)\n\n## Features\n\n- Track multiple portfolios using a simple YAML-based configuration\n- Support for multiple investment types:\n  - Stocks (using Yahoo Finance tickers)\n  - Mutual funds (using ISIN codes for Indian mutual funds)\n  - Fixed deposits (manually updated values)\n- Multiple data backends:\n  - Yahoo Finance API for stock prices\n  - AMFI (Association of Mutual Funds in India) for Indian mutual fund data\n- Portfolio analytics:\n  - Current portfolio value and allocation\n  - Price change tracking over different periods\n  - CAGR (Compound Annual Growth Rate) calculations\n  - Expense ratio tracking for mutual funds\n  - Asset allocation breakdown by category\n\n[Screenshots](./docs)\n\n## Installation\n\n### From Source\n\n1. Clone this repository:\n\n   ```bash\n   git clone https://github.com/codito/xmf.git\n   cd xmf\n   ```\n\n2. Build and install using Cargo:\n   ```bash\n   cargo install --path .\n   ```\n\n### Pre-built Binaries\n\nPre-built binaries for Linux, Windows, and macOS are available with each [release](https://github.com/codito/xmf/releases).\n\n\u003cdetails\u003e\n\u003csummary\u003eDownload script for Linux, MacOS and Windows\u003c/summary\u003e\n\n**Download on Linux**\n\n```bash\n# Linux\nwget https://github.com/codito/xmf/releases/latest/download/xmf-x86_64-linux.tar.gz \\\n  \u0026\u0026 tar xvzf xmf-x86_64-linux.tar.gz \u0026\u0026 mv xmf-x86_64-linux xmf\n./xmf\n```\n\n**Download on MacOS**\n```bash\n# MacOS\ncurl -L https://github.com/codito/xmf/releases/latest/download/xmf-x86_64-macos.tar.gz \\\n  -o xmf.tar.gz \u0026\u0026 tar xvzf xmf.tar.gz \u0026\u0026 mv xmf-x86_64-macos xmf\n./xmf\n```\n\n**Download on Windows**\n```powershell\n# Windows (PowerShell)\nInvoke-WebRequest -Uri \"https://github.com/codito/xmf/releases/latest/download/xmf-x86_64-windows.exe.zip\" -OutFile \"xmf.zip\"\nExpand-Archive -Path \"xmf.zip\" -DestinationPath \".\"\nRename-Item -Path \"xmf-x86_64-windows.exe\" -NewName \"xmf.exe\"\nxmf.exe\n```\n\u003c/details\u003e\n\n## Quick Start\n\n1. Initialize the configuration:\n\n   ```bash\n   xmf setup\n   ```\n\n   This creates a default configuration file at the appropriate location for your system.\n\n2. Edit the configuration file to add your investments:\n\n   ```bash\n   # Location varies by OS:\n   # Linux: ~/.config/xmf/config.yaml\n   # macOS: ~/Library/Application Support/in.codito.xmf/config.yaml\n   # Windows: %APPDATA%\\codito\\xmf\\config.yaml\n   ```\n\n3. View your portfolio summary:\n   ```bash\n   xmf summary\n   ```\n\n## Configuration\n\nThe configuration file uses YAML format and supports multiple portfolios. You\ncan find a complete example configuration in\n[`docs/example_config.yaml`](docs/example_config.yaml).\n\nAfter running `xmf setup`, you'll get a configuration file with detailed\ncomments explaining each section. Here's a minimal example:\n\n```yaml\nportfolios:\n  - name: \"My Stocks\"\n    investments:\n      - symbol: \"AAPL\"\n        units: 10\n      - symbol: \"MSFT\"\n        units: 5\n  - name: \"Indian Mutual Funds\"\n    investments:\n      - isin: \"INF109K01VD2\"\n        units: 100\n  - name: \"Fixed Deposits\"\n    investments:\n      - name: \"Bank FD\"\n        value: 50000\n        currency: \"INR\" # will get converted to global currency\n\ncurrency: \"USD\" # global currency is used for all reporting\n```\n\n`xmf` supports multiple investment profiles with named configuration files.\nE.g., `xmf summary -n \u003cconfig_name` will use the configuration `~/.config/xmf/config_name.yml`.\n\n### Investment Types\n\n1. **Stocks**: Use the `symbol` field with a Yahoo Finance ticker symbol\n2. **Mutual Funds**: Use the `isin` field with the fund's ISIN code\n3. **Fixed Deposits**: Use `name`, `value`, and optionally `currency`\n\n### Providers Configuration\n\nYou can customize the API endpoints used by the application:\n\n```yaml\nproviders:\n  yahoo:\n    base_url: \"https://query1.finance.yahoo.com\"\n  amfi:\n    base_url: \"https://mf.captnemo.in\"\n```\n\n## Commands\n\n- `xmf setup`: Create a default configuration file\n- `xmf summary`: Display portfolio summary with current values\n- `xmf change`: Show price changes over different periods\n- `xmf returns`: Calculate CAGR (Compound Annual Growth Rate) for investments,\n  or rolling returns with `--rolling \u003cperiod\u003e`\n- `xmf fees`: Display expense ratios for mutual funds\n- `xmf alloc`: Show asset allocation breakdown by category\n\n### Global Options\n\n- `-v, --verbose`: Enable verbose logging\n- `-r, --refresh`: Force refresh of cached data\n- `-n, --config-name \u003cNAME\u003e`: Use a named configuration file\n- `--config-path \u003cFILE\u003e`: Use a custom configuration file path\n\n## Data Sources\n\n- [Yahoo Finance](https://finance.yahoo.com/) for stock prices\n- [AMFI](https://www.amfiindia.com/) for Indian mutual fund data (via [captnemo's API](https://mf.captnemo.in))\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodito%2Fxmf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodito%2Fxmf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodito%2Fxmf/lists"}