Model or dataset
dragon1086/prism-insight avatar
dragon1086/prism-insight

PRISM-INSIGHT runs 13 agents over your stock analysis, and its Stance board refuses backfilled results

AI-based stock analysis and trading system

769 stars263 forksPythonAGPL-3.0

At a glance

What is it?
PRISM-INSIGHT is a Korean-rooted AI analysis and trading system that produces surge-stock alerts and analyst-style reports, ships as a Python tree or a Docker image, and can run on a ChatGPT subscription instead of an API key. The most interesting part is what it refuses to do: the Stance leaderboard accepts no uploaded track records, and a Stance entry only starts counting on the day it registers.
Who is it for?
PRISM-INSIGHT is worth a look if you want a full analysis pipeline rather than a chart library, and the Stance design is the part other leaderboards should copy. Two cautions before you deploy it.
Can I use it commercially?
Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 2, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Thirteen agents, five readmes, and two licensing documents

The project describes itself as an AI powered stock market analysis and trading system in which 13 or more specialized agents collaborate, and the collaboration is the point: detect surge stocks, produce analyst grade reports, execute trades automatically. The documentation is published in five languages, English, Korean, Japanese, Chinese, and Spanish, each as its own readme file at the root. Licensing is where a Python project of this shape usually keeps one file and here it keeps several. The main licence is AGPL-3.0, and beside it sit a commercial licence in English and in Korean, a licensing guide in Korean, and a third party notices file, so the dual licensing story is documented in more depth than the code layout is. Four agent instruction files sit in the same row, named for coding assistants, and a mascot character directory exists for the project's own artwork. A single sponsor is credited as a platinum sponsor, an AI vendor whose product is described as an assistant for professionals.

Stance seals the decision time, then decides what happened afterwards

The feature that distinguishes this project is a public leaderboard called Stance, and it is defined by a refusal. Past results are not accepted: every record starts at registration, with no uploaded track records and no backfills, so the decisions are made before the outcomes are known. The mechanism behind that claim is a server that seals decision time and price and only then calculates what happens next, which is what makes the ordering meaningful rather than reconstructed. Ranking is split between KRX and US markets, and a return figure is never shown alone: worst drawdown, average invested exposure, and record rate sit beside it, so exposure and incomplete records are visible instead of hidden. Entry runs through a coding agent. You open your strategy project in Codex CLI, Cursor, Claude Code, or a similar tool and paste an instruction copied from the dashboard; the agent locates strategies and portfolios, asks only for missing public profile details, shows a registration plan, and proceeds after approval.

A Stance entry needs 63 trading days and 20 closed trades before it ranks

The threshold is stated precisely, which is the sort of detail that either builds or destroys trust in a leaderboard. Official ranking begins after 63 trading days and 20 closed trades, and each of those trades must have used at least 1% of assets. The record itself starts on the day the strategy connects, and historical results cannot be added afterwards, so the 63 days cannot be skipped by importing an old history. Until a strategy reaches the threshold it appears under a building a record heading, from its first decision onward. Notably, the registration path requires no live brokerage account, no balance, and no broker key, which is what lets a coding agent automate registration at all. The rule is not about capital, it is about time and trade count, and the 1% floor exists to stop a record built from dust trades.

A ChatGPT subscription can stand in for the API key

The prerequisites ask for Python 3.10 or Docker, plus either an OpenAI API key or a ChatGPT Plus or Pro subscription. The second option is routed through a module named as an OAuth proxy for Codex, and the cost figures are given in the page itself, $20 a month for Plus and $200 for Pro. Three commands cover the whole lifecycle:

bash
# One-time login (browser will open for ChatGPT auth)
python -m cores.chatgpt_proxy.oauth_login

# Re-authenticate (switch account, or refresh expired tokens)
python -m cores.chatgpt_proxy.oauth_login --force

# Run with your ChatGPT subscription
PRISM_OPENAI_AUTH_MODE=chatgpt_oauth python stock_analysis_orchestrator.py --mode morning

The switch between billed API access and subscription access is one environment variable, and re-authentication is a flag on the login module rather than a separate tool. Tokens refresh on their own, so a second login is only needed when the ChatGPT account or its password changes.

The dependency list pins a fork by commit and pins OpenAI for a schema reason

The requirements file carries its own archaeology in comments, which is more useful than the version numbers alone. The MCP agent library is not taken from a release at all: it is pinned to a commit SHA in a fork, with a comment explaining that a commit lets pip notice fork updates without a forced reinstall, while a branch reference is ignored once the version already matches. OpenAI is pinned to an exact version rather than a range, and three comment lines explain why. The upper bound was raised because the agents package requires it, coexistence with the MCP runtime was tested on a date in June 2026, and a later OpenAI release made a cache write token field mandatory that the agents package still builds without it. The same file lists python-telegram-bot twice, once plain and once with the job queue extra, and it keeps three PDF paths alive: a pinned Playwright runtime as the verified path, wkhtmltopdf as a legacy backup, and ReportLab as a direct alternative.

