nudgeist logo

nudgeist

A nudge, not a switch. Before your message reaches an expensive model, nudgeist asks a fast, low-cost one whether the task really needs it. When a lighter model or a lower effort will likely do, and switching actually pays once the prompt cache is counted, it holds your message once and tells you. You decide. It never changes anything by itself.

01Overview

nudgeist is a Claude Code plugin: a few hooks and four one-message commands. Most messages pass through untouched. When one doesn't, you get one short suggestion and the choice.

Knows what you run facts

Reads the model and effort of your last turn from the session, so /model and /effort changes count.

Asks Haiku advisor

Haiku reads your message and a few lines about the session, never your code, and names the cheapest model and effort it expects to do the job well.

Counts the cache cost

Suggests another model only when one turn on it at least halves the cost, prompt cache included. Otherwise it may suggest a lower effort.

Asks once you decide

One suggestion per message. Keep your model twice in a row and it stays quiet for the rest of the session.

Who it is for: people who leave Claude Code on its biggest model and highest effort, and would rather not pay for that on a typo fix.

What it is not: an automatic router, a proxy, or a model switcher. It doesn't move your session to another model, and it doesn't send your messages anywhere but Anthropic.

02Why it exists

The biggest model at the highest effort is a safe default, so it becomes the only setting. Then the same model that designs your architecture also renames a variable, thinking at full depth and billed at full price.

Nobody can know for sure, before the work is done, whether a task needed the big model. Not you, not a list of keywords, not another model. So nudgeist doesn't decide: it gets a cheap second opinion, checks whether acting on it would actually save anything, and asks.

Switching models isn't free.

Your current model reads the conversation from the prompt cache at a fraction of the price. A model you haven't used in the session has to read all of it from scratch. A lighter model can cost more than staying put, and nudgeist does that arithmetic before it says a word.

03A message, step by step

1

Read the session

Model, effort and conversation size from your last turn, and the cache lifetime your session pays for. Before the first turn, the model the session started with.

2

Anything to save?

If nothing cheaper could pay off, the message goes straight through. No advisor, no wait.

3

Ask Haiku

Haiku gets your message and a brief: the session title, your last few requests, the end of Claude's last reply, and the files in play with their line counts. It answers with a model, an effort, a confidence and a reason, and says whether your message starts new work. A yes, an ok or a progress question continues the work under way and keeps your model.

4

Do the math

One turn on the suggested model, its cache cold, against staying on yours, its cache warm, at list prices. A model is suggested only when it at least halves the cost.

5

Ask, once

If it's worth it, the message is held with the suggestion. Your text stays in the input box.

04What you'll see

Most of the time, nothing. When a message is held, the notice names the lighter option, the reason, and the two ways forward.

PASS

Nothing to save, or the advisor isn't confident. Your message goes through as if nudgeist weren't there.

LIGHTER MODEL

Haiku or Sonnet can likely do it, and one turn on it at least halves the cost.

LOWER EFFORT

Your model is right but your effort is above what the task needs. Effort doesn't touch the cache.

fix the typo in README: recieve

nudgeist: Haiku can likely handle this: single typo fix in README, mechanical edit.

This turn on Haiku: put /nudgeist:haiku in front and send.

Stay on Opus 5.5: send it again unchanged.

A live session on Opus 5.5, Claude Code 2.1.296. After the first turn, the notice also shows the estimated cost of both options.

Put the command in front and press Enter, or just press Enter. Either way, your next message runs on the model and effort you chose for the session.

05The cache math

For the turn you're about to send, nudgeist estimates what it costs on your model and on the suggested one. It uses the conversation size, how many requests and how much output your turns usually take in this session, whether your cache is still warm, and whether your session caches for 5 minutes or an hour.

Warm Opus 5.5 session, 3 requests, 1.5k output tokensStay on OpusOne turn elsewhereSuggested?
50k tokens, to Haiku 5.5US$0.06US$0.012Yes
150k tokens, to Sonnet 5.5US$0.12US$0.65No
300k tokens, to Haiku 5.5US$0.21US$0.33No

Arithmetic on Anthropic's list prices with a 1-hour cache, not a measurement. On a subscription you pay a plan, not per token: read these as relative usage.

06Staying quiet

  • It holds a message once. Sending it again unchanged always goes through.
  • Keep your model twice in a row and it stays quiet for the rest of the session. Accepting a suggestion resets the count.
  • Commands (/…), claude -p, SDK and background sessions are never held.
  • Any error, timeout or unclear verdict lets the message through.
  • NUDGEIST=off turns it off.

07Install

Claude Code

/plugin marketplace add nudgeist/nudgeist
/plugin install nudgeist@nudgeist

Needs Node.js 18 or later. Tested in the Claude Code terminal; a check in the desktop app's Code tab is pending.

08Use

Nothing to do: it runs on every message. To take a suggestion, put its command in front of the message.

CommandRuns this one message on
/nudgeist:haiku <message>Haiku
/nudgeist:sonnet <message>Sonnet
/nudgeist:low <message>Your model at low effort
/nudgeist:medium <message>Your model at medium effort

09How it's checked

The repository has unit tests for the session reader, the cost arithmetic, the advisor's reply parser and the hold-once logic.

The benchmark gives twelve small coding tasks, each graded by a hidden test, to the advisor and to real solvers: Haiku twice, Opus once. Results from 2026-10-13, Claude Code 2.1.296:

36 advisor callsHaiku passed every runHaiku failed a run
Advisor suggested Haiku160
Advisor held back200

Haiku 5.5 passed all twelve tasks, so the advisor never made the costly mistake, but this run couldn't test it either. It held back on many tasks Haiku could do: it errs on the side of your model.

Every run, diff, advisor call, task, hidden test and reference solution is in the repository, with a SHA-256 for each result file. We wrote the tasks and the samples are small: read it as a signal, not a proof.

10What it reads, writes and sends

WhatDetails
ReadsThe session transcript, and the line counts of the files the session touched. On your machine.
WritesA small state file per session in the plugin's data folder: the starting model, a fingerprint (SHA-256 hash) of the message on hold, never its text, and how often you accepted or kept your model.
SendsYour message and the session brief to Haiku, through your own claude login. Nowhere but Anthropic, where your message was going anyway.
CostsOne Haiku call per checked message: about 1,200 tokens and 1.5 to 3 seconds, measured on Claude Code 2.1.296.

No telemetry, no proxy, no third-party service.

11Limitations

  • The advisor can be wrong. It sees a summary, not your code. That's why nudgeist asks instead of switching.
  • A short wait. Checked messages take 1.5 to 3 seconds longer to start.
  • Desktop app, first message. Claude Code doesn't tell hooks the model there until the first turn, so the first message of a session isn't checked.
  • List prices. Estimates use the 5.5 models' list prices; older models are priced as their 5.5 family member, which only understates savings.
  • Downward only. It suggests lighter options, not heavier ones.

12FAQ

Will it interrupt me all the time?

No. Messages with nothing to save aren't checked, it needs a confident verdict and a real saving to speak, and two "no"s in a row silence it for the session.

Does it change my model?

Never. The commands run a single message on another model or effort; the next one goes back to yours.

Why not use keywords to decide?

"Center this div" can be one line or a day in a legacy stylesheet. A fixed word list bakes in someone's guess. The advisor reads your actual request and what the session is working on.

Does it cost anything?

About 1,200 Haiku tokens per checked message. Messages with nothing to save cost nothing.

Does it work in Spanish?

The advisor reads any language. Notices are in English.