Skip to content

Justsaydone

Shorter replies with Claude Code. Save output token spend.

Install

$/plugin marketplace add raiyanyahya/justsaydone

Install command taken from the project's README or registry entry. Always review code before running it.

justsaydone

A mode for Claude Code that does the work and replies with one word.

No "Here's what I changed." No "Let me know if you need anything else." No recap of the diff you're about to read anyway. You asked for a thing, the thing happened, done.


The idea

We ❤️ Claude Code and it is a great engineer but a chatty coworker. Most of that chatter — the opening "I'll start by…", the running narration, the closing paragraph that re-summarizes the diff — restates what your diff, your test output, and your own prompt already told you. It costs output tokens, and it costs you the seconds spent reading past it.

justsaydone is a mode you flip on on purpose — for a focused session, or for a whole project — when your workflow is already:

type task → glance at the diff → move on.

Claude still plans, edits, runs, and verifies exactly as it always does. It just stops narrating. The work is the message.

Before / after

Without justsaydone With justsaydone
"I've created fizzbuzz.py. It loops from 1 to 30 and prints Fizz for multiples of 3, Buzz for multiples of 5, and FizzBuzz for both. Let me know if you'd like tests!" done
"Fixed the off-by-one in average() — it was dividing by len(nums) - 1 instead of len(nums), which skewed the mean. Want me to add input validation too?" done

Install

/plugin marketplace add raiyanyahya/justsaydone
/plugin install justsaydone@justsaydone

That's the whole setup. The mode turns on automatically the moment the plugin is enabled — there's no /config step. Run /clear or start a new session for it to take effect.

The escape hatch

Terse by default, verbose on demand. Any time you actually want the recap, just ask — if your message contains explain, summarize, why, what did you change, or details, Claude gives a full normal answer for that one turn, then snaps back to terse mode:

> fix the auth bug
done

> explain what you changed
The token check in middleware/auth.ts:42 compared the *decoded* expiry against
seconds instead of milliseconds, so every token read as expired. I switched it to
Date.now() and added the missing early-return. …

> add a test for it
done

Benchmarks

Real numbers, not marketing. The suite in benchmark/ runs actual headless Claude Code sessions twice each — with and without the plugin — across five task types, then scores them. Reproduce it yourself with one command (see below).

On the tasks this mode is built for — the do-work-and-report loop — a full sign-off paragraph collapses to a single word: ~90–95% fewer words in the reply.

Latest run (claude -p, Sonnet, 2 runs per arm):

Task Reply words →(what the mode controls) Total session tokens
Fix a bug 22 → 1 · −95% −29%
Create a file 12 → 1 · −91% +5% (noise, see below)
Impossible task (missing file) 58 → 22 · −63% −12%
Explain code (a question) 62 → 34 · −45% −13%
explain escape hatch 46 → 26 · −42% −30%
Blended average 199 → 84 · −58% −19%

How to read this honestly:

Similar plugs

Orca is the ADE for working with a fleet of parallel agents. Run any coding agent with your own subscription. Available on desktop, mobile and remote runtime.

CLI proxy that reduces LLM token consumption by 60-90% on common dev commands. Single Rust binary, zero dependencies

Documented system prompts from Anthropic - Claude Fable 5.1, Opus 5.5, Claude Design, Claude Code. OpenAI - ChatGPT GPT-6-Astra, Codex. Google - Gemini 3.8 Flash, 3.1 Pro,…

Wrap Antigravity, ChatGPT Codex, Claude Code, Grok Build, Muse Code, Devin as an OpenAI/Gemini/Claude/Codex compatible API service, allowing you to enjoy the free Gemini…