The compose file mounts your secrets read write and the database as a single file

The compose definition is worth reading for what it mounts and how. Reports, PDF reports, HTML reports, charts, and telegram messages are directories, and the environment file, the MCP agent config, and the MCP agent secrets file are mounted from the host as well. The crontab directory is the only mount marked read only, so the files holding your credentials are attached writable while the schedule file is not. The SQLite database is mounted as a file rather than as a directory, which means the host path has to be an existing database file for the container to see it. The service keeps itself alive with a restart policy of unless stopped and joins a bridge network, and cron jobs are on by default through an environment flag whose comment says setting it to false disables them. A closing comment records a bug worth knowing about: an earlier health check always reported unhealthy when cron was disabled, because it tested cron state, so the check now lives in the image and looks at database tables.

The image builds a Korean locale, a Node runtime, and a Python package manager

The Dockerfile starts from Ubuntu 24.04 and pins Python 3.12 through the distribution's own package selection, then generates a Korean locale, installs Korean fonts, sets the container time zone to Seoul, and adds cron, git, curl, and editors. Two runtimes arrive by piping a remote script into a shell: Node 22 from a distribution setup script, and the uv package manager from an installer script. After uv runs, the path gains a Cargo bin directory, which is the Rust convention rather than uv's usual install location, and the file does not say where uv actually landed. The image also runs a distribution upgrade on every build, so two builds of the same commit are not the same image. Requirements are copied in before the source to keep the dependency layer cached, the virtual environment lives at a fixed path inside the image, and the file ends mid sentence, on a Korean comment about notices being missing from the deployed image.

Two quickstart paths, two output directories, and a promotion that expired in April

Running it takes one script and an API key:

bash
# Clone and run the quickstart script
git clone https://github.com/dragon1086/prism-insight.git
cd prism-insight
./quickstart.sh YOUR_OPENAI_API_KEY

which produces a report for one ticker, after which the demo script takes stock symbols and an optional language flag:

bash
python3 demo.py MSFT              # Microsoft
python3 demo.py NVDA              # NVIDIA
python3 demo.py TSLA --language ko  # Tesla (Korean report)

The container route runs the same demo inside a purpose built image:

bash
# 1. Set your OpenAI API key
export OPENAI_API_KEY=sk-your-key-here

# 2. Build and start the local quickstart image
docker compose -f docker-compose.quickstart.yml up --build -d

# 3. Run analysis
docker exec -it prism-quickstart python3 demo.py NVDA

The two paths write to different places, with the Python route saving PDF reports under a directory named for the US market tree and the container route saving into a quickstart output directory, and the first container build is expected to take several minutes. Two optional keys widen the output: a Perplexity key in the agent config file for news analysis, and a separate sentiment key for structured social context on US news. Elsewhere the page carries a mobile app promotion dated until Apr 23, 2026 offering double credits, a date that has already passed relative to the newest commit, and the full installation section's first code block stops partway through its clone command.

Editorial conclusion

PRISM-INSIGHT is worth a look if you want a full analysis pipeline rather than a chart library, and the Stance design is the part other leaderboards should copy. Two cautions before you deploy it. The compose file bind mounts your .env and agent secret files without a read only flag, and the image installs Node and its package manager by piping remote scripts into a shell, so read both before putting anything sensitive in that container.

Frequently asked questions

What is PRISM-INSIGHT?

It is an AI based stock market analysis and trading system in which 13 or more specialized agents collaborate to detect surge stocks, generate analyst grade reports, and execute trades automatically. The documentation is published in five languages.

Do I need an OpenAI API key to run PRISM-INSIGHT?

No, not necessarily. The prerequisites accept either an OpenAI API key or a ChatGPT Plus or Pro subscription. With a subscription you log in once through the OAuth proxy module and set PRISM_OPENAI_AUTH_MODE to chatgpt_oauth when running the orchestrator.

What is Stance in PRISM-INSIGHT?

It is a public leaderboard for system trading strategies that accepts no uploaded track records and no backfills. The server seals decision time and price, then calculates outcomes, so every record starts on its registration day.

When does a PRISM-INSIGHT Stance entry start counting?

Official ranking begins after 63 trading days and 20 closed trades, each using at least 1% of assets. Before that the strategy appears under building a record. Registration needs no live brokerage account, balance, or broker key.

How is PRISM-INSIGHT installed?

With Python 3.10 or later, or with Docker. The quickstart script generates a report after a clone, and a compose quickstart image does the same in a container. Reports land in prism-us/pdf_reports for the Python path and in ./quickstart-output/ for the container path.

Official sources

  1. dragon1086/prism-insight on GitHub
  2. License: AGPL-3.0
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/dragon1086-prism-insight.svg)](https://hysenlabs.com/projects/dragon1086-prism-insight)