mrkeyoor.com_
Fri 16 Oct 18:52 UTC
AI Toolsevaluationupdated 08 Oct 2026

crush-monitor review

Crush Monitor is Chinese-first; an English README exists, but the interface and analysis labels remain Chinese. It runs a local web app that sends pasted two-person chats to Jev or a text model, then labels emotions and intentions, scores signs of affection, and grades the user's replies.

+21stars / 7d
Verdict

Our run installed 189 packages in 14 seconds and all 77 tests passed, so Crush Monitor's software path is in better shape than its playful premise suggests. Use it if you read Chinese, accept provider processing of the chat, and can keep an AI score in perspective. Skip it when privacy means offline inference or when you need evidence that the labels correspond to real relationship outcomes.

We ran it

Lab card: what happened when we ran crush-monitorScreenshot of crush-monitor (github.com/FerryCorleone/crush-monitor)
Install✓ · 14s189 packages · 174 MB
Build✓ · 10s
Tests✓ · 9s77 passed · 0 failed of 77 (node:test)
Known vulns00 critical · 0 high · 0 moderate · 0 low (npm audit)
Repo57 files~7,526 lines of source · 0.4 MB · 0 CI workflows · tests dir

Answers from our run

Does crush-monitor build from source?

Dependencies installed in 14 seconds (189 packages), and the build succeeded in 10 seconds. We cloned commit 954f691 into a clean Debian container with 3 CPUs and no project-specific setup.

Do crush-monitor's tests pass?

Yes: 77 of 77 passed when we ran the project's own test command (node:test). Some failures need services or credentials a bare container does not have.

Does crush-monitor have known vulnerabilities in its dependencies?

npm audit found none in the dependency tree at the time of our run.

Who should not use crush-monitor?

Anyone whose messages must remain offline: original chat text is sent to the selected model provider for analysis.

What are the alternatives to crush-monitor?

Open WebUI, PrivateGPT, TweetNLP. Our run installed 189 packages in 14 seconds and all 77 tests passed, so Crush Monitor's software path is in better shape than its playful premise suggests.

Setup4/514-second install and green build; a provider key is still required
Docs5/5English setup, privacy limits, formats, quotas, and errors are explicit
Community3/5279 stars and 1 open issue on a project under 2 weeks old
Maturity3/577 tests pass, but there is no CI or accuracy benchmark

Who it’s for

Chinese-reading users who want a second opinion on a two-person text conversation.
Developers studying structured LLM output, transcript parsing, and incremental browser-side history.
People willing to pay a model provider and treat every score as a prompt for reflection, not a fact about another person.

Who it’s NOT for

Anyone whose messages must remain offline: original chat text is sent to the selected model provider for analysis.
English-only users: the English README covers setup, but the current interface and labels are Chinese.
Group chats, media, or raw chat databases: the parser accepts two-person text and rejects images, audio, ZIP, HTML, and database imports.
People seeking proof that a score predicts attraction: the README says the score is not that probability and reports no cross-model accuracy benchmark.
Teams that require repository CI before merging: our tests passed locally, but the measured snapshot had 0 CI workflows.

Setup reality

Our Node 22 sandbox installed commit 954f691 in 14 seconds, adding 189 packages and using 174 MB. The build passed in 10 seconds. All 77 node:test cases passed in 9 seconds, and npm audit reported 0 known vulnerabilities.

Node.js 22.12 or newer is required. The page runs at 127.0.0.1:3178, but useful analysis needs a Jev or text-model API key and paid or trial quota. Connection and live checks can consume provider credits.

The API key is stored unencrypted in .runtime/model.json, with user-only permissions on macOS and Linux. Messages and results stay in the browser database, yet original text needed for analysis goes to the chosen provider. The UI is Chinese and only two-person text formats are supported.

Seventy-seven tests support the plumbing, not the psychology

Crush Monitor's strongest surprise is ordinary engineering. Our run passed all 77 node:test cases after a successful TypeScript and Vite build. The repository tests transcript parsing and model-facing behavior without spending API credits. Returned categories, counts, and numeric ranges are validated, malformed judgments can be retried, and truncated batches are split once before the app reports what remains incomplete.

None of those 77 tests proves that an affection score matches what another person feels. The README makes that boundary unusually clear. Its score combines 6 dimensions, including engagement, care, openness, and concrete action, while an active refusal caps the result. LLM percentages are normalized relative weights, not calibrated psychological probabilities, and Jev values should not be compared with LLM output as if both used one measurement scale.

