Cadence

cadence · prose fluency for any AI agent or the command line

Make it sound like you wrote it.

Cadence learns a voice from writing you admire, then writes in it. Underneath, a deterministic checker scores any draft and names every tell, so a clean result is something you check, not just trust.

marketing-draft.txt flagged · grade D

In today's world, finding the right productivity app can be a daunting task. Our cutting-edge platform leverages powerful AI to seamlessly streamline your workflow. Whether you're a busy professional or a student, our comprehensive solution empowers you to do more. It's not just an app, it's a game-changer. When it comes to getting things done, we've got you covered.

Most productivity apps add work instead of removing it. This one starts with your real day. It reads what's due and what's blocking you, then shows the single next thing to do. Students use it. So do people running teams. You won't get a dashboard to admire. You'll get fewer open tabs.

0 · clean100 · slop
0255075100
63 /100
grade D
Checked example · real detector scores, no model runs in this demo

The tell is the rhythm.

Cadence is named for the thing models get wrong first. Flat prose holds one sentence length, leans on words that sound certain but carry nothing, and reaches for the same shapes on reflex. The detector measures each one.

In today's fast-paced landscape, organizations must adapt. Our solution is robust, scalable, and built for the future. It isn't merely software, it's a partner. It's worth noting that, in some sense, results may vary. Every sentence runs about the same length. Every sentence runs about the same length. The variance never moves, and that flatness is the loudest signal of all.

Flat rhythm
Sentence-length variance near zero. The strongest tell, weighted highest.
Hollow confidence
robust, powerful, seamless, comprehensive: words that assert without saying.
Reflexive triad
The three-part list reached for by habit, not because there are three things.
Negation pivot
The "it's not X, it's Y" seesaw, used to manufacture contrast.
Cliché opener
Throat-clearing that delays the first real sentence.
Hedge stacking
Qualifiers piled until the claim disappears.

Try it now. Nothing to install.

The same detector runs as a web page. Paste any text and see the grade plus every tell, entirely in your browser. On a phone, add it to your home screen and it runs offline like an app.

  • Runs on-device. The text never leaves the page; nothing is sent anywhere.
  • The same engine. Identical scores to the CLI and the editor extensions.
  • Installable. On iPhone, tap Share, then Add to Home Screen for an offline app.
The Cadence score page grading a paragraph of AI marketing copy at grade D, with every tell named.

One idea. The voice does the rest.

A voice is a profile Cadence measures from a sample and writes toward. Below, one brief in five of the ten shipped voices. Read for the change in structure, not just the wording. Every score is real output from the detector.

brief · reassure someone who feels they're falling behind their peers

counsel
A philosopher answering a private worry. Reframes your question into a better one.

You open the app and everyone is ahead of you. Engaged, promoted, somewhere sunlit. Underneath is a quiet arithmetic: they have more, so I have less, so I must be less.

But notice what that smuggles in. It assumes one shared finish line, and that the people posting are reporting rather than performing. Neither holds. Nobody posts the afternoon they spent staring at the ceiling.

Here is a question to set beside am I falling behind? Behind whom, and toward what? Name the finish line and you usually can't. The race dissolves.

score 0/100 · grade A·rhythm CV 0.57
reckoning
Scene first, then a hard truth. Aphoristic close.

At your ten-year reunion someone will have the house, the title, the symmetrical children, and you will do the math on the drive home. Here is what the math leaves out. Every person in that room ran a different race on a different track, and the clock you keep reading was never theirs to begin with.

The comparison isn't wrong. It is measuring nothing. You are not behind. There is no line to be behind.

score 0/100 · grade A
plain
Say it once, in the fewest honest words.

Everyone you follow is ahead of you. That is what the feed is for. It collects the wins and hides the ordinary Tuesdays, then shows you the total as if it were one person's life. It isn't.

You are measuring your whole self against other people's edited parts. Do one thing today that matters to you. Then do another tomorrow.

score 0/100 · grade A·rhythm CV 0.67
punchy
High contrast: a long build, then a short hit.

You spend an hour scrolling and come away sure everyone has it figured out. They don't. The feed is a trophy case, not a life: the promotions and the beaches and the rings, never the 2 a.m. doubt or the rent that came late.

You are racing people who aren't running. Close the app. Build one real thing this week. That is the whole game.

score 0/100 · grade A·rhythm CV 0.73
measured-academic
Careful first-person reasoning that concedes before it concludes.

It helps to separate two claims that the feeling of falling behind tends to run together. The first is that one's peers have, in fact, achieved more; the second is that such achievement is the right measure of a life. Grant the first, for the sake of argument. The second does not follow.

A timeline records what is legible and public, and stays silent on everything that resists that format, which is to say most of what matters. So even where the comparison is accurate, it answers a question you never meant to ask.

score 0/100 · grade A·rhythm CV 0.47

Ten voices ship with it

counsel A philosopher answering a private worry; reframes your question into a better one.“Name the finish line and you usually can't. The race dissolves.”
reckoning Scene first, then a hard truth.“The comparison isn't wrong. It is measuring nothing.”
measured-academic Careful first-person reasoning that concedes before it concludes.“Grant the first, for the sake of argument. The second does not follow.”
plain Say it once, in the fewest honest words.“You won't get a dashboard to admire. You'll get fewer open tabs.”
punchy High contrast: a long build, then a short hit.“Close the app. Build one real thing this week. That is the whole game.”
seminar A professor demystifying a hard text; direct, wry, and driven by metaphor.“A poem is not a safe you crack. It is a room with the lights off. Feel for the switch.”
dispatch Narrative science-journalism: open on a scene, accumulate the detail, then land the idea.“The family never named the experiment. Everyone else called it proof.”
column A calm analytical essay: start from a fact, reason it through, hand over a usable principle.“It's worth pausing on how strange this is. We called the trade progress.”
kin A parent's unsparing letter to a child; anchors every truth in the body, then lands on a short imperative.“Hold your body close. It is the only country you will ever truly own.”
essence First-principles tech-blog writing: strip a domain to its laws, reason up, then land on conviction.“Whoever can put the most mass in orbit writes the rules. Everything else is commentary.”

Add your own with /cadence learn <sample>. Cadence reads the sample, measures its real rhythm with the detector, and writes a profile to voices/<name>.md. Profiles are plain markdown. Read them, edit them, share them.

voices/counsel.md · the profile /cadence learn writes, abridged
---
name: counsel
label: Counsel
register: brand
---

Essence  a philosopher answering a private worry: takes the
         question you asked, finds the assumption inside it,
         and hands back a better one.

Rhythm   ~16-word average, very wide swing (CV ~0.74), a long
         winding sentence, then a three-word verdict.
Devices  reframe to a better question · philosophy, then
         something you can touch · question cascade in the
         reader's voice · self-implication.
Never    closes on reassurance. It closes on a reframe.

A detector you can run yourself.

The engine is plain Node with no runtime dependencies. Local scoring makes no network requests; a URL is fetched only when you ask. The score is deterministic, and each lexical tell is named. On the 48-sample regression corpus, precision is 90.9% and recall is 41.7%. That small, authored corpus is a regression check, not a blind authorship test.

▍Sentence-length variance
Measures the spread in sentence lengths alongside the lexical rules. Read the findings in context.
Banned-phrase list
“In today's world,” “when it comes to,” and the rest of the stock openers and fillers.
Hollow-confidence words
Assertions that carry no content: seamless, robust, powerful, comprehensive.
Triad density · negation pivots
The reflexive three-part list and the “not X, it's Y” seesaw.
Hedge stacking · adverb · em-dash rate
Qualifier pile-ups and the punctuation habits that give a draft away.

Gate it in CI: --strict exits 1 above 25; --max sets your own ceiling. The source API also exposes exact score contributions. See the scoring model. A passing gate is not a quality guarantee.

Five commands.

These operations are shared across agents. The examples below use Claude Code syntax; use your host's invocation shown in the install cards, or ask naturally.

CommandWhat it does
/cadence learn <sample>Reads a book, article, or URL and extracts a reusable voice profile.
/cadence write <brief>Drafts new prose in a chosen voice.
/cadence recast <text>Rewrites existing text into a chosen voice, keeping the meaning.
/cadence deslop <text>Scores text and reports every tell: diagnose, then optionally fix.
/cadence voicesLists the voices you've learned plus the shipped seeds.

Pick your agent. Keep your voice.

One shared skill, the same ten profiles, and a local detector. Use the model already configured in your host — Kimi, GLM, or another supported model. Cadence does not change endpoints, API keys, or approvals.

v0.4.0 is released. From your target project (not inside the Cadence source checkout), install from npm: npx --package=cadence-deslop@0.4.0 cadence-install-skill --agent kimi. Replace kimi with codex, zcode, claude-code, opencode, or grok. The cards below use a source checkout. Release notes and downloads.

First, get a checkout. You need Node 18 or newer for the detector.

git clone https://github.com/wuisabel-gif/Cadence.git
cd Cadence

Then choose one user-wide installer for your host:

Codex

Start a new session and select $cadence, or ask to use Cadence.

npm run install:codex

~/.agents/skills/cadence

Project-local installation is available. No repository AGENTS.md is overwritten.

Codex setup →

Kimi Code CLI

Start a new session and use /skill:cadence, or ask naturally.

npm run install:kimi

~/.kimi-code/skills/cadence

Honors KIMI_CODE_HOME. This targets the current Kimi Code CLI; legacy kimi-cli paths differ.

Kimi setup →

ZCode Agent

Refresh Settings → Skills, enable Cadence, then select $cadence.

npm run install:zcode

~/.zcode/skills/cadence

This is a user-wide install. For project-only use, follow ZCode's import UI; --project is not supported here.

ZCode setup →

Claude Code

Use /cadence or a natural request with your configured provider.

npm run install:claude

~/.claude/skills/cadence

A standalone alternative to the plugin. If your Cadence plugin works, changing models needs no second install.

Claude Code setup →

OpenCode

Ask OpenCode to load the cadence skill. No special slash command is assumed.

npm run install:opencode

~/.config/opencode/skills/cadence

Your agent needs access to its skill and shell tools. Keep its existing permission policy.

OpenCode setup →

Grok Build

Start a new grok session and select /cadence, or ask to use Cadence.

npm run install:grok

~/.grok/skills/cadence

This is Grok Build CLI, not grok.com. Grok Bot uses a workspace pack, not this installer.

Grok setup →

Prefer one repository? Codex, Kimi Code CLI, Claude Code, OpenCode, and Grok Build accept -- --project /path/to/project after the npm installer command. ZCode uses its project import UI instead. See the scope and upgrade guide before changing an existing installation.

Try: “Use Cadence to recast README.md in the essence voice and report the before/after scores.” The skill asks the agent to preserve facts and markup, load the voice, and run the same scoring command before and after. Review the diff; a low score does not prove that meaning survived.

Installation and detector checks cover all six targets. Native discovery has been checked in Codex and Kimi Code CLI; live-agent rewrite checks in the other clients remain manual. Local scoring is offline, but the host's writing model may still use a remote service.

What's new in the source.

One detector, more places to use it. Source updates and published releases are marked separately.

Prefer the Claude Code plugin?

The existing marketplace route still works. Add it once and install the plugin, then start a new session. Other agents use the source installers above.

