# last30days-cn: a Chinese-platform research skill for coding agents

> last30days-cn packages eight Chinese platforms behind one Python entry point so an AI agent can produce a dated research report. It is a localized fork of mvanhorn/last30days-skill, and its own disclaimer says it is for study and research only.

**Jesseovo/last30days-skill-cn** — last30days-cn 是一个 AI Agent 技能（Skill），能够自动搜索中国互联网 8 大主流平台最近 30 天的内容，综合分析后生成有据可查的研究报告。

- Repository: https://github.com/Jesseovo/last30days-skill-cn
- Stars: 1,851 · Forks: 196
- Language: Python
- License: NOASSERTION
- Published: 2026-09-10 · Updated: 2026-09-10 · Language: en
- Canonical page: https://hysenlabs.com/projects/jesseovo-last30days-skill-cn

## The gap last30days-cn fills: a dated window over Chinese platforms

General web search answers with whatever the index ranks highest, and it rarely tells you when a page was written. For Chinese-language topics the index is thinner still, and a lot of the useful discussion sits inside platforms that do not expose a friendly search API. last30days-cn takes the opposite approach: it constrains the query to a 30-day window and fans it out across eight named platforms, then assembles the results into one report.

The audience is narrow and identifiable. The README lists installation paths for Agent Skills, Cursor, Claude Code, OpenClaw and Gemini CLI, and states that any agent supporting Bash, Read and Write can use the skill. So the intended user is someone already working inside one of those agents who wants research output they can cite, not a standalone web application. The platforms covered are Weibo, Xiaohongshu, Bilibili, Zhihu, Douyin, WeChat, Baidu and Toutiao, each with its own module in the repository. The homepage field is empty, so the repository itself is the only distribution channel.

## How the eight platform modules resolve a query

The architecture is a single Python entry point, last30days.py, that dispatches to per-platform modules such as weibo.py, xiaohongshu.py, bilibili.py, zhihu.py, douyin.py, wechat.py, baidu.py and toutiao.py. Each module can reach its platform through more than one route, and the README describes a three-tier fallback: API first, then the Playwright browser crawler, then public interfaces or a search engine fallback. That ordering matters because it means a missing API key degrades the result rather than aborting the run.

The browser tier is where the project has spent most of its recent effort. Version 2.1 replaced DOM parsing with XHR interception for Baidu and Xiaohongshu, and version 3.2.0 states that the crawler no longer depends on a fixed Xiaohongshu endpoint, so a platform redesign can still be parsed as long as the response contains note cards. The same release notes say the crawler will not treat sug_items from the search/recommend suggestion endpoint as notes, which was a real source of false positives.

Two smaller mechanisms are worth noting. Version 3.1.0 unified date archiving to Beijing time so that window boundaries do not shift on machines in other time zones, and it made jieba optional by adding a CJK bigram fallback tokenizer. requirements.txt confirms there are no hard Python runtime dependencies, which is unusual for a project that scrapes eight platforms.

## Installing last30days-cn and running a first search

The README's recommended path is the Agent Skills installer, which fetches the skill globally for a compatible agent. Run this from a shell where npx is available:

```bash
npx skills add Jesseovo/last30days-skill-cn -g
```

If you prefer a manual install for Claude Code, the README gives a clone into the skills directory instead:

```bash
git clone https://github.com/Jesseovo/last30days-skill-cn.git ~/.claude/skills/last30days-cn
```

OpenClaw and ClawHub users clone into a different path, ~/.agents/skills/last30days-cn. After installation, the first thing to run is the diagnostic, because it reports which platforms are actually usable on your machine. The README shows both the root entry point and the packaged skill payload entry point:

```bash
py scripts/last30days.py --diagnose
```

Version 3.2.0 extended that output to show the browser mode, the external browser path and whether that path exists. A real search then names the platforms explicitly, as in this example from the README:

```bash
python scripts/last30days.py "AI 工具" --search weibo,xiaohongshu,bilibili,zhihu,douyin,baidu,toutiao
```

The optional enhancements are two pip installs. jieba improves Chinese segmentation but is not required. Playwright is what unlocks the crawler tier and, per the README, takes free usable platforms from 4 to 7:

```bash
python -m pip install playwright
python -m playwright install chromium
```

Reports can be emitted as HTML for offline reading and printing, using the --emit html and --emit html-path options added in version 3.0.0.

## Where last30days-cn breaks, and what it will not do

The honest failure mode is platform drift. The README says outright that platform interfaces can change at any time and that the project does not guarantee all functions remain available. Every release note in the repository is a repair of something that broke: a broken symlink in SKILL.md that blocked npx installs, a marketplace.json owner field that blocked Claude Code installs, Douyin and Toutiao returning zero results silently when their native interfaces were rate-limited. If you depend on this in a pipeline, you are depending on code that is periodically chasing other people's front ends.

The crawler tier also carries a login and captcha dependency that the README does not resolve. It states plainly that browser crawling is still affected by platform login state, captchas and interface changes. Cookie persistence reduces repeat logins but does not remove the requirement.

