wherefore sparest thou thy tokens, when many might adorn thy reply?
Install • Levels • Commands • Statusline • Credits
A Claude Code plugin that makes the agent answer in Early Modern English — thou, thee, verily, -eth, inverted syntax, the lot. Deliberately wastes output tokens in the name of beauty. The inverse of caveman.
Tokens are the new currency. Most people try to save them. This plugin lights them on fire for fun. Use it to signal that your API budget has room to spare, or just to make late-night debugging a bit more entertaining.
It's a joke. It still works.
Also works in Codex CLI and GitHub Copilot.
Normal Claude:
Your React component is re-rendering because you're creating a new object reference on each render. Wrap the prop in
useMemo.
Shakespeare (full level):
Hark, gentle user! Thy component doth re-render upon every turn, for at each pass thou forgest a new object reference where none was needed. React, in its shallow-compared wisdom, seeth this fresh object and cryeth
'tis changed!and so refresh it must. Wrap thine inline object inuseMemo, and peace shall reign o'er thy render tree.
Same fix. Roughly 4x the tokens.
| Level | What it does |
|---|---|
lite |
Ornate Victorian English. No thou/thee. |
full |
Early Modern English with thou/thee/-eth/-est. Default. |
bard |
Full Shakespearean, with iambic pentameter where it fits. |
sonnet |
14-line ABAB CDCD EFEF GG sonnet when the answer is short enough. |
prose |
Long Elizabethan paragraphs. Heavy metaphor. Maximum tokens. |
Switch levels with /shakespeare lite|full|bard|sonnet|prose. Turn it off
with stop shakespeare or normal mode.
These parts of a response are always passed through as-is:
- Code blocks, inline code, error messages, stack traces.
- File paths, CLI commands, URLs, identifiers.
- Tables, version numbers, dates, numbers.
- YAML frontmatter, HTML tags, template placeholders.
- Security warnings, destructive operations, and step-by-step instructions. The plugin drops back to plain English for those, then picks up again.
claude plugin marketplace add jorgenosberg/shakespeare
claude plugin install shakespeare@shakespeareIf you'd rather not use the marketplace, clone the repo and run the standalone installer:
git clone https://github.com/jorgenosberg/shakespeare.git
cd shakespeare
# macOS / Linux
bash hooks/install.sh
bash hooks/install.sh --statusline # add our badge as the Claude Code statusLine
bash hooks/install.sh --wrap-statusline # wrap an existing statusLine (prepends badge)
# Windows
powershell -File hooks\install.ps1
powershell -File hooks\install.ps1 -Statusline
powershell -File hooks\install.ps1 -WrapStatuslineRequires Node on your PATH. Uninstall with bash hooks/uninstall.sh or
powershell -File hooks\uninstall.ps1.
Using Starship, Powerlevel10k, Oh My Posh, tmux, or a plain bash/zsh
prompt? Drop-in presets live under presets/. See
docs/statusline.md for the full integration
guide.
codex plugin marketplace add jorgenosberg/shakespeareThen run /plugins inside Codex, find Shakespeare, and install it. The
same command also works against a local clone if you're developing:
codex plugin marketplace add ./path/to/shakespeareWindows note: the Codex plugin bundle uses symlinks to share the skill tree with Claude Code. Git needs symlink support enabled before cloning:
git config --global core.symlinks true
# Developer Mode or an elevated shell is required for Git to create the symlinks.Without this, the symlinked skills will land as plain text files containing their target path and Codex won't load them.
Requires GitHub CLI 2.90 or later. For a user-scope install that applies in every repo you work in:
gh skill install jorgenosberg/shakespeare shakespeare --scope user --agent github-copilotIf you prefer Vercel's multi-agent installer:
npx skills add jorgenosberg/shakespeare --agent github-copilotDrop --scope user (or use npx skills add without --scope) to install
at project scope instead.
/shakespeare [level]switches the intensity./shakespeare-commitwrites a Conventional Commits subject with an ornate body./shakespeare-reviewreviews a diff or PR with one ornate comment per finding./shakespeare-helpprints a quick reference card./shakespeare-expand <file>rewrites a memory file (likeCLAUDE.md) in Early Modern English. The original is saved to<file>.original.md.
- Late-night rubber-ducking where a plain answer feels too dry.
- Demos, talks, conference slides, readme intros.
- Annoying your coworkers during pairing sessions.
- Not for production code review. Use caveman for that.
If you're developing or packaging the repo, run the tree check:
bash tests/verify-plugin-tree.shIt validates the Claude and Codex plugin manifests, confirms every
bundled skill symlink resolves to a real SKILL.md, and checks that
every top-level skill has a name: frontmatter field.
skills/shakespeare/SKILL.mdis the source of truth. Editing it changes behavior across every install target.hooks/shakespeare-activate.jsruns onSessionStart, reads the skill, filters it to the active level, and emits it as hidden context.hooks/shakespeare-mode-tracker.jsruns onUserPromptSubmit, watches for/shakespeare,bard mode,stop shakespeare, and so on, and updates the flag at~/.claude/.shakespeare-active.- The statusline scripts read that same flag and render a
[BARD:FULL]badge.
- Real token-inflation benchmarks.
- Auto-expand for
~/.claude/CLAUDE.mdon install.
Heavily inspired by caveman. The repo layout, the SessionStart hook pattern, the per-agent install matrix, and the general idea of a plugin that just changes the register of the agent all come from Julius Brussee's work. Where caveman grunts, this one declaims.
Built with help from Claude the Caveman itself.
MIT.
