// AGENT RESEARCH

TICKER IN.
REPORT OUT.

The problem is not “another stock chatbot.” The problem is a multi-agent research graph (market, sentiment, fundamentals, news, bull/bear, portfolio manager) that must not block Flask. TradingAgents launches a detached subprocess at /srv/workspace/meltuc/tradingagents/ with OpenRouter LLMs and yfinance market data. Flask reads markdown reports off disk. Five-point rating: Buy / Overweight / Hold / Underweight / Sell. Runs and watchlist are per-user. Owner-scoped 404s. CSV export. Bulk delete 1–100. Rate limit 20/min on /run. MCP tools declared. the runs table has historically been empty — the pipeline is wired, not proven as a daily habit. Alpha Vantage in old metadata is unused. Telegram import in routes is dead. This landing extends MelTuc _shared/base.html even if an older marketing HTML existed.

Premier OpenRouter graph yfinance Detached subprocess
Open App Watchlist How it works
7
Report sections
5
Rating scale
20/m
Run rate limit
0
Alpha Vantage
// HOW IT WORKS

Five steps from ticker to markdown accordion

Flask does not run the graph in-request. If the VPS package is missing, runs fail — that is an ops dependency, not a spinner bug.

01
Submit ticker + date
POST /tradingagents/run (login). Detached python run_analysis.py TICKER DATE RUN_ID. 20/min.
02
Watch status
/tradingagents/run/<id> auto-refresh. 404 if not your launched_by.
03
Read the sections
Up to 7 markdown files: final, trade, plan, market, sentiment, news, fundamentals.
04
Keep a watchlist
Add ticker+notes. Run Today / Run All Today queues client-side. Soft-delete.
05
Export or delete
CSV of your runs. Bulk-delete owner-scoped. Health JSON skips DB.
Open TradingAgents
// RUN

Form is ticker and date — CSS mock

Not Bloomberg, not TradingView. Not financial advice as a product claim — a research dump.

meltuc.tech/tradingagents/app — CSS mock, not a product screenshot
TickerAAPL
Dateanalysis_date
Staterunning → completed/failed
// REPORT

Accordion of on-disk markdown

Flask reads files the subprocess wrote. Empty disk means empty accordion, not a hallucinated 7 tabs.

meltuc.tech/tradingagents/run/<id> — CSS mock, not a product screenshot
RatingBuy…Sell badge
Ownerlaunched_by
404other user’s run
// HONESTY

Wired ≠ daily-used

If recorded runs is still zero, this page will not invent a performance track record.

meltuc.tech/tradingagents/ — CSS mock, not a product screenshot
LLMOpenRouter via package config
Datayfinance
AV keyunused
Telegramdead import
// NOT ADVICE

A report is not a broker

Five-point badges are extracted from PM text. Markets move. This is a lab tool on a private VPS.

// WHAT IT REFUSES

No in-request LLM. No cross-user peek.

Will not run the graph inside gunicorn timeout hopes. Will not show another user’s run. Will not call Alpha Vantage. RLS deny-all; app uses superuser + code isolation.

// WHO THIS IS FOR

Someone who accepts a long background job

Operator with OpenRouter credits and the /srv package installed. If either is missing, the landing still tells the truth.

// FEATURES

Subprocess, files, your rows

No paper-trading account. No options chain UI.

🚀
Detached run
Subprocess, Flask unblocked.
📑
7 sections
Markdown from results/ on disk.
🏷️
Five-point
Buy through Sell from PM text.
📜
History grid
Your runs, newest first.
⭐
Watchlist
Notes, Run Today, Run All Today.
📄
CSV
GET /api/runs?format=csv.
🗑
Bulk delete
1–100, owner only.
🛡
Ownership 404
status and run pages.
🔌
MCP names
MCP analyze tools.
// GET STARTED

Queue a ticker. Wait for markdown.

Login for /tradingagents/app. This page is not a live blotter.

Open TradingAgents

Requires a MelTuc account. Create one free.

// SAID SLOWLY

What stays true over time

Multi-agent stock analysis — OpenRouter LLM pipeline (deep/quick models), watchlist, and run history. Health stays cheap. If this page disagrees with the signed-in app, trust the app — the product contract and tests enforce that rule.