nopus logo

nopus

Deterministic prose checks for clearer coding-agent responses

npmnopus
GitHub

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

263256
Aug 30, 2026Sep 1, 2026

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

Deterministic prose checks for coding agent responses
Complexity threshold flagging with configurable sensitivity (low/medium/high)
Supports Pi, Claude Code, and Codex
Measures uncommon wording, abstract vocabulary, noun stacks, and phrase density
Formulaic style cue detection
Requests one clearer rewrite when thresholds exceeded
Manual simplify command for on-demand rewriting
Extra-simple rewriting mode for brief initial answers
Configuration file and environment variable support
Excludes code blocks, URLs, file paths, and technical terms from measurement
Pi-specific: hides rejected responses from terminal transcript
Provides rewrite evidence with examples from original response
Uses packaged word frequency and concreteness data for measurements

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.

Loading documentation…
View on GitHub

Featured in Videos

YouTube tutorials and walkthroughs for nopus

Alternatives

Similar projects ranked by category, topics, and text overlap.

Compare