Simple Chart is a free desktop stock charting application for swing traders with a clean and intuitive UI. No more paying for a subscription to use Anchored VWAP or limited configuration indicators. The app comes with customizable indicators and drawing tools, along with a robust API for creating custom extensions using the AI agent of your choice.
Included indicators:
- Simple Moving Average
- Exponential Moving Average
- Anchored VWAP
- Pivot Points
- RSI
Included drawing tools:
- Vertical Line
- Fibonacci Retracement
For usage guidance, see the Simple Chart Help Guide.
The app runs locally from this source repository on Linux, MacOS, and Windows. It uses Python 3.13, and was built natively on Linux and seems to work well on both MacOS and Windows.
The setup process has four basic steps:
- Create a virtual environment with Python 3.13.
- Clone this repository.
- Install the app into the virtual environment.
- Launch Simple Chart.
Windows users can use setup.bat. MacOS and Linux users can use setup.sh.
Manual setup commands are also included below.
For Windows, the easiest path is the included setup.bat file. It installs
uv if needed, creates a Python 3.13 virtual environment, and installs Simple
Chart in that environment.
- Clone or download this repository.
- Open the project folder in File Explorer.
- Double-click
setup.bat. - Wait until it says setup is complete.
To launch the app after setup, open PowerShell in the project folder and run:
.\.venv\Scripts\simplechart.exeIf you prefer to activate the environment first:
.\.venv\Scripts\Activate.ps1
simplechartIf PowerShell blocks activation scripts, use the direct launch command instead:
.\.venv\Scripts\simplechart.exeFor macOS and Linux, the easiest path is the included setup.sh file. It
installs uv if needed, creates a Python 3.13 virtual environment, and installs
Simple Chart in that environment.
From the project folder, run:
sh setup.shTo launch the app after setup:
. .venv/bin/activate
simplechartUse this path if you prefer managing the environment yourself.
First, create and activate a Python 3.13 virtual environment.
macOS and Linux:
python3.13 -m venv .venv
. .venv/bin/activateWindows PowerShell:
py -3.13 -m venv .venv
.\.venv\Scripts\Activate.ps1Then install and launch the app:
python -m pip install --upgrade pip
python -m pip install -e .
simplechartIf python3.13 or py -3.13 is not available, install Python 3.13 first or use
a Python version manager such as pyenv or uv.
With uv, the setup can be as short as:
uv venv --python 3.13
uv pip install -e .Then activate the environment and launch:
. .venv/bin/activate
simplechartOn Windows, you can launch the uv environment directly:
.\.venv\Scripts\simplechart.exeBy default, Simple Chart stores its local database here:
- macOS and Linux:
~/.simplechart/simplechart.db - Windows:
%USERPROFILE%\.simplechart\simplechart.db
To use a different database file:
simplechart --db /path/to/simplechart.dbThe default data provider is yfinance:
simplechart --provider yfinanceRunning from a terminal after pip install -e . is enough to use the app.
On Linux, you can also install a desktop menu launcher:
python scripts/install_linux_desktop.pyRun that command from the same virtual environment where Simple Chart was installed. If the launcher does not appear immediately, log out and back in or restart the desktop shell.
The virtual environment is probably not active, or the install did not finish. Activate the environment and reinstall:
python -m pip install -e .On Windows, you can also launch directly without activating:
.\.venv\Scripts\simplechart.exeSimple Chart requires Python 3.13. Check the active Python version:
python --versionIf the version is not 3.13, create a new virtual environment using Python 3.13 and reinstall the app.
Launch the app from a terminal so any error message stays visible. Common causes are an incomplete dependency install, running outside a desktop environment, or using the wrong Python environment.
The setup script downloads uv using PowerShell. If that step fails, the most
common causes are no internet connection, antivirus quarantine, or organization
policy blocking PowerShell downloads. The script prints manual install options
when this happens.
Simple Chart includes a public extension API at simplechart.api. Custom
indicators can be added as project plugins under indicators/; drawing tools
live under tools/. Plain user plugins can be added under
~/.simplechart/plugins/.
For extension development, install the development extras:
python -m pip install -e ".[dev]"Then read:
AGENTS.mdfor project conventions and the public extension API contractdocs/skills/compute-indicator.mdfor standard computed indicatorsdocs/skills/interactive-indicator.mdfor interactive indicators with drag handles, context actions, and persistent state (e.g. Anchored VWAP)docs/skills/drawing-tool.mdfor toolbar drawing tools (vertical line, Fibonacci retracement) with per-tool timeframe/session persistence
This repository is intentionally source-installed. It does not currently ship
native installers, a macOS .app bundle, or a Windows shortcut installer.
Useful commands:
python -m pytest
python -m mypy app chart data simplechart tools indicators tests
python -m ruff check .
python -m compileall app chart data indicators simplechart tools tests
python scripts/build_compiled.pyFor periodic dead-code review, run python -m vulture main.py app chart data simplechart indicators tools tests and review the findings manually; Qt callbacks, finplot dynamic attributes, and public extension APIs can appear as false positives.
Compiled .so extension files are build artifacts generated by mypyc for hot
numeric indicator kernels. The Python source files remain the source of truth.
This project is licensed under the PolyForm Noncommercial License 1.0.0. It is free to use for personal, educational, and noncommercial purposes. Commercial use, repackaging, or selling of this software is strictly prohibited. See the LICENSE file for the full text.
