Follow Aleabito logo

Follow Aleabito

Community
lanfuli
follow-aleabito

Track Serenity / @aleabitoreddit on X and turn the feed into (1) a beginner-friendly Chinese iMessage digest with first-principles + Buffett-style judgement, (2) cumulative 60-day ticker mention analytics CSVs for a website, (3) a Xiaohongshu writing brief, and (4) a durable private research map. Trigger on requests like "follow aleabitoreddit / AleaBito / Serenity", "daily Chinese updates from that X account", "60-day mention analytics", "ticker mention count", "写小红书 aleabito", "aleabito 研究地图 / research map", or any request for Chinese commentary derived from @aleabitoreddit posts.

Overview

Publisherlanfuli
Repositoryaleabito-serenity-skills
Skill namefollow-aleabito
Stars
94
Forks
18
Bundled files
12
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 12 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by lanfuli on GitHub. Read the source before you install it.

Installation

Install the Follow Aleabito AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/lanfuli/aleabito-serenity-skills/tree/main/skills/follow-aleabito
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/lanfuli/aleabito-serenity-skills.git /tmp/aleabito-serenity-skills
mkdir -p .claude/skills
cp -r /tmp/aleabito-serenity-skills/skills/follow-aleabito .claude/skills/follow-aleabito
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Follow Aleabito in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Follow Aleabito on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Follow Aleabito is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Follow AleaBito

Purpose

Track @aleabitoreddit on X and produce deliverables grounded only in fetched posts. Always include source URLs. Treat the content as market commentary, not investment advice.

Language / 语言: deliverables default to 中文 (the digest and Xiaohongshu workflows are Chinese-first by design), but any of them can be produced in English when the user asks. The analytics CSVs and research map are language-neutral.

This skill handles four workflows. Pick the one(s) the user asked for and read the matching reference file only when needed:

User intentWorkflowSection
Daily Chinese update / iMessage digestDigestDaily Digest
60-day mention CSVs, ticker leaderboard, website dataAnalyticsMention Analytics + references/analytics.md
Xiaohongshu postXiaohongshuXiaohongshu + references/xhs-style.md
Research mapResearch mapResearch Map

When producing any AI 分析, read references/analysis-framework.md first. All Buffett-style fields default to unverified; escalation requires cited evidence.

Paths

Reports go under $FOLLOW_ALEABITO_REPORTS_DIR. If unset, default to $HOME/Documents/aleabito-reports. Treat all CSV / meta paths below as $FOLLOW_ALEABITO_REPORTS_DIR/<filename>.

Data Sources

Use scripts/fetch-updates.js. It tries:

  1. X API v2 when X_BEARER_TOKEN exists in ~/.follow-aleabito/.env.
  2. X public syndication fallback when no token is configured.
  3. Logged-in Chrome/X page fallback on macOS when anonymous sources return nothing.

Caveats: the syndication fallback can miss the newest posts or truncate long ones. The Chrome fallback may open https://x.com/aleabitoreddit in the active Chrome tab — expand any Show more before extracting. If the JSON output contains warnings, mention them briefly in the digest or setup guidance.

Never invent posts, prices, positions, or links. If no fetched post has a URL, do not include it.

Daily Digest Workflow

bash
cd "${CODEX_HOME:-$HOME/.codex}/skills/follow-aleabito"
node scripts/fetch-updates.js --include-replies --lookback-hours 36 --max-tweets 50 --output /tmp/follow-aleabito-updates.json
node scripts/build-digest-brief.js --input /tmp/follow-aleabito-updates.json --output /tmp/follow-aleabito-brief.md

Read /tmp/follow-aleabito-brief.md (ticker counts, theme groups, high-signal replies, source links) before writing. Use the raw JSON only when the brief is insufficient.

If tweets is empty:

  • If config.notifyWhenEmpty is true, send 今天 @aleabitoreddit 没有抓到新的可发送动态。
  • Otherwise stop without sending.

Digest structure (Chinese, iMessage-sized — signal over completeness):

  • Title: Serenity / @aleabitoreddit 今日动态
  • 今天她重点看什么
  • 2-4 key takeaways grouped by theme.
  • For each included post/theme: 她的观点 → 小白解释 → 第一性原理 → Buffett 直接判断. Read references/analysis-framework.md for the judgement shape and default-unverified rules.
  • Mentioned tickers/themes, original URL, created time.
  • Footer: 仅作信息跟踪,不构成投资建议。

Send via iMessage. Run mark-seen.js only after send-imessage.js returns status: ok.

Cumulative Mention Analytics

Trigger when the user asks for 60-day analytics, ticker mention counts, website-readable CSVs, or ongoing tracking. The workflow is cumulative, not rolling — the 60-day backfill is a seed; later runs only append new events.