Local storage still sends original messages to a provider

Chats and results live in the current browser's local database, and the Express service listens on loopback by default. That is better than uploading a permanent archive to a hosted Crush Monitor account. Analysis still requires sending the relevant original messages to Jev, DeepSeek, Qwen, OpenAI, Claude, or whichever compatible endpoint you select. The project says this plainly: local storage does not mean offline inference.

Privacy therefore depends on 2 systems you control only partly: your machine and the model provider. Clearing the app deletes browser-held records, but it cannot recall requests already sent to an API. A local OpenAI-compatible endpoint can narrow that boundary, provided the model can follow the expected structured format. People pasting intimate conversations should also consider whether the other participant agreed to that processing.

What happened when we ran it

Our fresh unprivileged sandbox installed commit 954f691 in 14 seconds. It used Node 22 with 3 CPUs and 8 GB of RAM, added 189 packages, and occupied 174 MB. The build completed in 10 seconds. Npm audit found 0 known vulnerabilities across critical, high, moderate, and low severities.

The test command finished in 9 seconds with 77 passed and 0 failed. Those results cover repository mechanics in the environment we measured. We did not call a paid model, rank model accuracy, or judge the advice against real relationships. The measured checkout held 57 files and about 7,526 lines of source, with a tests directory but 0 CI workflow files and no Dockerfile.

Two-person text is the parser's firm boundary

The import path understands copied WeChat and QQ text plus 2 common WhatsApp export layouts. Other sources work after you add Name: prefixes. It preserves multiline messages and consecutive messages from the same sender, but it does not infer a missing sender, day/month order, or absent year. The interface also stays Chinese even though the English README is careful and complete.

Only 2-person conversations fit the model. Images, audio, ZIP archives, HTML exports, and messaging databases are outside scope, and the app does not watch another application in the background. Each request stays within 500 messages and 12,000 characters. A paste may reach 250,000 characters, but long individual messages need manual splitting and total retained history depends on browser storage.

The API key sits in one plaintext local file

First launch asks for a provider, key, and model, then offers a connection test capped at 40 seconds. The test uses a small amount of quota but does not read the user's chat. HTTP errors get specific guidance for credentials, credits, permissions, model IDs, and rate limits. Changing models keeps messages, clears old analysis, and recomputes it so results from 2 models are not mixed.

The local server writes the key to .runtime/model.json. On macOS and Linux it restricts the file to the current user, and the settings endpoint does not return the complete secret. It remains plaintext. Backups, malware, another process under the same account, or an accidental upload of .runtime can expose it. The README warns users not to share that directory or commit it.

Version 1.2.0 is active, while accuracy remains unranked

Release v1.2.0 shipped on October 3, 2026 with web-based model configuration and more providers. GitHub showed 279 stars, 1 open issue, and a push on the same date. The project had existed for under 2 weeks. That is healthy early activity, not enough history to show how it handles provider API changes or subtle parser regressions over several releases.

The maintainer reports live checks against native DeepSeek and representative Bailian models, but does not claim every preset works or that any model wins on Chinese relationship chats. That restraint is the right closing note. Crush Monitor is a polished lens for rereading a conversation. Its 77 passing tests earn trust in the app's mechanics; trust in its interpretation still belongs to the user.

Alternatives

ProjectWhat it isPick it when
Open WebUI gh↗A general self-hosted interface for local and hosted language models.pick this instead when you want to ask your own questions about a chat or use a local model without fixed relationship scores.
PrivateGPTAn API layer for private applications that can use local models and retrieval.pick this instead when keeping text inside your own inference stack matters more than a ready-made relationship interface.
TweetNLPA Python library for sentiment, emotion, and other short-text analysis tasks.pick this instead when you need programmable text labels rather than advice about a personal conversation.

What people are saying

  1. [velocity-scout] FerryCorleone/crush-monitor

Sources

  1. Crush Monitor Chinese README
  2. Crush Monitor English README
  3. Crush Monitor v1.2.0 release
  4. Crush Monitor repository activity

More ai tools reviews

universal-modder · DeepEP-Ascend · DeepGEMM-Ascend · hypoarena · jeeves · faster-whisper · the whole board →