Étincel: Non-Fiction Writing Connector
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
Find the AI tells in your prose. Deterministically, locally, in CI.
No install, no account, no model call, no network.
Étincel is two things. A **deterministic audit** that finds the patterns making prose read as machine-written, as a CLI, a GitHub Action, and an MCP tool. And a **voice layer** that trains Claude, Cursor, or any MCP client to draft in a style measured from your own writing, so the problem is smaller before you ever read the draft.
AI-drafted prose has a recognizable shape: uniform paragraphs, hedged authority, em dashes where a comma would do, closings that resolve too neatly. Étincel encodes the rules against that shape and, just as important, shows you what it found and why instead of quietly overwriting your voice. There is no model call anywhere in the audit path, and you decide what changes. You stay the author.
Does it work?
We measure it rather than assert it. Pooled AUC per register, measured by assay against labeled corpora with a fixed bootstrap seed, so any PR that drops these numbers fails CI:
| Register | AUC |
|---|---|
| memo | 0.909 |
| essay | 0.900 |
| blog | 0.820 |
| general | 0.748 |
| docs | 0.735 |
| email | 0.540 |
Email is close to a coin flip. It's deliberately uncalibrated, and we track it anyway so an accidental regression doesn't go unnoticed. general is uncalibrated too. The calibrated registers are docs, blog, memo, and essay; use those if the number matters to you. See efficacy-baselines.json and src/data/SOURCES.md for method and provenance.
How this compares
**vs. Vale + vale-ai-tells**
Vale is an excellent markup-aware linter and vale-ai-tells is a serious 78-rule package. They match tokens against patterns. Étincel measures shape: sentence-rhythm variance, paragraph-length uniformity, and repetition against your own previous drafts, the kind of statistical layer vale-ai-tells' own README says needs analysis beyond what token matching can do. Étincel also feeds a trained voice to the model before you draft, which no linter does. Running both is reasonable; they overlap less than you'd expect.
**vs. skill files (stop-slop, avoid-ai-writing, no-slop)**
Those are instructions to a model, and they help. But a prompt can't verify it worked, can't produce an exit code, and can't gate a merge. Use one *and* run this in CI.
**vs. humanizers (Undetectable.ai, QuillBot, StealthWriter)**
Those rewrite your text to evade detectors. Turnitin now has a dedicated AI-paraphrasing detection feature, expanded in 2025 to target humanizer output specifically. Étincel does the opposite job: it never modifies your text, and it would be a poor tool for fooling anyone.
**vs. detectors (GPTZero, Pangram, Originality.ai, Copyleaks)**
Those answer "was a machine involved?" with a probability, over a whole document, as a verdict on authorship, in the cloud. Étincel answers "which specific patterns make this read as machine-written?" with locations and severities, locally, and never renders a verdict on who wrote something.
Install
Also listed on the official MCP registry as ai.etincel/etincel-nonfiction, so MCP-aware clients that auto-discover servers from there (VS Code's @mcp gallery, for one) find it without any of the config below.
Claude Code
Or from a local clone: /plugin marketplace add /path/to/etincel.
Claude Desktop / other MCP hosts
From a local clone instead: npm install && npm run build, then point args at ["/path/to/etincel/dist/server.js"] with "command": "node".
Remote (hosted, multi-tenant)
A hosted version is also available at etincel.ai, exposing
the same tools over Streamable HTTP (https://etincel.ai/api/mcp) with
per-account auth instead of stdio. Point any MCP client at it directly:
The hosted server isn't part of this repo; this repo is the local/stdio
engine, CLI, and skill that the hosted version is built on top of.
Using it
Once installed, just ask for what you'd normally ask for, like "draft an email to the team about the delay," "write a blog post about X," or "clean up this memo," inside Claude Code or Claude Desktop. The skill picks up automatically for non-fiction prose of meaningful length. To train your own voice: