Skip to content

A minimalistic companion (CLI & web) to organize your investment portfolio, simulate its future, and reach your life goals.

License

Notifications You must be signed in to change notification settings

MadeInPierre/finalynx

Repository files navigation


Finalynx Assistant

View in English 🇬🇧 / Lire en Français 🇫🇷

Minimalistic command-line tool to help you manage your investments

PyPI GitHub Workflow Status (main) License License Mentioned in Awesome Finary

Built with ❤︎ by Pierre Laclau and contributors. Logo generated by Midjourney.


Finalynx is your "Finary Assistant", a command-line (and experimental web dashboard) tool to organize your investments portfolio and get automated monthly investment recommendations based on your future life goals. This tool synchronizes with your Finary account to show real-time investment values.

Don't have Finary yet? You can sign up using my referral link 🌹 (or through the default page).

[Click] Additional screenshots 📸
Recommendations Web dashboard

Finalynx also includes a daily budget manager to classify your expenses and show monthly & yearly statistics:

Statistics and visualizations will be added soon!

✨ Features

  1. ✅ Portfolio: Organize your assets, set targets, and sync with your Finary account.
  2. ✅ Assistant: Get monthly recommendations on where to invest next to meet your goals.
  3. ✅ Simulator: Define your life goals and events, simulate your portfolio's future.
  4. ⏳ Web dashboard: Generate global statistics and graphs to understand each line and folder.
  5. 🙏 Extensions: Make this tool work for other people's situations, contributions needed 👀

You can check the current development status. Contributions are warmly welcome!

🚀 Installation

If you don't plan on touching the code, simply run (with python >=3.10 and pip installed):

pip install finalynx  # run again with --upgrade to update

And you're done! Now create your own copy of the demo.py example anywhere and run it to make sure everything works. You can now customize it for your own needs 🚀

Beginners: Here are detailed steps in the documentation or a video. Feel free to open a discussion for help!

Pro Tip 💡: Why not setup a script to autorun your config in a new terminal on startup? Could be a nice view 🤭

⚙️ Usage & Documentation

The goal is to declare a tree structure of your entire portfolio independently from their host envelopes (e.g. PEA, AV, CTO, etc). Once your entire portfolio strategy is defined here, find the best envelope for each line and add them to your Finary account (manual or automatic sync). Finalynx will fetch each line and display your full portfolio with real-time amounts.

Here is the bare minimum code accepted:

from finalynx import Portfolio, Assistant
portfolio = Portfolio()     # <- your custom configuration here
Assistant(portfolio).run()  # <- see tutorials for more options

You can now populate the Portfolio class with your own custom hierarchy by taking inspiration from the demo.py example or by reading the Getting Started guide in the documentation and step-by-step Tutorials. For additional details, checkout the full API Reference or ask a question.

Once you have a fully defined portfolio tree with sensible targets, you can display how much you need to invest in each line using:

python your_config.py delta  # type --help for other options, like launching a web dashboard!

👨‍💻 Feedback & Contributions

This repository is at a very early stage. Unfortunately, I won't have time to make this tool work for everyone by default, but you are welcome to extend this project (or hire me if you can't develop it yourself). Pull requests, issues (🇬🇧 preferably) and open discussions (🇬🇧/🇫🇷) are warmly welcome!

If you would like to contribute to this project, welcome on board and thanks for your interest! 🎉 Please read the contribution guidelines to setup the project on your machine and agree on common conventions.

📄 License

This project is under the GPLv3 License meaning anyone can use, share, extend, and contribute to this project as long as their changes are integrated to this repo or also published using GPLv3. Please contact me for any specific licensing requests.

💌 Donations

This is a personal project I have fun with on my free time. If you found it useful and wish to support my work, you can buy me a coffee! It would give me the motivation to keep improving it further 😄 Thank you!

Also, big thanks to all contributors 🌹 don't forget to check them out: