Étincel

Your README reads like a robot wrote it.

Prove it.

Deterministic. Local. No install, no account, no model call.

Paste your text

"Our platform seamlessly leverages best-in-class solutions to delve into your workflow..."

orange

2 hard-ban terms, uniform paragraph length, low sentence-length burstiness.

Paste your own

It doesn't rewrite you. It shows its work.

drafts/announcement.mdorangescore 42

  • mediumuniform-paragraph-length7 paragraphs, most running about the same length with little variation between them. Vary paragraph length more.
  • mediumlow-burstiness19 sentences averaging 9 words, with little variation in length from one sentence to the next. Mix short sentences with long; allow fragments.
  • mediummechanical-register-driftFragment rate and structural variety (sentence openers, punctuation mix) sit off where docs prose typically lands. Allow more sentence fragments and vary openers/punctuation more.

strengthsspecificity 30.5/1k wordsconcrete:abstract 0.83:1

1 file audited, 1 at or above orangeexit 1

Every finding names what it found, where, and why it counts. You decide what to change. Étincel never edits a character of your text.

We measured it. Here are the numbers, including the bad one.

Most tools in this category assert that they work. We publish pooled AUC per register, measured against labeled corpora by a separate open tool, with a fixed seed so anyone can reproduce it. A pull request that drops any of these fails CI.

RegisterAUC
memo0.909
essay0.900
blog0.820
general0.748
docs0.735
email0.540

Email is barely better than a coin flip. It's uncalibrated on purpose, and we track it anyway so a regression doesn't slip by unnoticed. If you're linting email today, know what you're getting.

Then stop the problem upstream.

A linter can only tell you what already went wrong. Étincel also runs as an MCP server, so Claude Code, Claude Desktop, Cursor, Zed, and Windsurf can draft in a voice trained on your own writing before you ever read the output.

Train it from three emails you wrote. It measures sentence rhythm, contraction rate, em-dash habit, paragraph variance, and the phrases you actually reach for. Not guessed from a description. Measured from samples, then discarded: what gets kept is the statistical profile, not your writing.

Train a style called "me" from these three emails: ...

Set my default style to "me"

Draft the release notes in my voice

Works with

  • Claude Code
  • Claude Desktop
  • Cursor
  • ChatGPT / Codex
  • Zed
  • Windsurf
  • Any MCP client

What it looks like

Three ways it drafts in your voice.

Claude Desktop

Draft a reply to Priya about the Q3 renewal numbers

get_style_guide → jordan-default

Hey Priya, numbers are in. Q3 renewal came in at 94%, three points ahead of plan. Full breakdown before Thursday's call.

Voice: Jordan

Slack, email, LinkedIn

A reply that sounds like you

Turn the connector on in Claude Desktop, Cursor, or ChatGPT. It pulls your style guide before it drafts anything.

README.md

## Installation

## Quickstart

claude mcp add --transport http etincel https://etincel.ai/api/mcp

Drafted from this diff

Swapped the install section for a two minute quickstart. One command, no config file to hand edit.

Docs and changelogs

A README, drafted from your diff

Claude Code and Cursor reach for Étincel on their own and draft straight from the diff, no prompt needed.

Review comment

fetch(url).then(r => r.json())

await fetch(url, signal)

Good catch on the abort signal. This still parses a 500 as valid JSON if the body's empty though, worth a status check first?

Posted in your voice

PR reviews

The review comment, in your voice

Ask your coding assistant for the comment or the PR description in your voice instead of its default one.

One house voice, in the repo, under review.

Drop a .etincelrc at the root and your team's banned terms, register, threshold, drafting instructions, and house voice live in version control instead of in one person's head. It survives the person leaving.

{
  "bannedWords": ["Acme Cloud Platform"],
  "register": "docs",
  "threshold": "orange",
  "instructions": "Always include a one-line CTA at the end.",
  "style": { "name": "House Voice", "dials": { "formality": 6, "emDashUse": 0 } }
}
- uses: AIStoryHub/etincel@main
  with:
    patterns: "docs/**/*.md README.md"
    threshold: orange

What this is not

Not an AI detector

It never renders a verdict on who wrote something. It finds patterns and tells you where they are. Pointing it at someone else's writing to prove they used AI will give you a bad answer, and you should not do that.

Not a humanizer

Those rewrite your text to slip past a detector instead of telling you what to fix. Étincel doesn't modify your words; you decide what changes.

Not a replacement for Vale

Vale matches patterns you configure, and does it well. Étincel measures shape (rhythm variance, paragraph uniformity, repetition against your own past drafts), the kind of thing pattern matching can't reach. Run both.

Questions, answered.

What is Étincel?

A layer that gives your AI assistant a trained writing voice, not another platform to manage. Connect it once from Claude Code, Claude Desktop, Cursor, or any other MCP client, then pick a preset tone or train one from your own writing samples. From then on, it drafts and revises everything from emails to PR descriptions in that voice.

What is MCP?

MCP (Model Context Protocol) is the open standard that lets an AI assistant call external tools directly inside a conversation. It's not exclusive to Claude: Cursor, ChatGPT/Codex, and other MCP clients support it too. Étincel exposes tools to list, train, and set writing styles, pull a style guide, and audit a draft, so any MCP client reaches for them without you copying anything by hand.

Can it write short things like Slack messages or LinkedIn posts, not just long articles?

Yes. It's tuned for anything you'd draft yourself, a two-line Slack message and a LinkedIn post included, not only long-form pieces. Ask Claude for either one and it pulls the same style guide.

Can I use it during a PR review?

Yes, if Claude Code is already reviewing the diff. Ask it to write the review comment or the PR description in your voice instead of its default one, the same way it would for an email.

Can I use it outside a chat client?

Yes. audit_text is a plain function under the hood, no model call, so it also ships as a command-line tool: npx etincel lint 'docs/**/*.md' scans a repo and exits non-zero above a threshold, and a GitHub Action wraps the same check for pull requests. Useful for READMEs, docs, and PR descriptions in CI, not just inside a chat client.

Does it rewrite my writing automatically?

No. The audit tool is a deterministic, rules-based scan that flags AI-writing tells, like uniform paragraph lengths or an unearned em dash, with severity and specifics, plus a strengths signal (specificity, sentence rhythm) so fixing every flag doesn't flatten the piece. It never silently rewrites your words; you decide what to change.

Is my writing sent anywhere?

Your writing is never stored. Drafts and revisions exist only in your conversation, whichever client you're using, not saved anywhere on our end. Training samples aren't stored either: Étincel extracts a statistical profile from them, sentence-length patterns, punctuation habits, characteristic phrases you tend to repeat, and discards the raw text. On a local install, it also keeps the opening few words of each sample, so it can flag if a new draft opens the same way as several past ones; that stays on your machine. The hosted profile is scoped to your account in a Postgres database, protected by row-level security and your sign-in, not shared with other users or used to train anyone else's voice.

Does it only work with Claude?

No. Étincel is a standard remote MCP server over Streamable HTTP with OAuth, nothing in the protocol is Claude-specific. Add it once with a single command for Claude Code, paste the server URL into Settings → Connectors in Claude Desktop, or point Cursor, ChatGPT/Codex, or another MCP client at the same URL. They all use the same OAuth sign-in and the same set of tools.

Is Étincel free to use?

Free while it's in beta. There's no paid plan yet, sign in and every tool is available.

Free while in beta.

MIT licensed no telemetry no network calls github.com/AIStoryHub/etincel