nopus
Deterministic prose checks for clearer coding-agent responses
What is it?
What it is
nopus is a TypeScript-based open-source tool that acts as a plugin/extension for coding agents (Pi, Claude Code, Codex). It intercepts completed responses from these agents and applies deterministic prose checks to detect overly abstract, jargon-heavy, or hard-to-read language. When a response crosses a configurable complexity threshold, nopus requests a single clearer rewrite from the agent instead of letting the original unclear response stand.
Why it exists
Coding agents powered by large language models frequently produce responses that are technically correct but difficult to read due to abstract vocabulary, uncommon wording, dense noun stacks, and formulaic framing. These 'LLM babble' responses waste developer time and reduce productivity. nopus exists to automatically catch and rewrite such responses, enforcing plain-language clarity without requiring manual intervention, while preserving necessary technical terms, commands, and qualifications.
Who should use it
Developers using AI coding agents (Pi, Claude Code, Codex) who want clearer, more direct prose and accept automated rewrites for complex responses.
Who should avoid it
Users who prefer uninterrupted, highly abstract AI responses and want minimal automated intervention on agent outputs.
Stars over time
+7 stars in the last 2 days
How it works
A quick walkthrough in plain English
How nopus works
Step 1 of 3
You interact with it
Open nopus, send a request, or connect it to your stack.
Features
Advantages
- Reduces abstract LLM babble in coding agent responses
- Deterministic measurements ensure consistent behavior
- Configurable sensitivity matches different user preferences
- Preserves technical terms, commands, and necessary detail
- Prevents infinite retry loops (max one automatic rewrite)
- Long responses are not penalized due to proportion-based metrics
- Multi-platform support across major coding agents
- Evidence-based rewrites give agents concrete guidance
- Multiple measurement paths required together, avoiding false triggers
- Easy per-platform installation via npm or plugin marketplace
- Observed 5-19% rewrite rates provide balanced intervention
Disadvantages
- Requires Node.js 22 or newer
- Only supports Pi, Claude Code, and Codex agents
- Pi response hiding feature only available on that platform
- May miss some complex responses (false negatives)
- Extra-simple mode may omit important supporting context
- Hide-original feature defaults to enabled, making rejected responses invisible
- Requires new session to load after plugin installation
- Limited to one automatic rewrite per response
- Multiple thresholds must be crossed together, potentially missing simpler issues
- Observed rewrite rates vary significantly (5-19%) depending on sensitivity
Installation
native
Install Node.js 22 or newer. Pi: ```sh pi install npm:@syzom/nopus ``` or install from GitHub: ```sh pi install git:github.com/Vistyy/nopus ``` Claude Code: ```text /plugin marketplace add Vistyy/nopus /plugin install nopus@nopus ``` Codex: ```sh codex plugin marketplace add Vistyy/nopus codex plugin add nopus@nopus ``` Development: ```sh pnpm install pnpm check ```
FAQ
What does nopus actually do when a coding agent responds?
nopus checks each completed response using deterministic prose measurements such as uncommon wording, abstract vocabulary, noun stacks, and formulaic style cues. When the combined measurements cross your chosen complexity threshold, it sends the response back for one clearer rewrite. The rejected response is hidden from the terminal transcript by default (in Pi) and a banner reading 'nopus requested a clearer rewrite.' is shown.
Which coding agents does nopus support?
nopus currently supports Pi, Claude Code, and Codex. Pi uses the `pi install npm:@syzom/nopus` command, Claude Code uses the marketplace plugins `/plugin marketplace add Vistyy/nopus` and `/plugin install nopus@nopus`, and Codex uses `codex plugin marketplace add Vistyy/nopus` followed by `codex plugin add nopus@nopus` in a new session.
What are the available sensitivity levels and how often do they trigger rewrites?
There are three levels: `low` (about 5.3% rewrite rate, for clear-cut difficult cases), `medium` (about 9.9%, the default, balanced), and `high` (about 18.6%, for users who want more plain-language interventions). Sensitivity is changed with commands like `/skill:nopus-configure medium` for Pi, `/nopus:nopus-configure medium` for Claude Code, and `$nopus-configure medium` for Codex, or via the `NOPUS_COMPLEXITY_SENSITIVITY` environment variable.
How does nopus avoid flagging responses that are just long or full of technical terms?
Before measuring prose, nopus strips code blocks, inline code, URLs, file paths, and table rows, then reduces the weight of established computing terms. It uses proportions and phrase density instead of raw counts, requires several measurements to cross thresholds together, and never requests more than one automatic rewrite per response, so it cannot create retry loops.
Can I rewrite a response manually when nopus doesn't trigger?
Yes. Use the `nopus-simplify` skill: `/skill:nopus-simplify` in Pi, `/nopus:nopus-simplify` in Claude Code, or `$nopus-simplify` in Codex. It requests a rewrite immediately, uses the same clarity goals as the automatic rewrite, and preserves meaning, technical terms, and necessary detail without changing your nopus configuration.
What does the agent actually see when nopus requests a rewrite?
The host displays 'nopus requested a clearer rewrite.' The agent receives instructions to rewrite for clarity and directness while keeping meaning and necessary detail, plus a list of focus areas (for example, replacing formulaic framing) and short examples pulled from its own response. Turning rewrite evidence off via `evidence off` removes the `Examples from the response` block but keeps the rest of the guidance.
Featured in Videos
YouTube tutorials and walkthroughs for nopus
Alternatives
Similar projects ranked by category, topics, and text overlap.