Skip to main content

Multi-model AI writing style detector

Project description

Claudiness

A CLI tool that detects AI writing patterns in text. Scores how closely a piece of writing matches the stylistic fingerprint of Claude, ChatGPT, Grok, or any AI model with a .style definition.

Unlike AI detectors that use machine learning (and frequently get it wrong), claudiness uses pattern matching against specific, documented markers that readers associate with AI-generated text. It tells you what people will think looks like AI, not whether AI actually wrote it.

Install

pipx install claudiness

Or with pip:

pip install claudiness

Usage

# Score a file against all known models
claudiness essay.txt

# Score against a specific model
claudiness essay.txt --model claude
claudiness essay.txt -claude              # shorthand

# Inline text
claudiness --text "That's a great question. I think..."

# Pipe from stdin
echo "some text" | claudiness

# See which patterns matched
claudiness essay.txt --verbose

# Machine-readable output
claudiness essay.txt --json
claudiness essay.txt --score-only

Interpreting scores

  • 0-30: Natural sounding, low AI fingerprint
  • 31-60: Some AI patterns detected, may warrant editing
  • 61-100: Strong AI writing patterns, should be rewritten

Use --verbose to see exactly which patterns triggered and rewrite those specific phrases.

What it detects

Each model has a .style file defining its fingerprint across categories like:

  • Hedging - "it's worth noting", "it's important to consider"
  • Balance markers - "on the other hand", "while...also"
  • Vocabulary - model-specific word choices ("delve", "tapestry", "straightforward")
  • Structural patterns - bullet ratio, em-dash frequency, parenthetical asides
  • Safety disclaimers - "I should note", "it's important to remember"
  • Penalties - patterns associated with other models reduce the score

Scores are normalized per 500 words and capped per category so no single pattern type dominates.

Bundled models

  • Claude (Anthropic) - 7 categories
  • ChatGPT (OpenAI) - 6 categories
  • Grok (xAI) - 6 categories

Custom styles

Add your own .style files to:

  • ~/.config/claudiness/styles/ - user-wide
  • ./.claudiness/styles/ - project-local

Or point to a directory:

claudiness essay.txt --style-dir /path/to/styles

See the bundled .style files in src/claudiness/styles/ for the format.

Updating style definitions

Style fingerprints can be refreshed from the web:

# Requires: pip install claudiness[fetch]
claudiness fetch                    # Update all models
claudiness fetch --model claude     # Update one model
claudiness fetch --search           # Search for new sources

List available models

claudiness list-models

No dependencies

Core functionality uses only the Python standard library. The fetch subcommand optionally requires requests:

pip install claudiness[fetch]

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

claudiness-2.0.1.tar.gz (20.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

claudiness-2.0.1-py3-none-any.whl (22.3 kB view details)

Uploaded Python 3

File details

Details for the file claudiness-2.0.1.tar.gz.

File metadata

  • Download URL: claudiness-2.0.1.tar.gz
  • Upload date:
  • Size: 20.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for claudiness-2.0.1.tar.gz
Algorithm Hash digest
SHA256 952dc22a509094daf36c73bb86612350cd97a533f82275096fdd372a8274f52f
MD5 b6d03da512af6fda0e8e54df1793ccd2
BLAKE2b-256 6e737bc1f7c9e27ba213b2af437187ae1b4a40bf3b78ca785e9a28ab3a08edd7

See more details on using hashes here.

Provenance

The following attestation bundles were made for claudiness-2.0.1.tar.gz:

Publisher: publish.yml on DavidRickmann/Claudiness

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file claudiness-2.0.1-py3-none-any.whl.

File metadata

  • Download URL: claudiness-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 22.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for claudiness-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5fd315f4eccf6151a4f17224a776ae3e2c60d2e30de008383dcfb07d8ca2dd91
MD5 9762b184ea4db1da276bb483ebbb0a04
BLAKE2b-256 5a03e34780b7e8af15804f311f29c8c23b7c0a5ecb025e8dff863449412da465

See more details on using hashes here.

Provenance

The following attestation bundles were made for claudiness-2.0.1-py3-none-any.whl:

Publisher: publish.yml on DavidRickmann/Claudiness

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page