Skip to main content

MarketMyna: AI stock analysis and ethical screening

Stock analysis, screening, portfolios and alerts in one app.
AI analysts, ethical screening and alerts on Telegram, for India, the US, China, Hong Kong and crypto.

CI License: Apache 2.0 PyPI version Python versions Platforms Stars Sponsor

Try it online · Run your own copy · Features · Report a bug

Use it at https://marketmyna.com/, or run your own copy with pipx install marketmyna. Your copy has no sign-up, no login, no plans and no limits: it has one owner (you), and every feature is on.

MarketMyna is an analysis tool, not investment advice.

Features

🤖 AI analysis

A set of AI analysts (technical, risk, news) explains a stock in plain language, with a bullish / neutral / bearish outlook, never a buy or sell call. Paste your own key (Gemini, OpenAI, Claude, Groq, OpenRouter, DeepSeek, Mistral) or point it at a local Ollama.
AI analysis of a stock
Markets: every listing with the ethical filter and the insights menu

🔎 Screeners and ethical screening

India (NSE, BSE, mutual funds, ETFs), US, China A-shares, Hong Kong and crypto, with ready-made and custom screens. Ethical screening for stocks, mutual funds and ETFs: excluded businesses (liquor, pornography, gambling and similar) are screened out, and debt and interest are shown as numbers so you decide. No verdicts.

🧭 Market insights

Sector and fund rotation, trending stocks, market mood, FII / DII flows, world markets, rates and macro, all on one page.
Sector rotation chart
Bot console with chat commands

💬 Telegram bot and console

Every tool is also a chat command. Ask the Telegram bot, or use the same commands in the built-in console.
📈 Charts and trading tools Candlestick charts and indicators, scanner, backtesting, options payoff, pairs trading, position sizing, trading journal
💼 Portfolios and funds Holdings and returns, CAS import, fund overlap, SIP planner, XIRR
🔔 Alerts and scheduled reports Telegram, email, browser push, Discord, Slack, Teams, ntfy and more, on any schedule you like. Reports carry a Bullish / Neutral / Bearish list from company figures (with the reasons), market overview, trending stocks and stocks matching your screen; Smart messaging sends a short message plus a PDF or Excel file
🔀 Trader and Investor areas One switch flips the menus and pages between short-term trading tools and long-term investing
🌍 Seven languages The whole app, with light and dark themes
🔒 Private by default One SQLite file on your computer; nothing leaves it except calls to the data and AI providers you choose
More screenshots
Compare stocks side by side Scheduled reports
Compare up to five stocks: performance, returns and risk Choosing what goes into scheduled reports

Quick start

MarketMyna is on PyPI. With Python 3.11 or newer on Linux, macOS or Windows:

pipx install marketmyna
marketmyna

The app opens in your browser at http://127.0.0.1:8001. Paste an AI key in Settings and look up any stock. No Node.js and no git needed: the web app comes inside the package.

No pipx? Install it (how to install pipx), or use pip in a virtual environment:

python3 -m venv ~/marketmyna-venv           # Windows: py -m venv %USERPROFILE%\marketmyna-venv
. ~/marketmyna-venv/bin/activate            # Windows: %USERPROFILE%\marketmyna-venv\Scripts\activate
pip install marketmyna
marketmyna

Update: Settings -> Updates -> Update now in the app, or pipx upgrade marketmyna (pip install --upgrade marketmyna in a venv). Your data is kept.

Your data (database, settings, keys, cache) lives in ~/.marketmyna; set MARKETMYNA_HOME to use another folder. Uninstalling (pipx uninstall marketmyna) leaves it in place.

Options: marketmyna --port 9000, marketmyna --no-browser, marketmyna --version.

Run it from the source code

To follow the latest code with git pull, or to change it. Runs on Linux, macOS and Windows (tested on all three on every change). Needs Python 3.12 and Node.js 22. All your data goes into one SQLite file, so there is no database server to set up.

1. Get the code and install (one time)

Linux and macOS:

git clone https://github.com/pryndor/MarketMyna.git marketmyna
cd marketmyna
python3 -m venv venv
. venv/bin/activate
pip install -r requirements-web.txt

Windows (PowerShell):

git clone https://github.com/pryndor/MarketMyna.git marketmyna
cd marketmyna
py -m venv venv
venv\Scripts\Activate.ps1
pip install -r requirements-web.txt

If PowerShell refuses to run the activate script, run Set-ExecutionPolicy -Scope CurrentUser RemoteSigned once, or use Command Prompt with venv\Scripts\activate.bat.

2. Start it (every time; activate the venv first as above)

python start.py

The first start builds the frontend (about a minute), then the app opens in your browser at http://127.0.0.1:8001. Other options: --port 9000, --no-browser, --rebuild.

3. Update (whenever you like)

git pull
pip install -r requirements-web.txt
python start.py

The frontend rebuilds by itself when it has changed, and your data is kept.

Then open http://127.0.0.1:8001 and go to Settings:

  • AI keys: paste a key; add several for automatic fallback.
  • Notifications: Telegram, email and the other channels, and which messages go where.
  • Data sources (optional): live US prices, backup price sources, Reddit.

Everything can also be set with environment variables; .env.example lists them.

Run only one copy at a time: the scheduler, price alerts and the Telegram bot run inside it.

Your data