WeChat is the outlier. The platform table marks it as API or Sogou search, with WECHAT_API_KEY as an optional key, and version 2.0's comparison table lists WeChat as the only platform that still needs an API key. If WeChat public account coverage is the reason you are here, the zero-configuration story does not apply to you.

Finally, the legal framing is not boilerplate. The disclaimer restricts the project to learning and research, forbids commercial use, forbids high-frequency scraping, and points to a collection of Chinese crawler case law. The repository's LICENSE file exists but the metadata reports the license as NOASSERTION, so the actual terms are not machine-readable and you should read the file rather than assume a permissive licence.

## last30days-cn against the upstream skill and plain web search

The clearest alternative is the project it forks. mvanhorn/last30days-skill is the upstream, and version 3.0.0 explicitly synced platform-agnostic capabilities back from it: --as-of historical backfill, cross-platform hotspot aggregation, the LAST30DAYS_DEFAULT_SEARCH and EXCLUDE_SOURCES switches, live probing in --diagnose, and HTML report XSS hardening. So the upstream is the better choice if your research is not China-specific; the fork's contribution is the eight Chinese modules, the Beijing-time window handling, the CJK tokenizer fallback and the Bing fallback search.

The second alternative is simply asking your agent to search the web. That is cheaper and never breaks on a platform redesign, but it gives you no consistent time window and no per-platform provenance. The value of last30days-cn is precisely the constraint: a report that says which platform each item came from and that everything falls inside 30 days.

A third reference point is MediaCrawler, which the README credits as the source of the crawler engine approach in version 2.0. MediaCrawler is a standalone crawler project; last30days-cn wraps similar browser automation inside an agent skill and adds the report generation and fallback logic on top. If you want raw scraping primitives rather than a research report, the upstream crawler is the more direct tool.

## Maintenance cost, versioning and licence questions

The last push to the default branch was on 2026-07-20, roughly two months before this writing, and the repository is not archived. There are no retrieved releases, so distribution is by git tag and by the Agent Skills installer rather than a package registry.

The upgrade cost is mostly environmental rather than code. Version 3.2.0 added a compatibility mode for older machines because Playwright's managed Chromium raises its system requirements over time. On macOS Catalina and similar, the README offers three routes: skip Playwright and rely on public APIs and Bing fallback, point LAST30DAYS_BROWSER_PATH at a Chromium or Chrome build your system can still launch, or set LAST30DAYS_DISABLE_BROWSER=1 to skip browser calls entirely. The README is explicit that the skill will not download or upgrade your system browser, so that path is your responsibility.

On process hygiene, the release notes claim 214 passing tests via python -m pytest tests -q and a payload drift check that keeps the root scripts and the skills/last30days payload in sync. That synchronization matters because version 3.0.0 made skills/last30days an independently installable payload, which means two copies of the entry point exist and can diverge. If you vendor this project, check both.

The licence is the open question. Metadata reports NOASSERTION, the disclaimer forbids commercial use, and those two facts point in different directions. Read LICENSE and the disclaimer together before deciding how you may use the output.

## Conclusion

Adopt last30days-cn if you already run Claude Code, Cursor, OpenClaw or another agent with Bash, Read and Write tools, and you need a dated window over Chinese-language sources rather than a general web search. Do not adopt it if you need commercial redistribution, guaranteed uptime against platform changes, or WeChat coverage without a key. Before trusting any report, run the diagnose command and confirm which platforms actually returned data, then read the disclaimer in README.md, because the project's own terms restrict it to learning and research.

## FAQ

### What is the last 30 days skill?

It is an AI agent skill that searches eight Chinese platforms for content published in the last 30 days and assembles the results into a research report. This repository, last30days-cn, is a localized fork of mvanhorn/last30days-skill aimed at Chinese users and Chinese-language platforms.

### Is last30days-cn free to use?

The README states that seven of the eight platforms work without an API key once Playwright is installed, and that only WeChat still needs a key. The disclaimer separately restricts the project to learning and research and forbids commercial use, so free to run is not the same as free to use commercially.

### How do I install last30days-cn for Claude Code?

The README gives two routes: npx skills add Jesseovo/last30days-skill-cn -g, or a manual clone into ~/.claude/skills/last30days-cn. After either, run py scripts/last30days.py --diagnose to see which platforms are available.

### Does last30days-cn need an API key?

No for most platforms. The README's comparison table lists WeChat as the only platform requiring an API key, with WECHAT_API_KEY optional, and says the rest can be reached through the crawler or public interfaces. The configuration file at ~/.config/last30days-cn/.env is described as optional.

### What happens if Playwright will not run on my older machine?

Version 3.2.0 added a compatibility mode. You can point LAST30DAYS_BROWSER_PATH at a Chromium or Chrome build your system still supports, set LAST30DAYS_BROWSER_CHANNEL=chrome, or set LAST30DAYS_DISABLE_BROWSER=1 to skip browser calls and rely on public APIs and search fallback.

## Sources

- [Issues](https://github.com/Jesseovo/last30days-skill-cn/issues)
- [Jesseovo/last30days-skill-cn on GitHub](https://github.com/Jesseovo/last30days-skill-cn)
- [README](https://github.com/Jesseovo/last30days-skill-cn/blob/main/README.md)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/jesseovo-last30days-skill-cn
