Agent Skill + browser research agent for Serenity (@aleabitoreddit) — distilled tweet corpus, live market data, attention radar, and supply-chain bottleneck workflows
Demo · Quick start · Architecture · Query flow · Query modes · 中文
Full walkthrough: ticker view, live quotes, thesis cards, and agent narrative in the browser UI.
Note: GitHub README does not play inline
<video>— use the link below (or add an optional short GIF atdocs/assets/serenity-skill-demo.giffor autoplay in-page).
▶ Watch full demo (MP4)
· python aio_serenity.py · research support only
Research support only. Ranked priorities and reasoning — not buy/sell instructions, not auto-trading. Not affiliated with @aleabitoreddit.
Serenity Skill is an independent research tool (OlaXBT). It is not Serenity (@aleabitoreddit), does not speak for her, and does not impersonate her.
| What it is | A pipeline that distills her public posts and articles into a structured, queryable corpus + live-aware research workflows |
| What it is not | Her real-time view, an official product, investment advice, or trade execution |
| How to read outputs | Labelled Serenity corpus view vs live verification vs research map — always cross-check price, news, and thesis age |
| Corpus limits | Bundled archive may lag; views evolve; distilled bullets can be incomplete or stale |
This disclaimer appears in the browser UI (footer + empty state), in every report (footer line), and in SKILL.md agent rules.
Quality is controlled in layers — not one magic prompt:
| Layer | What it guarantees | Command / file |
|---|---|---|
| Corpus & scripts | Deterministic thesis, radar, live quote/news | python scripts/run_qc.py, pytest tests/ |
| Structured report | Tables, charts, thesis cards before any LLM text | serenity_twin/ui_render.py |
| Agent system prompt | Language, section headers, evidence rules, no buy/sell | serenity_twin/agent_prompt.py |
| Context boundary | LLM sees only executed JSON context (no invented tickers) | serenity_twin/llm_stream.py |
| Locale check | Flags Chinese headers in English answers | serenity_twin/agent_output.py |
| Human review | Corpus distill + stale thesis cross-check | distillation/MAINTENANCE.md |
Re-run python -m pytest tests/ -q after corpus edits. Tune narrative quality via agent_prompt.py and temperature in llm_stream.py (default 0.3).
| What | Serenity Skill — Agent Skill (SKILL.md) + Python toolkit + browser UI for Serenity-style bottleneck investment research |
| Primary question | What does Serenity think about ticker X — and is that view still valid today? |
| One command | python aio_serenity.py — auto-init + browser research agent (OlaXBT) |
| Stack | Python 3.10+ (stdlib core), optional DeepSeek / X API, any Agent-compatible IDE or OpenClaw |
| Repo | github.com/olaxbt/serenity-skill |
| Maturity | 8.9 / 10 — production-ready research MVP (details) |
| Capability | Example prompt |
|---|---|
| Her conviction on a ticker | What is Serenity's view on $SIVE? Stance, tier evolution, key risks. |
| Attention Radar | 14-day heating & new entrants — cross-check theses. |
| Map a theme to bottlenecks | Deep-scan A-share AI semiconductors — scarce layers first, then stocks. |
| One-page research memo | $SIVE thesis memo with evidence ladder and falsifiers. |
| Learn her research method | Serenity-style bottleneck research — one question at a time. |
Full prompt catalog: docs/sample_prompts.md
Serenity's research lens is distinctive: trace hyperscaler capex upstream to the single chokepoint — sole or near-sole supply, hard to design around, often still small-cap. Her public feed is high-volume, multi-ticker, and views evolve over time.
Serenity Skill packages four things other tools don't combine:
- Memory — 5,800+ tweet archive, 43 deep thesis tickers, methodology, track-record, articles
- Workflows —
SKILL.mdroutes Agent queries through deterministic scripts + evidence rules - Live world — auto-fetched quotes, news, SEC (no need to say "search the internet")
- Radar — mention analytics for Heating / new entrants / theme rotation
- Python 3.10+ — core scripts use stdlib only (no
pip installrequired) - Optional: DeepSeek in
.env(browser UI LLM) or your IDE’s model settings (agent chat) - Optional:
X_BEARER_TOKENfor live tweet sync
git clone https://github.com/olaxbt/serenity-skill.git
cd serenity-skill
python aio_serenity.py| Step | What happens |
|---|---|
| First run | Auto-runs init_system.py — validate skill, normalize corpus, split theses, rebuild mentions, QC, install agent skill, seed .env |
| Every run | Opens UI at http://127.0.0.1:17876 — system browser or IDE embedded preview |
| Each prompt | Server auto-runs lookup_ticker.py + live_research.py + structured HTML report |
You never manually run lookup or live-research per question — the UI and Agent do that.
python aio_serenity.py --init # init only
python aio_serenity.py --port 3000 # custom port
python aio_serenity.py --open cursor # IDE embedded browser (e.g. VS Code / Cursor Simple Browser)
python aio_serenity.py --open browser # system browser
python aio_serenity.py --no-browser # headless server — URL in terminalIDE preview: point your IDE’s simple browser at http://127.0.0.1:17876 while the server is running (not the raw index.html file).
.env: remove # from the key line — # DEEPSEEK_API_KEY=... is a comment and is ignored.
More: docs/QUICKSTART.md
| Surface | Command / trigger | Best for |
|---|---|---|
| Browser agent UI | python aio_serenity.py |
Testing prompts, tables, price charts, bilingual UI, SSE streaming |
| IDE agent chat | Load SKILL.md + natural question |
Deep research sessions, web search, editing corpus |
| OpenClaw | Install skill + gateway web tools | 24/7 cron, Telegram briefs (docs/SETUP.md) |
All surfaces share the same Python scripts and corpus. Only the LLM narration layer differs (DeepSeek in browser vs your IDE agent model in chat).
Four layers — no separate runtime per surface:
| Layer | Role | Key paths |
|---|---|---|
| 0 — Corpus memory | Distilled tweets, theses, methodology, track-record | corpus/data/, corpus/references/ |
| 1 — Python tools | Deterministic lookup, radar, live web, sync, distill | scripts/, serenity_twin/ |
| 2 — Live world | Yahoo quotes (incl. crypto spot aliases e.g. BTC-USD), news, SEC |
live_research.py, web_research.py |
| 3 — Agent reasoning | Mode router + optional LLM synthesis | SKILL.md, agent_prompt.py, ui_chat.py |
Extended workflows (theme scans, evidence ladder, A-share playbook) live under reasoning/references/.
Full design doc: docs/ARCHITECTURE.md
One prompt → routed mode → scripts execute → structured report → optional agent narrative. The browser streams progress over SSE (route → corpus → live web → render → LLM).
%%{init: {'theme': 'base', 'themeVariables': {
'fontFamily': 'Inter, system-ui, sans-serif',
'primaryColor': '#f8f4ff',
'primaryBorderColor': '#e781fd',
'primaryTextColor': '#2d2640',
'secondaryColor': '#ffffff',
'tertiaryColor': '#faf8fc',
'lineColor': '#a78bfa',
'clusterBkg': '#fafafa',
'clusterBorder': '#e8e0f0'
}}}%%
flowchart LR
P(["Your prompt"]) --> R{"Route<br/>A–E · brief"}
R --> S["Scripts<br/>lookup · radar · live web"]
S --> M["Merge corpus + live JSON"]
M --> K{"Thesis stale?"}
K -->|yes| W["Stale alert"]
K -->|no| H["Structured report"]
W --> H
M --> L{"DeepSeek<br/>configured?"}
L -->|yes| A["Agent narrative<br/>streams first"]
L -->|no| H
A --> O(["Answer in UI"])
H --> O
Report layout (v0.3.10):
- Agent answer — LLM synthesis at the top when
DEEPSEEK_API_KEYis set (locale follows your prompt, not the UI toggle) - Supporting data — live quote table + chart, thesis cards with tiered evidence, radar tables, stale warnings
- References — tweets, web sources, SEC — collapsed by default
- Disclaimer — footer on every report
Without DeepSeek, step 1 is omitted and a deterministic synthesis block may appear instead.
Fresh ticker (never in corpus): lookup_ticker.py returns found_in_theses = false → follow methodology.md 14-question checklist + live_research.py → output is independent analysis, not Serenity's stated view.
| Mode | Trigger | Scripts (auto) | Output |
|---|---|---|---|
| A — Ticker view | $TICKER, Serenity's view, fresh-name / methodology checklist |
live_research → lookup_ticker |
Corpus stance + live verification + agent narrative |
| B — Radar | ramp, heating, attention | radar → live web on top heating names |
Heating / new entrants / conviction / theme rotation tables |
| C — Theme scan | supply chain, A-share, ETF | live_research --theme + workflow |
Layer ranking → stock list → optional ETF holdings check |
| D — Research memo | 深度研报, thesis memo | Mode C/A + template | Full memo: system change → bottleneck → evidence → falsifiers |
| E — Learning | teach me the method | methodology files | One question per turn; tickers as examples only |
| brief | daily brief | daily-brief-latest.txt + radar |
Snapshot table from scheduled refresh |
Light-mode interface (purple accent #e781fd, v0.3.10) with English / 中文 chrome toggle. Built and maintained by OlaXBT — free for the dev community.
| Feature | Detail |
|---|---|
| Entry | python aio_serenity.py |
| Default URL | http://127.0.0.1:17876 (auto next port if busy) |
| Agent plan UX | Step list (route → corpus → live web → render → LLM) with streaming progress |
| Auto live web | Yahoo quote, 3M chart, news search, SEC — every analysis prompt; crypto uses spot symbols (BTC-USD, not ETF tickers) |
| Structured output | Tables, metric cards, thesis cards — references demoted to collapsible section |
| Agent narrative | Auto-enabled when DEEPSEEK_API_KEY is in .env — rendered as markdown at top of report |
| Answer locale | Detected from your prompt text — English prompts get English section headers |
| Task-oriented prompts | Sidebar labels describe research tasks — see ui/prompts.json |
| Session history | SQLite at corpus/data/sessions.db (v0.3+) |
| IDE-only models | Not available in browser — use agent chat + SKILL.md in your IDE instead |
The browser UI is a standalone Python server (aio_serenity.py). It cannot call models that are only available inside an IDE agent runtime.
| Surface | Agent narrative | How |
|---|---|---|
| Browser UI | Needs DEEPSEEK_API_KEY in .env |
Python server calls DeepSeek directly |
| IDE agent | Uses your IDE’s configured model | Load SKILL.md → ask in agent mode — no browser API key |
Default off. Without X_BEARER_TOKEN, bundled corpus works; sync exits cleanly with status: disabled.
cp .env.example .env
# X_BEARER_TOKEN=...Daily automation (Windows): scripts/daily_brief.ps1
| Path | Contents |
|---|---|
corpus/data/tweets.json |
Canonical archive — 5,826 posts |
corpus/references/theses/*.md |
Sector thesis files — 43 deep tickers in index |
corpus/references/methodology.md |
14 transferable principles + runnable checklist |
corpus/references/track-record.md |
Dated calls + calibration |
corpus/data/mentions-*.csv |
Mention analytics — 724 tickers |
| Script | Purpose | Network |
|---|---|---|
aio_serenity.py |
All-in-one init + browser UI | yes (UI) |
scripts/lookup_ticker.py |
Thesis + tweets + radar hint | no |
scripts/live_research.py |
Quote + news + SEC | yes |
scripts/radar.py |
Attention momentum | no |
SKILL.md |
Agent Skill entry (IDE + OpenClaw) | — |
| Use | Where |
|---|---|
| IDE agent chat LLM | Your IDE’s model settings |
| Browser UI LLM (optional) | .env → DEEPSEEK_API_KEY |
| Live tweet sync (optional) | .env → X_BEARER_TOKEN + config.json |
Overall: 8.9 / 10 — shippable research-agent MVP, not a fully autonomous trader.
| Dimension | Score | Notes |
|---|---|---|
Agent Skill (SKILL.md) |
★★★★★ | Modes A–E, mandatory live verification, script-first rules |
| Browser UI | ★★★★☆ | v0.3.10 — agent-first layout, streaming, EN/中文, sessions |
| Corpus & tooling | ★★★★☆ | 5.8k tweets, 43 deep theses, lookup/radar/distill/QC |
| Tests & evals | ★★★★☆ | 47 pytest incl. E2E output, stale, session store, UI formatting |
Unified from three open-source Serenity skill projects:
| Source | Contribution |
|---|---|
| yan-labs/serenity-aleabitoreddit | Tweet archive, theses, methodology, track-record |
| lanfuli/aleabito-serenity-skills | Radar patterns, method framework |
| muxuuu/serenity-skill | A-share/HK workflow, scorecard |
Publish only olaxbt/serenity-skill.
Serenity Skill (olaxbt/serenity-skill) is an open-source Agent Skill and investment research agent for followers of @aleabitoreddit (Serenity).
Search terms: serenity skill, serenity aleabitoreddit, what does Serenity think about, Serenity ticker thesis, CPO bottleneck stocks, attention radar investing, supply chain bottleneck research, agent skill investing.
Capabilities: supply-chain bottleneck analysis · CPO / optical / semiconductor theses · attention radar · A-share and US equity theme scans · thesis memos · live market verification (Yahoo quotes, news, SEC) · browser UI · IDE agent (SKILL.md) · OpenClaw.
The browser UI may show “Serenity Twin” internally — the public project name is Serenity Skill (this repo).
| Question | Answer |
|---|---|
| What is Serenity Skill? | An Agent Skill (SKILL.md) + Python toolkit that distills @aleabitoreddit’s public research into queryable corpus + live-aware workflows. |
| How do I ask “what does Serenity think about $TICKER”? | Run python aio_serenity.py or load SKILL.md in your IDE agent — scripts auto-fetch thesis + live quotes. |
| Is this official or affiliated with Serenity? | No — independent research distill by OlaXBT. Not investment advice. |
| IDE agent vs browser UI? | Same scripts; IDE agent uses your configured model, browser UI uses optional DEEPSEEK_API_KEY. |
GitHub repo topics (suggested): agent-skill, investment-research, aleabitoreddit, supply-chain, semiconductor, cpo, python, openclaw.
- Serenity's self-reported returns are unverified; public feeds have survivorship bias
- Many names are volatile micro/small-caps; theses decay — confirm current fundamentals
- Social posts are leads; high-confidence claims require filings and exchange disclosures
- This project is a research lens, not a signal feed or trading bot