Skip to content

spinlens

Chinese tool that scans a Bilibili video's comments for rhetorical moves, with eight labels and quoted evidence, optionally via Jev.

ProjectprototypeMIT

Overview

spinlens (话术照妖镜) scans the comment section of a Bilibili video and reports which comments use rhetorical moves rather than arguments, which of eight categories each belongs to, and the exact quoted words as evidence. Categories include muddying the waters, false neutrality, dismissing through memes, minimising harm, sexualised labelling, gender labelling, dismissing by source ('information cocoon') and 'anti-fandom' labelling; one planned category was dropped because its only two examples were mislabelled. It was prompted by a large debate on Bilibili in September 2026, and the authors stress it labels language phenomena, not people, and is a sieve rather than a verdict. Documentation is in Chinese.

Three engines are available: a default locally fine-tuned model (weights about 390 MB, around 40 ms per comment, fully offline), an LLM mode, and a decision-model mode using Jev via TypeSafe's /v1/systemone. In decision-model mode it reads each category's calibrated P(true) noul value and shows eight probability bars with an adjustable threshold, like the local model; there is no batch API, so requests roughly equal comments. The server listens only on localhost and uploads no data.

What the decision model decides

TypeQuestionAnswers
Yes / noDoes this comment use rhetorical move T1-T9 (e.g. false neutrality)?—

How it works

  1. Paste a Bilibili link or BV id
  2. Fetch the comment section
  3. Score each comment for eight rhetorical categories with the chosen engine
  4. Show probability bars, threshold highlights and quoted evidence

Strengths

  • Evidence quoted for every hit
  • Offline local engine option
  • Labels language, not people

Caveats

  • Decision-model mode costs one request per comment
  • Domain-specific to one debate's corpus
  • Chinese only

Getting started

git clone https://github.com/Aolibibi/spinlens.git && cd spinlens && ./install.sh, then node server.js and open http://127.0.0.1:8787.

At a glance

Type
Project
Status
prototype
Language
JavaScript
Runtime
Node server + optional Python model server
Has code
yes
License
MIT

Use cases and integrations

How curated lists describe it

  • Scans a Bilibili video's comments for rhetorical moves rather than arguments - false balance, labelling, muddying - and quotes the evidence for each of eight labels. Chinese.

    MrJev/awesome-jev

Frequently asked questions

What does Jev decide in spinlens?

In decision-model mode, the probability that each comment uses each of eight rhetorical moves.

Does it judge who is right?

No; it labels rhetorical techniques, not people or positions.

Can it run offline?

Yes, with the locally fine-tuned model engine.

Related projects

  • Chrome and Firefox extension that hides AI-written posts on X, LinkedIn, Reddit and YouTube by asking Jev 30 narrow style questions.

    Browser extensionproductionJavaScript
  • Chrome extension that asks Jev slop or not_slop for each X and LinkedIn post and blurs posts above your threshold.

    Browser extensionbetaTypeScript
  • Chrome extension that labels Weibo, Threads and X posts by topic and expression style using Jev and your own label dictionary.

    Browser extensionbetaTypeScript
  • Chrome and Firefox extension that scores a draft X post with Jev on a dozen rubrics and gives a send-or-don't verdict.

    Browser extensionbetaJavaScript
  • CLI gate for X drafts: local hard secret checks, then Jev Noul questions with thresholds; exits non-zero to block posting.

    ProjectbetaPython
  • Applies a qualitative codebook to open-ended survey answers and reviews with Jev, exporting uncertain rows for human review.

    ProjectprototypePython