Commands:

bash
# initial backfill (only run once unless the events CSV is missing/corrupted)
node scripts/analyze-mentions.js --backfill-days 60 --include-replies --resume

# daily incremental
node scripts/analyze-mentions.js --incremental --include-replies --resume

# rebuild summary CSVs from existing events without hitting the API
node scripts/analyze-mentions.js --rebuild-only --include-replies --resume

Outputs land in $FOLLOW_ALEABITO_REPORTS_DIR:

  • aleabito-mentions-events.csv — event-level rows.
  • aleabito-stock-mentions-cumulative.csv — leaderboard for website home/search.
  • aleabito-stock-mentions-daily.csv — daily ticker trend.
  • aleabito-mentions.meta.json — last update, API status, rate-limit metadata.

For counting rules, API cost rules, and overlap-window guidance, read references/analytics.md.

If the X API fails, keep the previous CSVs and write the failure to .meta.json. Never overwrite good data on failure.

Xiaohongshu Workflow

Trigger when the user asks for a Xiaohongshu post derived from the mention analytics.

bash
node scripts/build-xhs-brief.js \
  --input "$FOLLOW_ALEABITO_REPORTS_DIR/aleabito-stock-mentions-cumulative.csv" \
  --daily "$FOLLOW_ALEABITO_REPORTS_DIR/aleabito-stock-mentions-daily.csv" \
  --output /tmp/follow-aleabito-xhs-brief.md \
  --variants both

Read the generated brief, then write in Chinese. Default to producing both a full version and an under-1000-Chinese-character version unless the user asks for only one.

Read references/xhs-style.md for writing rules, required structure, and the default-unverified Buffett shape.

Research Map Workflow

Trigger when the user wants a durable research map after analytics.

bash
node scripts/update-research-map.js \
  --events "$FOLLOW_ALEABITO_REPORTS_DIR/aleabito-mentions-events.csv" \
  --summary "$FOLLOW_ALEABITO_REPORTS_DIR/aleabito-stock-mentions-cumulative.csv" \
  --output ~/.follow-aleabito/research-map.json

Also writes ~/.follow-aleabito/research-map.md. Preserve existing manual notes and Buffett fields when refreshing. If evidence is missing, keep fields as unverified or research map — the deterministic script must not invent financial facts.

iMessage Delivery

Recipient lives in ~/.follow-aleabito/config.json:

json
{
  "delivery": {
    "method": "imessage",
    "recipient": "+15551234567"
  }
}
bash
node scripts/send-imessage.js --file /tmp/follow-aleabito-digest.txt
node scripts/mark-seen.js --file /tmp/follow-aleabito-updates.json   # only after send succeeds

If iMessage delivery fails because the recipient is missing, point the user to:

bash
node "${CODEX_HOME:-$HOME/.codex}/skills/follow-aleabito/scripts/setup-config.js" --recipient "<phone-or-apple-id>"

On first run, the user must also grant Messages automation permission in System Settings → Privacy & Security → Automation.

Setup

bash
node "${CODEX_HOME:-$HOME/.codex}/skills/follow-aleabito/scripts/setup-config.js" --recipient "<phone-or-apple-id>"
cp ~/.follow-aleabito/.env.example ~/.follow-aleabito/.env   # then set X_BEARER_TOKEN
export FOLLOW_ALEABITO_REPORTS_DIR="$HOME/Documents/aleabito-reports"   # or wherever the website reads from

Automation

For a daily cron, run in order: fetch-updates.js → write Chinese digest to /tmp/follow-aleabito-digest.txt → send-imessage.js → mark-seen.js only after success. Default recommended time: 8:00 AM in the user's timezone.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Follow Aleabito AI skill do?

Track Serenity / @aleabitoreddit on X and turn the feed into (1) a beginner-friendly Chinese iMessage digest with first-principles + Buffett-style judgement, (2) cumulative 60-day ticker mention analytics CSVs for a website, (3) a Xiaohongshu writing brief, and (4) a durable private research map. Trigger on requests like "follow aleabitoreddit / AleaBito / Serenity", "daily Chinese updates from that X account", "60-day mention analytics", "ticker mention count", "写小红书 aleabito", "aleabito 研究地图 / research map", or any request for Chinese commentary derived from @aleabitoreddit posts.

Why use Follow Aleabito on TypingMind?

Because you install it once and use it with any model. Follow Aleabito is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Follow Aleabito in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/lanfuli/aleabito-serenity-skills/tree/main/skills/follow-aleabito. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Follow Aleabito?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Follow Aleabito?

As many as you like. As long as a model supports skills, you can use Follow Aleabito with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Follow Aleabito AI skill free?

Yes. It is published on GitHub by lanfuli under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