gameworkerkim/vibe-investing: an AI quant research repository, not a trading bot
AI-powered Vibe Investing for NASDAQ, S&P500 & crypto: LLM quant trading tools, multi-agent backtesting, and data-driven market columns (mNAV arbitrage, BTC-Nasdaq coupling, Alpha Arena). 미국 주식·가상화폐 AI 투자 큐레이션·칼럼·트레이딩 봇.
At a glance
- What is it?
- The repository is a curated collection of Korean-language investment columns, prompt guides and small HTML lab apps for LLM-assisted research on NASDAQ, S&P 500 and crypto. It ships no backtest engine and no broker integration, so read it as a research notebook with a web front end.
- Who is it for?
- Adopt this repository if you are an analyst or solo researcher who wants the prompt libraries, the TokenForge prompt compressor and the column archive as raw material for your own pipeline, and who is comfortable reading Korean. Do not adopt it if you need a backtest engine, a broker connection or a documented API, because the repository contains none of those.
- Can I use it commercially?
- Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly HTML, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What problem gameworkerkim/vibe-investing actually addresses
The README states the author's position directly: AI is a tool like Excel, LLMs are not omniscient, and the human insight that reads the model matters most. The repository is the working record of that stance. It collects investment columns on NASDAQ, the S&P 500, crypto and luxury-goods sectors, plus curated guides on prompt quality, token cost and code-reading tools. The audience is a reader who already trades or researches and wants a second opinion on how to use an LLM in that workflow, not a developer looking for a library to import.
The scope is wide on purpose. The README compares the layout to a Japanese discount store, saying the repository is scattered and that a weekly readme update is unlikely, with updates arriving on a random cycle. That is an honest description of what you get: a set of folders whose contents move at different speeds, some of them research documents, some of them small deployed web apps. Anyone expecting a single coherent codebase will be disappointed, and the README does not pretend otherwise.
How the repository is laid out and what each part does
The top level mixes prose and code. Directories such as 01.Trading Strategy/, 02.Investment Idea Column/, 03. Media-Column/ and Paper 논문/ hold written research. TechDoc/ holds tool guides. Alongside those sit application folders: TokenForge/, VibeQuant/, AIInvestor/, CASSANDRA AI/, Harness quantv2/, QQQUpDownSignal/, MyETF Project/, Toss/, toss-dashboard/, kiwoom_sdk/ and LAON_VaultGuard/. The primary language reported for the repository is HTML, which matches the fact that several of these are static pages rather than Python packages.
The dependency surface is small. The requirements.txt file lists only pandas, numpy, scipy, matplotlib, requests, tqdm and yfinance, so the Python side is ordinary data analysis rather than a deep learning stack. The .env.example file defines the environment contract for the LLM-backed pieces: CLAUDE_API_KEY, DEEPSEEK_API_KEY, PORT defaulting to 3000, and DEFAULT_LLM accepting claude or deepseek. That file is the clearest single statement of how the hosted components are wired.
The deployment story is split across two platforms, and the README is explicit that the paths differ. The DART Monitor app lives at dart-monitor-pi.vercel.app, with Vercel pulling from the root ./ of the separate repository github.com/gameworkerkim/cassandra-ai, whose package.json is named dart-monitor. The monorepo folder CASSANDRA AI/, which contains a space in its name, is described as a copy and not the Vercel root. The Lab page at vibequant.cc/lab/ is a Cloudflare Pages project named vibequant-web that serves VibeQuant/pages/lab/, with TokenForge as the default tab. The README warns that pointing Pages at TokenForge/ or CASSANDRA AI/ will not change /lab/. A path table is kept at VibeQuant/pages-lab/SOURCE.md.
Installing the Python side and the .env.example contract
There is no install section in the README. The repository does provide requirements.txt, so the conventional route is a virtual environment followed by pip install -r requirements.txt. Because the top level is a mix of documents and app folders, run the command from the repository root so that all listed packages resolve in one environment.
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtAfter installation, the only dependency that reaches the market is yfinance. The requirements file pins nothing beyond the package names, so the versions you resolve are whatever pip selects at install time. The README does not describe a data schema, a cache directory or an output format for the Python scripts, which means any pipeline built on top of yfinance here is yours to define.
For the LLM-backed components, the repository ships .env.example as the template. Copy it to .env and fill in the keys. The template shows the exact variable names, the default port and the default provider.
cp .env.example .env# LLM Provider API Keys
CLAUDE_API_KEY=sk-ant-xxx
DEEPSEEK_API_KEY=sk-xxx
# Server port
PORT=3000
# Default LLM provider: claude or deepseek
DEFAULT_LLM=claudeThe README does not document a start command for a server, so the PORT value cannot be verified as reachable from the repository alone. Treat the .env file as configuration for the hosted apps rather than as a local service you can launch from the root.
TokenForge and the token-cost argument behind it
TokenForge is the most concrete tool in the repository. Its stated job is to rewrite Korean prompts for coding agents such as Claude Code and ChatGPT into what the README calls caveman-ultra English: no articles, no greetings, no please, no ROLE or TASK boilerplate. The README claims that Korean prompts cost more tokens than the same meaning in English, and that TokenForge shows estimated savings for Claude and ChatGPT separately, with a stated margin of plus or minus 15 percent. It uses DeepSeek through the same Worker key as play.vibequant.cc but has no financial gate, because it is a coding prompt converter.
The README also describes a fallback path: when no key or route is available, a mock mode converts the Korean into an English wrapper rather than leaving the Korean in place, and the README reports sample savings of roughly 53 percent for Claude and 45 percent for ChatGPT on its sample Korean prompt. Those numbers come from the project's own sample, not from an independent measurement, and the README does not describe the sample size or the tokenizer used. The manual at TokenForge/docs/LAB_MANUAL.md walks through concept, planning and token optimization with screenshots.
The design constraint worth noting is that TokenForge keeps paths, code and proper nouns byte-perfect while stripping style. That is a sensible boundary for a coding prompt, but it also means the tool is optimizing for a narrow class of input. A prompt that depends on tone, hedging or politeness to set the model's behaviour will lose exactly the parts the tool removes.
Where the repository is the wrong tool
Despite the topic tags, this is not a backtesting framework. There is no engine in the repository layout that loads a strategy, replays historical bars and reports metrics. The folders named Harness quantv2/ and QQQUpDownSignal/ suggest experiments in that direction, but the README does not document a backtest command, a data schema or an output format. If your goal is to validate a strategy on historical data with reproducible results, you will be writing that layer yourself, and the yfinance dependency in requirements.txt will not be sufficient for intraday or survivorship-bias-free work.
There is also no broker integration in the documented material. The kiwoom_sdk/ and Toss/ folders exist, but the README does not describe authentication, order placement or paper-trading modes for either. The .env.example file contains only LLM keys and a port, which confirms that the documented configuration surface is about language models, not about trading accounts.
Licensing is a second gap. The README carries an MIT badge linking to opensource.org, but the repository metadata does not list a licence, and no LICENSE file appears in the top-level entries. A badge is a claim, not a grant. Until a licence file is present, the default position is that no permission has been granted for reuse, and the columns and prompt guides are the author's written work regardless of what the badge says.
How it differs from a full quant framework
A framework such as the Python backtesting ecosystem takes a different approach: it defines a strategy interface, supplies historical data adapters and produces performance statistics as its primary output. The unit of work is a strategy object, and the value is reproducibility. This repository inverts that. The unit of work is a document or a small page, and the value is the argument inside it, whether that is a column on mNAV arbitrage, a comparison of LLM wiki tools, or an evaluation of public prompt libraries for finance.
The practical consequence is that the two are complementary rather than competing. You would not replace a backtesting library with this repository, and you would not get the prompt-quality discussion in this repository from a backtesting library. The prompt guides, in particular, address a failure mode that quant frameworks ignore entirely: persona prompts such as telling the model it is Warren Buffett, which the README argues are unvalidated and can introduce flattery bias and herding risk. That is a critique of method, not a piece of software.
Maintenance, upgrades and what to check before depending on it
The last push to the default branch was on 2026-09-15, so the repository is current as of that date. The README states that a weekly readme update is unlikely and that updates arrive on a random cycle, so the cadence of the documentation is not a reliable signal of the cadence of the code. The repository is not archived.
Upgrade cost is dominated by the deployment split rather than by dependencies. Because the Lab page is served from VibeQuant/pages/lab/ through a Cloudflare Pages project named vibequant-web, and the DART Monitor app is served from a different repository's root through Vercel, a change in one place does not propagate to the other. The README's own warning about this is the most useful maintenance note in the file: deploying the wrong folder leaves /lab/ unchanged. The command it gives for the Pages project is shown below.
cd VibeQuant/pages && npx wrangler pages deploy . --project-name=vibequant-webOn the Python side, the pinned packages are all widely used and stable, so the upgrade surface is small. The LLM side is the volatile part: DEFAULT_LLM accepts claude or deepseek, and any change to those providers' APIs or pricing lands directly on TokenForge and the other LLM-backed pages. The README's price comparisons for models such as Tencent Hy3 are dated to a specific release and should be re-checked rather than quoted.
Editorial conclusion
Adopt this repository if you are an analyst or solo researcher who wants the prompt libraries, the TokenForge prompt compressor and the column archive as raw material for your own pipeline, and who is comfortable reading Korean. Do not adopt it if you need a backtest engine, a broker connection or a documented API, because the repository contains none of those. Before relying on anything here, open VibeQuant/pages-lab/SOURCE.md to confirm which GitHub path feeds which deployed URL, and check the licence status of the repository itself, since the README badge says MIT but the repository metadata does not list a licence file.
Frequently asked questions
What is vibe investing?
The repository describes it as curation, strategy, columns and papers built around using AI as a tool for investing, covering NASDAQ, the S&P 500, crypto and luxury-goods sectors. The README states the author's view that LLMs are not omniscient and that human insight in reading the model matters most.
What does "vibe" stand for in this project?
The README does not define the word as an acronym. It uses it in the phrase Vibe Investing and contrasts AI with a tool like Excel, so the term refers to the working style rather than to an abbreviation.
What is an example of a vibe in gameworkerkim/vibe-investing?
The repository does not use the word in that sense. Its concrete examples are tools and documents, such as TokenForge converting Korean prompts into caveman-ultra English, or the columns on mNAV arbitrage and BTC-Nasdaq coupling.
What is your vibe meaning?
The README does not answer this. It uses the word only in the project's own name and describes AI as a tool like Excel, so the repository offers no general definition of the term.
What does "vibe" mean in the context of music?
The repository does not discuss music. Its material covers NASDAQ, the S&P 500, crypto, luxury-goods sectors and LLM tooling, so this question falls outside what the README addresses.
Community notes