claudeers.
// Other

plain-speak

A Claude Code output style derived from real transcripts, not intuition — plus tooling to mine your own. EN / 中文 / 日本語

Install with your AI

Paste into Claude Code, Cursor, or any agent — it reads the repo and wires the tool into your project.

Install and set up plain-speak (git-clone project) into my current project.
Found on https://claudeers.com/plain-speak
Repo: https://github.com/Marksooxx/plain-speak
Homepage/docs: —
Detected install method: git-clone → git clone https://github.com/Marksooxx/plain-speak
Category: other. Platforms: cli.
Read the repo's README for exact setup and env vars, then install it and wire it into my project.

Claudeers Health Verdict:
unknown; community-verified: false. Confirm the source before running anything.
// or clone
git clone https://github.com/Marksooxx/plain-speak

// compatibility

Platformscli
Operating systems
AI compatibilityclaude
LicenseMIT
Pricingopen-source
LanguagePython

Plain Speak

English · 中文 · 日本語

A Claude Code output style for people who ship with AI but make every technical call themselves — plus the tooling to derive your own version of it from your own conversation history.


The problem it actually solves

The obvious theory is "the AI uses too much jargon." That theory is wrong.

This style was derived by mining a multi-month Claude Code history: every time the human replied "what does that mean?", the assistant message immediately before it was captured as a failure sample; every time they replied "ok, go ahead", the message before it was captured as a success sample. Then the two piles were compared mechanically.

The result was counterintuitive:

Answers that confused themAnswers they approved
Density of code identifierslowerhigher
Contained a "here's what you need to decide" listvery commonrare
Density of commit hashes in the opening~10× highernear zero
Density of words like user / page / screenlowerhigher

Jargon was never the variable. The decision moment was. The answers that failed were the ones that asked the human to make a call — while withholding what they needed to make it: how things got here, what the whole chain actually does, who runs into it, and what happens if nothing changes.

And follow-up questions clustered in the final quarter of an answer — not because endings are special, but because that's where the assistant compressed things it had decided were unimportant.

So this style spends almost none of its rules on vocabulary. It spends them on:

  • Decision items — each one is a paragraph carrying who hits it → what happens → cost of doing nothing → options and a recommendation, never a one-line bullet pointing at a line number.
  • Starting state — before asking for a call, say how things stood, what happened, and where they are now. An analogy can't substitute for this.
  • Mental model before detail — reach for one everyday analogy when a mechanism won't form a picture, then reuse it throughout.
  • Relaying sub-agent results — an external model's findings don't exist until you actually say what they were.
  • One word, one referent — the most dangerous failure isn't "I don't understand," it's confidently understanding the wrong thing.

Install

Drop the style file into your output styles directory and select it.

# user-level (all projects)
mkdir -p ~/.claude/output-styles
curl -o ~/.claude/output-styles/plain-speak.md \
  https://raw.githubusercontent.com/Marksooxx/plain-speak/main/styles/plain-speak.en.md

# or project-level
mkdir -p .claude/output-styles && cp styles/plain-speak.en.md .claude/output-styles/

Then in Claude Code: /configOutput style → pick it → /clear (the style is read once at session start).

To set it without the menu, add to ~/.claude/settings.json:

{ "outputStyle": "Plain Speak" }

The value is the name: from the file's frontmatter, not the filename. A wrong value silently falls back to default. A project-level .claude/settings.local.json overrides the user-level one — if a project has its own outputStyle, set it there too.

Language versions carry different name: values, so you can install more than one and switch:

Filename:
styles/plain-speak.en.mdPlain Speak
styles/plain-speak.zh-CN.md说人话
styles/plain-speak.ja.md平たく話す

Make your own version

Don't take my rules on faith. The style file has a ## Who is reading section that is meant to be replaced — and the rules themselves should be argued from your evidence, not mine.

python3 tools/mine_feedback.py

It reads ~/.claude/projects/*/*.jsonl (your local transcripts — nothing is uploaded anywhere) and writes:

  • out/negative.json — every time you signaled confusion, paired with what the assistant had just written
  • out/positive.json — every time you approved, paired with the same
  • out/digest.md — a readable walkthrough of the failures
python3 tools/mine_feedback.py --project ~/.claude/projects/<slug> --lang en
python3 tools/mine_feedback.py --lang zh,ja --out ./mine

Confusion signals ship for zh, en, and ja; extend the CONFUSION / APPROVAL dicts at the top of the script for your own phrasing.

Then read digest.md and ask one question of every sample: what rule would have stopped this from being written? Those rules are your style file. The ones in here are just the ones that came out of one particular history.

A note on length

This file is longer than the built-in output styles, on purpose — but length is not the goal, and the file says so about itself. Two things worth knowing:

  1. Custom output styles get no per-turn reminder. Built-in styles (Explanatory, Learning, Proactive) are re-announced to the model every turn; custom ones are injected once at session start. Long files drift. Keep yours as short as the evidence allows.
  2. Don't cut by word count, cut by priority. The style includes an explicit precedence order: when length gets tight, drop stat dumps, repeated definitions, analogies, and Insight blocks — never the facts, consequences, or options that would change a decision.

Credits

Derived from real Claude Code usage, then cross-examined by a multi-agent review and an independent model, which between them killed roughly twenty self-contradictions and over-absolute rules. The surviving rules are the ones that had evidence behind them.

License

MIT — see LICENSE.

// faq

What is plain-speak?

A Claude Code output style derived from real transcripts, not intuition — plus tooling to mine your own. EN / 中文 / 日本語. It is open-source on GitHub.

Is plain-speak free to use?

plain-speak is open-source under the MIT license, so it is free to use.

What category does plain-speak belong to?

plain-speak is listed under other in the Claudeers registry of Claude-compatible tools.

3 views
23 stars
unclaimed
updated 9 days ago

// embed badge

plain-speak on Claudeers
[![Claudeers](https://claudeers.com/api/badge/plain-speak.svg)](https://claudeers.com/plain-speak)

// retro hit counter

plain-speak hit counter
[![Hits](https://claudeers.com/api/counter/plain-speak.svg)](https://claudeers.com/plain-speak)

// reviews

// guestbook

0/500

// related in Other

🔓

符合nature论文学术表达和科研绘图的Skill

// otherYuan1z0825/Python36,535Apache-2.0[ claude ]
🔓

Open source Ghostty-based macOS terminal with vertical tabs and notifications for AI coding agents. Built for multitasking, organization, and programmability.

// othermanaflow-ai/Swift26,069NOASSERTION[ claude ]
🔓

Anti-AI-slop design skill for Claude Code, Cursor, and Codex.

// otherNutlope/CSS25,307MIT[ claude ]
🔓

Huashu Design · HTML-native design skill for Claude Code · Claude Code 里 HTML 原生的设计 skill · 高保真原型 / 幻灯片 / 动画 + 20 设计哲学 + 5 维评审 + MP4 导出 · Agent-agnostic

// otheralchaincyf/HTML23,151MIT[ claude ]
→ see how plain-speak connects across the ecosystem