# 1 · add the marketplace (note the capital C) > /plugin marketplace add wuisabel-gif/Cadence # 2 · install the plugin: name@marketplace > /plugin install cadence@cadence
# 3 · start a fresh session, then try > Use Cadence to list the available voices. > Use Cadence to de-slop this draft. > Use Cadence to write a 150-word intro in the counsel voice.
v0.4.0 · ten seed voices · available on npm
This plugin route is for Claude Code. It is separate from the standalone agent skills. Regular claude.ai chats use the uploadable skill bundle, and can verify scores only when code execution is available.

Both steps matter: marketplace add makes Cadence available; install turns it on. Then open a new session. Skills load at startup.

Rather click than type? Run /plugin, open the Discover tab, and pick Cadence from the list.

Working from a clone? Use the self-contained installer rather than a symlink that leaves supporting files behind:

# develop locally $ npm run install:claude $ npm test # run the test suite

Questions.

The ones that come up most, starting with the one that trips everyone up first.

How do I invoke Cadence in my agent?
The standalone Claude Code skill and Grok Build use /cadence; Codex and ZCode use $cadence; Kimi Code CLI uses /skill:cadence. For a Claude plugin install, choose Cadence from the installed command menu or ask naturally. In OpenCode, ask it to load the cadence skill. The install cards explain discovery. A regular web chat without local execution cannot run the bundled detector.
I added the marketplace but nothing happens.
Adding the marketplace only makes Cadence available. You also have to install it: /plugin install cadence@cadence, then start a fresh session.
Will it change my meaning or my layout?
Preserving both is a requirement, not a guarantee. The skill tells the agent to edit only the prose and review the diff for changed facts or structure. Check the result yourself: the detector cannot tell whether a smoother sentence dropped a fact, and a lower score does not prove that code fences or links survived.
Is a clean score the same as good writing?
No. The score measures AI fingerprints, not quality. A spotless score on an empty point is still an empty point. Have something to say first; let the low score fall out as a side effect.
Can I use it without Claude Code?
Yes. Use a shared agent installer, the browser checker, or the published CLI: npx cadence-deslop draft.txt. The first npm invocation may download the package. For the newest source features, run node skills/cadence/scripts/deslop.mjs from a checkout; npm and source versions can differ.
Can another website call Cadence as an API?
There is no Cadence-hosted HTTP API. A site can score in the visitor's browser with extension/detector.js, or run analyze() from cadence-deslop on its own server. See the embed guide. Cadence does not rewrite; that still needs the site's own model.
How do I add my own voice?
/cadence learn <sample>: point it at about 500 words you admire (a file, a paste, or a URL). It measures the rhythm and writes a reusable profile you can call by name.
What does it cost?
Cadence is MIT-licensed open source, and its local detector requires no model API. Your agent or model provider may charge for writing requests. Cadence does not supply an account, subscription, or API key.
Can grok.com or Grok Bot install Cadence like Claude Code?
No. Grok Build CLI installs with npm run install:grok into ~/.grok/skills/cadence. grok.com cannot load that folder. Grok Bot has no drop-in path: pack files for its /workspace, score a file, then save a private skill in the app. Cadence is not listed in the Grok Bot marketplace.
Do Kimi or GLM need different writing rules?
No model-specific fork is needed. Install for the host you use and keep its supported provider setup. The same voice profiles and detector work regardless of which model writes the draft. Cadence does not configure endpoints, guarantee model access, or bypass tool approvals.
How large can an input be?
The source analyzer accepts up to 5 MiB of UTF-8 text. The CLI checks raw files before reading and stdin while reading; extracted documents and URL text are checked before analysis, after retrieval or extraction. This is not a download or decompression limit. Oversized input shows an error rather than a stale score.
Can I train the adapter on Kaggle?
There is an experimental notebook and setup guide. Dry mode only exercises sample fixtures. Smoke and train modes need a working GPU environment, and full GPU training remains unverified. The current row split does not guarantee source-group isolation. Do not treat a dry-run report as trained-model results.