Everything is under ~/.marketmyna (on Windows C:\Users\<you>\.marketmyna; set MARKETMYNA_HOME to use another folder):

  • marketmyna.db: the SQLite database (watchlists, portfolios, alerts, journal, reports, settings). The tables are created on first start, and columns are added on later updates.
  • config.json and secret.key: your settings, and the key that encrypts saved API keys and passwords.

To back up or move the app, copy the whole folder while the API is stopped. An existing stockpulse.db from before the rename is still used.

Keep it private

There is no login, so anyone who can reach the port can use the app and see your data. The app listens on 127.0.0.1 only by default, so only this computer can reach it. To use it from your phone, use a private network such as Tailscale or WireGuard. Don't open the port to the internet.

Troubleshooting

Problem Fix
Install the requirements first Activate the venv, then pip install -r requirements-web.txt
The frontend is built once with Node.js 22 Install Node.js 22 and run python start.py again
marketmyna: command not found after pipx install Run pipx ensurepath, then open a new terminal
Port 8001 is already in use Another copy is running, or use --port 9000
The page looks old after an update Source install: python start.py --rebuild. pipx: reload the page with Ctrl+Shift+R
AI analysis says no key Add a key in Settings → AI keys, or point it at a local Ollama

Still stuck? Open an issue with your OS, Python version and the error text.

Development

Run the API on its own, and the Vite dev server for live reload of the frontend:

python -m uvicorn marketmyna.api.app:app --port 8001 --reload
cd frontend && npm run dev   # another terminal: http://localhost:5174, sends /api to :8001

If the API runs on another port, start the frontend with MARKETMYNA_API=http://127.0.0.1:<port> npm run dev.

Tests: pip install pytest && python -m pytest -q. GitHub Actions runs them, builds the frontend and starts the app on Linux, Windows and macOS for every push (.github/workflows/ci.yml).

Layout

Folder What's in it
start.py Starts the app from the source code (builds the frontend when needed)
marketmyna/ The Python package: data, analysis, AI agents, scheduler, alerts, notifiers, SQLite storage
marketmyna/api/ FastAPI app and routes; it also serves the built frontend
marketmyna/strategies/ AI strategy playbooks
frontend/ React + Vite + Tailwind app
tests/ pytest suite

Built with

FastAPI React TypeScript Vite Tailwind CSS SQLite LiteLLM Python Node.js Ruff

Roadmap

  • More options for scheduled reports: what goes in them, when they run, and where they are sent
  • More markets and data sources
  • More AI analysts and strategy playbooks

Ideas and requests are welcome in Issues.

Support

MarketMyna is free and open source. If it helps you, you can support its development:

Buy Me A Coffee

License

MarketMyna is free and open source under the Apache License 2.0. Copyright 2026 Balasubramanian Periannan; see NOTICE.

In short (the LICENSE file is what counts):

You can As long as you
Use it for anything, personal or commercial Keep the copyright, license and NOTICE
Change it, and keep your changes private if you want Mark the files you changed when you share them
Run it as a website or service for other people Don't use the MarketMyna name or logo for your copy
Share copies or build it into your own product, open or closed Include a copy of the license

The license also gives you a patent license from the contributors. It comes with no warranty, and the authors are not liable for any loss.

Contributing

Pull requests are welcome. Contributions are accepted under the Apache License 2.0; see CONTRIBUTING.md.

The license does not cover the MarketMyna name and logos (frontend/public/brand/). If you publish a changed copy, give it your own name and logo.

Third-party software

Each package the app installs keeps its own license. The frontend packages and the Python packages are MIT, BSD, ISC or Apache-2.0, except PyMuPDF (AGPL-3.0), which is used only to make PDF reports. If you ship MarketMyna inside a closed product, check PyMuPDF's terms or remove it.

Not investment advice

MarketMyna is an analysis tool. Nothing it shows is investment advice, and you trade at your own risk.

Metadata

Release files for marketmyna 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for marketmyna 0.3.0
File Size Uploaded Provenance Actions
marketmyna-0.3.0.tar.gz 1.9 MB With provenance Details for marketmyna-0.3.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for marketmyna 0.3.0
File Interpreter ABI Platform Actions
marketmyna-0.3.0-py3-none-any.whl Python 3 none any Details for marketmyna-0.3.0-py3-none-any.whl

Total release size: 3.8 MB

Release files / marketmyna-0.3.0.tar.gz

Download URL marketmyna-0.3.0.tar.gz
Size 1.9 MB
Tags Source
SHA-256 checksum
How to use checksums
1a0aecd8212b825d3530a0d2e347fc850ee6814b09e32cc514ca6a3050259e2e
BLAKE2b-256 checksum
How to use checksums
1109daf0be4b62962cef2a2d0854770ec6bb50dbeb28e388f74d9676b5ac87ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 1, 2026.

Transparency log

Release files / marketmyna-0.3.0-py3-none-any.whl

Download URL marketmyna-0.3.0-py3-none-any.whl
Size 1.9 MB
Tags Python 3
SHA-256 checksum
How to use checksums
32965cf6fd5fb655963e93b52442de1c731e4bd95a96f6b91b6fd4c28d54514c
BLAKE2b-256 checksum
How to use checksums
c42617a01404c3dd4a68b45a47d3e287084907698874c54a712b7d261cf21b38
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 1, 2026.

Transparency log

Security for marketmyna 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for marketmyna-0.3.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 1, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page