tropius is a CLI tool that detects AI writing tropes in prose using Aho-Corasick pattern matching and structural detectors, based on a trope list from Tropes.fyi.
# desertthunder.dev/tropius
Source: [https://tangled.org/desertthunder.dev/tropius](https://tangled.org/desertthunder.dev/tropius)
`tropius`is a CLI to detect AI tropes in prose\.
## How[\#](https://tangled.org/desertthunder.dev/tropius#how)
We use a pattern dictionary in TOML based on a[trope list](https://tangled.org/desertthunder.dev/tropius/tree/main/meta/tropes.md)from[Tropes\.fyi](https://tropes.fyi/)
```
Text
↓
Aho-Corasick phrase matcher
↓
Structural, repetition, and character-class detectors
↓
Findings report
```
## Usage[\#](https://tangled.org/desertthunder.dev/tropius#usage)
Scan text from stdin:
```
printf 'Let us delve into this robust ecosystem.' | cargo run -q -p tropius-cli
```
Scan article text extracted from a live URL with[lectito](https://lectito.stormlightlabs.org/):
```
# Install lectito
cargo install lectito-cli
lectito 'https://www.solo.io/blog/what-is-agent-identity-human-workload-a-new-layer' \
--format text \
| cargo run -q -p tropius-cli
```
The CLI exits`0`when no findings are found and`1`when it finds trope signals\.
It exits`2`for usage or configuration errors\.
Color output respects[`NO\_COLOR`](https://no-color.org/)\.
## Coverage[\#](https://tangled.org/desertthunder.dev/tropius#coverage)
- an implementation path for every source section in[`tropes\.md`](https://tropes.fyi/tropes-md)
- phrase patterns for literal trope signals
- structural detectors for sentence and paragraph shape
- repetition detectors for repeated metaphor terms and duplicated content
- markdown\-aware detection for bold\-first bullets
- character\-class detection for Unicode decoration
## Inspiration[\#](https://tangled.org/desertthunder.dev/tropius#inspiration)
I got nerd\-sniped on[BlueSky](https://bsky.app/profile/samuel.fm/post/3mp3l3cxg622y)
> [Samuel \- @samuel\.fm](https://bsky.app/profile/samuel.fm)**2026\-06\-25 04:16** “Claudesmell” labeller for[standard\.site](https://standard.site/)records wen
> [owais \- @desertthunder\.dev](https://bsky.app/profile/desertthunder.dev)**2026\-06\-25 04:18** what does claudesmell mean here
> [Samuel \- @samuel\.fm](https://bsky.app/profile/samuel.fm)**2026\-06\-25 04:22** smells of claude, e\.g\. short, punchy yet needlessly florid prose, excessive claudeisms, it’s not just x it’s y etc
> [owais \- @desertthunder\.dev](https://bsky.app/profile/desertthunder.dev)**2026\-06\-25 04:26** You know that feeling of nerd\-sniping about to happen? I gotta use aho\-corasick \+[tropes\.fyi](https://tropes.fyi/)in some way
## Further Reading[\#](https://tangled.org/desertthunder.dev/tropius#further-reading)
[Wikipedia Article](https://en.wikipedia.org/wiki/Wikipedia%3ASigns_of_AI_writing)
[Directory of tropes](https://tropes.fyi/directory)
## License[\#](https://tangled.org/desertthunder.dev/tropius#license)
[unlicense](https://tangled.org/desertthunder.dev/tropius/tree/main/LICENSE)
The article explores the persistent AI writing tic known as 'negative parallelism' (e.g., 'It's not X, it's Y'), its prevalence in AI-generated text, and efforts by companies like OpenAI to reduce overuse.
This paper introduces StoryScope, a pipeline that analyzes discourse-level narrative features to distinguish AI-generated fiction from human-written stories. It achieves high accuracy and reveals distinct narrative fingerprints for different LLMs like Claude, GPT, and Gemini.
A tool called Lighthouse, built by an AI governance engineer, uses runtime validation to detect epistemic drift and confident-sounding nonsense in AI output and writing.
A skill/tool for removing common AI writing patterns from prose, including banned phrases, structural clichés, and sentence-level issues, intended for use with Claude or any LLM.