Maya Workflow Kit
The whole Maya workflow in Blender, in one install. Free and open source, Blender 4.5 – 5.2.
A free, MIT-licensed Claude Code mod. It rates each prompt, matches effort and model to the work, and shows what it changed.
PluginsTypeScript · JavaScriptGitHub @archid21OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
A Claude Code mod that matches each prompt to the right model and effort level
Taken from the repository README
Loading the full README.
Read the full README ↗A Claude Code mod that matches each prompt to the right model and effort level, so you don't pay Opus prices for Haiku work.
Created by Archi Dubey. MIT license.
One demo run in the Express repository. rightsize's choice depends on the task, your model and your settings, so yours may differ.
rightsize is a work in progress. It changes how Claude Code spends your tokens, and its choices are estimates. Savings are not guaranteed: some turns can cost more, not less, and a cheaper model can sometimes do weaker work. Use it at your own risk, and check /rightsize report to see what it really did for you.
Give it a few turns to learn. rightsize starts with general estimates. It needs some turns of your real work before it knows how your prompts, your codebase, and your models behave. Don't expect the first few recommendations to save money, and some may cost a little more. As it compares each estimate with what you actually spent, its calls get better. Judge it after a few sessions, not a few prompts.
Feedback and feature requests are welcome. If you find a bug, a wrong call, or a saving that didn't show up, or you have an idea for a feature, open an issue. For anything you'd rather not post in public, email [email protected]. What you report shapes what gets built next.
Not every prompt needs your strongest model thinking its hardest. "Rename this variable" and "redesign the auth flow" get the same treatment by default. rightsize looks at each prompt before it is sent and picks a better fit.
/rightsize report opens with one sentence on how much it saved in the last 30 days, then a table of what it changed and saved this session, in the last 7 days and in the last 30 days. Below that it lists which turns it did not count as savings and why./config./config.You need Claude Code 2.1.287 or newer in the terminal, or 2.1.286 or newer in the desktop app. Installing takes about 2 minutes.
Open a terminal (on a Mac, the Terminal app).
Check your Claude Code version:
claude --version
If the number is lower than 2.1.287, update Claude Code first:
claude update
Add the rightsize marketplace, so Claude Code knows where to find it:
claude plugin marketplace add archid21/rightsize
It should end with Successfully added marketplace: archid21.
Install rightsize for all your projects:
claude plugin install rightsize@archid21 --scope user
It should end with Successfully installed plugin: rightsize@archid21 (scope: user). A note that some options are not set yet is normal: every option has a default.
Start a new Claude Code session (type claude, or open a new session in the desktop app). Sessions that were already open don't load it.
Type /rightsize and press Enter. If it shows its status, it works.
Already inside Claude Code? You can type /plugin marketplace add archid21/rightsize and then /plugin install rightsize@archid21 instead of steps 3 and 4. When it asks where to install, pick the user scope.
Paste this into any Claude Code session:
Install the rightsize plugin from GitHub for me. Run these two commands in the terminal:
1. claude plugin marketplace add archid21/rightsize
2. claude plugin install rightsize@archid21 --scope user
Tell me if either one fails and why. When both succeed, tell me to start a new session and type /rightsize to check that it works.
Claude asks your permission before it runs each command. When it is done, start a new session and type /rightsize.
Each question is asked once, the first time its case comes up:
| Case | Choices |
|---|---|
| Q1 A prompt needs less effort | Lower automatically · Ask me each time · Never lower |
| Q2 It needs more effort on the same model | Raise automatically · Ask me each time · Never raise |
| Q3 A stronger model would do better | Ask before sending it to a subagent · Send it automatically · Stay on this model, raise effort only · Ask me each time |
| Q4 A task could run on a cheaper model | Send it to a cheaper subagent · Ask before sending it · Stay on this model, lower effort only · Ask me each time |
After your first answer, rightsize asks whether to use your choices in every session. Each question is also a row in /config (Lowering, Raising, Stronger model, Cheaper model), and Remember choices answers the follow-up ahead of time. A rule you set in a row is used as it is, and its question is never asked.
Your setting wins. A value you set in /config, or answered when rightsize asked, is never changed or bypassed by rightsize's own behavior. That covers the thresholds, the four rules, Reports, and every other row. Budget pacing moves only the thresholds you left at their default. A window nearly used up skips raises and stronger models only while their rule has no answer. Rate limits never change Reports once you set it; /rightsize says when they disagree. A value counts as yours once you set it, even if you set it to the number that is the default. /rightsize lists the settings you changed; the rest are defaults, shown in /config.
Effort changes can cost a cache rewrite. Anthropic's docs say that changing effort at the top level of a request resets the conversation's prompt cache. A per-message change (beta) keeps it. rightsize counts that cost, and it measures what Claude Code really does: every effort switch is logged with whether the cache survived. Lowering effort happens only when it pays.
Changing the model always means a subagent. The main chat keeps its model and its cache. A hidden note beside your prompt (your text is unchanged) asks it to:
When the work goes to a cheaper model and still fails after 2 reworks, the main chat finishes it itself.
Steps only you can approve stay in the main chat. A hand-off's subagent must not push, publish, release, deploy, send messages or act in your accounts, because a message from another agent is not your approval. Its brief tells it to prepare the work (edits, tests, notes) and stop, and rightsize blocks any push, publish, release, deploy or send command it tries anyway. The main chat checks the work and does those steps itself. A request that is mainly such a step ("push and release it") isn't handed off at all: the Haiku rating marks it, and only effort can change. When Claude keeps a chosen hand-off in the main chat because it pushed, published, deployed or sent something, the band says so and /rightsize report doesn't count it as a skipped hand-off.
The subagent runs at the level its model needs. rightsize sets the effort of the hand-off's subagent itself, so the level does not depend on Claude passing it on.
Claude's own subagents are right-sized too. When Claude starts a general-purpose subagent without naming a model, it would run on Claude's model (often Opus). rightsize rates the subagent's brief with Haiku and runs it on the cheapest weaker model that fits, at that model's level, when that costs under the hand-off threshold. It never moves a subagent to a stronger model. It leaves alone subagents that name a model, other agent types (they may set their own model, which rightsize can't see), forks, workflow agents, resumes, teammates, and subagents started by other subagents. Each one it moves costs one Haiku rating call. in turns this off.
rightsize works from the model and effort level your session starts on. It can lower effort, hand work down to a cheaper model, or hand it up to a stronger one, so the start changes what you spend.
Start on Sonnet 5.5 at medium or Opus 5.5 at medium.
Avoid starting on Opus at low, which makes rightsize raise effort often (each raise re-writes the whole conversation to the cache), or on Fable. A high start gives rightsize more to save, but the total is still the highest: a big saving percent means a high start, not a cheap one.
rightsize tells you when another start would suit you better. Once a week (or once a month: Start suggestions in /config), at the start of a session, it estimates what your last 30 days of rated prompts would have cost from Sonnet and Opus at medium and at high. Every rated prompt records the level each model would need, so the same prompts can be estimated from any start, with rightsize's hand-offs and effort changes counted. The band suggests a switch when:
Where Haiku's rating of a model has been wrong for a task type (see How it decides), that share of those prompts is estimated as if the model had been rated unable, so a start that leans on a model Haiku keeps misjudging looks dearer and sends more work up. The estimate follows your Use Haiku, Use Fable and Highest effort settings, so it never counts work sent where you said no. It waits for 50 rated prompts in 30 days, and 20 on your current start. Not now quiets the same suggestion for 14 days; Stop suggesting turns it off. /rightsize report always shows the comparison. rightsize never changes your model itself: switch with /model, which also sets the effort level.
A one-row band above the prompt shows what rightsize did, with buttons to act on it:
rightsize: Effort lowered: high → medium for this prompt (automatically). [Undo] [👍] [👎] [Ask me each time] [Never lower] [⋯] [×]
/config too. Your current answer is not shown.feedback line to the run log, takes the buttons off the band so they can't be pressed twice, and shows a short thanks. Nothing is sent anywhere: the mark tunes rightsize's choices on this machine (see How it decides).Sent to Haiku: $0.04 vs about $0.31 staying on Fable (estimated), saved about 87%. With the band off, that result is a line in the transcript instead.The band shows in the CLI and the desktop app. VS Code and the mobile app keep the status line.
/rightsize: the settings you changed (the rest are defaults, shown in /config), the session switch, the measured runs and the cache-switch results.
/rightsize help: every command and what it does. An unknown command shows the same list.
/rightsize report: what rightsize did for you. In the terminal it is plain text; the desktop app renders it as Markdown, so the tables and the tree go in code blocks there to keep their columns lined up. Each section is below, in the order it appears. A section with nothing to show is left out.
Pause it. Type /mods and switch rightsize off. Claude Code then works as if rightsize weren't there, and nothing is lost. Switch it back on the same way. To turn off only one feature, such as hand-offs or the band, use its row in /config.
Disable it, keeping your settings and what it has learned:
claude plugin disable rightsize@archid21
New sessions start without it. claude plugin enable rightsize@archid21 turns it back on where it left off.
Uninstall it:
If you turned on Share anonymous feedback, type /rightsize and copy your install ID first. Uninstalling stops all sending, but data already shared stays on the server until you ask for it to be deleted: email [email protected] with that ID.
Remove the plugin. This also clears the settings you saved in /config:
claude plugin uninstall rightsize@archid21
Optional: remove the marketplace entry too:
claude plugin marketplace remove archid21
Optional: delete what rightsize left on your disk. Uninstalling keeps its stored data (your answers, calibration and counters) and its logs:
rm ~/.claude/plugins/store/rightsize_*.json ~/.claude/mods-logs/rightsize*
Skip this step if you might come back: reinstalling picks up the stored data where it left off.
These are in ~/.claude/mods-logs/:
rightsize.log: each decision.rightsize-runs.jsonl: each rated turn, changed or not and stopped or not. Each line has the session ID, the change made and the change suggested, the estimated and actual cost (and whether the actual cost came from the ledger or from tokens), the rating call's cost, the rate-limit windows before and after, the turn's duration and its subagent calls, each model's rated level (fit), the rater's guesses of the tokens read and written and the tool calls (read, write, steps), for a hand-off the level its subagent ran at (subLevel), Claude's own subagents it moved to a cheaper model (resized), how a close call was decided (tie, also on each resized entry), the usage pace when it moved the thresholds (pace), mid-turn raises with their step and reason (escalations), main-chat requests (requests), the fixed context every request carried and what re-reading it cost (fixed), and its workflow calls (workflows, and afterWorkflow once one has run in the session). A rating that came to nothing is logged as an overhead line. Each line has an id. Every 50th rating also gets a check line: Haiku's fit, Sonnet's fit (under check) and Sonnet's cost. A 👍 or 👎 gets a feedback line with the run's id as ref, and value up or down. Each of Claude's subagents it moved to a cheaper model gets a subagent line when it answers: its models, level, real cost and the raw estimates on its model and on the parent's. /rightsize report reads this file.rightsize-switches.jsonl: each measured effort switch, and whether the cache was kept.rightsize keeps its logs on your machine. It sends nothing to its author unless you say yes.
What the rating sees. To rate each prompt, rightsize asks Claude Haiku through Claude Code. The rating call carries your prompt (up to its first 6,000 characters) and the end of Claude's last reply (up to 1,500 characters), and goes to Anthropic, just as your prompts do when you use Claude Code. When Claude starts its own helper, rightsize rates the helper's brief the same way. Every 50th rating is also sent to Sonnet as a check (Rater check in /config). None of this goes to rightsize's author.
Sharing is opt-in. After 20 rated prompts, rightsize asks once: "Help improve rightsize? Share anonymous numbers with its author." If you say no, or close the question, nothing is ever sent. You can change your answer any time with Share anonymous feedback in /config.
What is sent when you say yes, at most once an hour, only for what is logged after you said yes:
What is never sent: your prompts, Claude's replies, code, file names, paths, tool and MCP server names, the reasons Claude got stuck, session IDs, or anything that names you. The server also rebuilds every event from a fixed list of fields and drops anything else.
Turning it off stops all sending at once. Turning it on again later starts a new install ID, so the old and new data can't be linked. rightsize also sends nothing while Claude Code's CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC is set.
The numbers go to feedback.aivalue.blog, a server the author runs, and are kept in a private store that only the author can read. They are used to tune rightsize's defaults, such as the hand-off threshold, the task-type guide and the estimates of work per model. Like any web server, it records the IP address each request comes from in its request logs, which the host (Vercel) keeps for a limited time; the IP address is not saved with the numbers.
Questions about shared data, or a request to delete it: email [email protected] with your install ID (/rightsize shows it while sharing is on).
Workflows (ultracode). When Claude runs a workflow, it fans the work out to many agents. Workflows in /config says what rightsize does: by default (and until you answer the question it asks before the first workflow) it stops handing work off for the rest of that session; follow my rules lets hand-offs go on; right-size every agent also moves workflow agents to cheaper models. In every case later turns teach calibration nothing and claim no saving, since a workflow keeps running in the background and its cost lands in later turns. It still rates prompts and changes effort. It can't see that ultracode is on until the first workflow runs. /rightsize report lists these turns on their own line.
The app's effort picker does not move. The status line shows the level in use.
The rating is an estimate from Haiku. Calibration corrects cost guesses, but it can't correct a wrong choice of model. rightsize does measure how often the rating was wrong and stops trusting it where it keeps missing (see How it decides), but that takes enough outcomes: until they are in, a wrong call can still cost a rework or a step back up.
Model facts (names, default effort levels, which models can switch effort mid-conversation) are built in for Claude Fable 5.1, Opus 5.5, Sonnet 5.5 and Haiku 5.5. See CONTRIBUTING.md for how to update them when models change.
This is an independent project, not made or endorsed by Anthropic.
Improvements are welcome: see CONTRIBUTING.md. Feedback by email: [email protected].
MIT © 2026 Archi Dubey
/configWorkflows are your call, asked once. When Claude starts a workflow (ultracode, or asked for), it can start many helper agents at once, often 10 or more, each picking its own model. The first time, before the workflow starts, rightsize asks what to do about workflows, and saves your answer as Workflows in /config: pause rightsize (hand nothing off for the rest of the session, leave the workflow's agents alone), follow my rules (hand-offs follow your Stronger model and Cheaper model rules, agents left alone), or also right-size every agent (each workflow agent that names no model gets one Haiku rating and may run on a cheaper model; Claude's subagents off keeps them alone). If you close the question, rightsize pauses for that workflow and asks again at the next one. Whatever you pick, measurement stays paused after a workflow: calibration learns nothing and no saving is claimed.
Handing work down needs a clear saving. A cheaper subagent is used only when its estimate is under 70% of the cost of staying at the level the work needs on your model (a raise counted with the cache it may rewrite), counting the brief, report, check and likely rework. Of the cheaper models that fit, the cheapest route wins, unless two are close in cost (see the next point). Because Sonnet costs half of Opus, an Opus-to-Sonnet hand-off rarely clears 70%. Hand-offs to Haiku, and hand-offs from Fable, clear it more often. Lowering effort needs the lower level to cost under 90% of staying, counting the cache it may rewrite. Both are defaults you can change in /config. Use Haiku and Use Fable turn off the work sent to either model (Haiku still rates your prompts), and Highest effort caps how high rightsize raises effort, including the level a helper runs at.
Close calls go to the model suited to the task. Early on, the estimates are guesses, so two models that fit can land close in cost by chance. When they are within a band of each other, rightsize picks by task type instead:
The band starts at 25% and shrinks to nothing once both routes have 20 measured runs. One close call in five takes the other model, so both get measured; Explore close calls in /config turns that off, so a close call always takes the task-type pick. It only chooses between routes that already pass the hand-off threshold, so it never makes a hand-off happen. Close calls are most common in Fable sessions.
It scores Haiku's rating against what happens. Every choice rests on one Haiku call, so rightsize checks how often that call was wrong, per task type and model. A hand-off counts as wrong when it needed rework (more than one subagent call) and right when it did not. A lowered turn counts as wrong when it stepped back up or was raised mid-turn, and right otherwise. A turn that stayed as it was counts only when it was raised mid-turn. A 👎 counts as wrong and a 👍 as right (see The band), and so does each Sonnet check (next point). A task type needs 5 such outcomes on a model before its own rate counts; before that, the model's rate across all task types counts once it has 5. Only the last 30 days of the log count. When a rate reaches the line Pause after misses sets (30% by default; 20% to 50%), rightsize stops handing that kind of work down to that model, and stops lowering effort on it, until the rate falls back under the line. Set to off, nothing is ever paused. /rightsize report says when this is happening. Nothing is sent anywhere: the outcomes are read from the run log on your machine.
Sonnet spot-checks Haiku. On every 50th rated prompt (every 25th or 100th with Rater check), after Haiku's rating, rightsize sends the same prompt to Sonnet at low effort in the background. It never delays your prompt. Where Haiku said a model does the work and Sonnet says that model would struggle, that counts as a miss for that model and task type; where both name a level, it counts as a hit. The check is logged as a check line with its cost, which the report counts with the rating calls. A check that fails or can't be read is dropped. Rater check in /config sets how often, or turns it off.
It raises effort when Claude gets stuck. During a turn, rightsize watches the main chat's tool calls. By default, when the same call fails twice, 3 calls fail, the same call runs 3 times, or the turn passes 3x the steps the rating guessed (at least 15), it raises effort one level for the rest of the turn: at most twice a turn, never to max, and never above Highest effort. Stuck sensitivity moves those numbers: relaxed waits for more (3 failures of one call, 4 failing calls, 4 runs, 4x the steps and at least 20), sensitive for less (2 failing calls, 2 runs, 2x the steps and at least 10). It follows your Raising rule (Q2): automatic raises without asking, "Ask" asks mid-turn, never does nothing. A call you refused permission for does not count. These turns teach calibration nothing and claim no saving. Raise when stuck in /config turns it off.
It warns before an expensive resume. The cache lives an hour (or 5 minutes, per prices.json). When a session under 200K tokens sat idle past that, the next prompt writes the whole conversation to the cache again. rightsize asks first, for example: This session sat idle for 3 days, so its cache has likely expired. Sending writes the whole conversation (~120K tokens) to the cache again: about $0.94 more on Opus than a warm cache. /clear costs nothing; /compact about $0.48. Hold it and the prompt goes back in the box. It remembers each session's last turn, so a --resume days later is caught too. On a subscription the question gives the cost as a share of your 5-hour window, with API-equivalent dollars beside it (dollars alone until runs show the rate). Sessions over 200K get Claude Code's idle compaction, so rightsize leaves those alone. Idle warning in /config sets the bar.
It paces your usage windows. On a subscription, each response reports how much of the 5-hour and 7-day windows is used and when each resets. rightsize divides the share used by the share of time gone, and acts on whichever window would stop you first:
| Pace | Hand-off threshold | Lowering threshold | Also |
|---|---|---|---|
| Over 1.2 (on pace to run out early) | 85% | 97% | |
| 0.6 to 1.2 | 70% (your setting) | 90% (your setting) | |
| Under 0.6 (much will go unused) | 50% | 80% | |
| Over 90% used, any time | 95% | lowers whenever it fits | Skips raises and stronger models while Raising and Stronger model have no rule |
The first 15% of a window is not paced, since a few prompts there look like a flood. The numbers in the table are what a threshold left at its default moves to. A threshold you set in /config stays as you set it, at every pace. A window nearly used up skips a raise or a stronger model only while its rule has no answer: a rule you set or answered is followed, and the band says how full the window is. "Ask" always asks. Choices set to never or stay are kept. The band says when pacing changed a decision. Budget pacing in /config turns it off.
It counts the work each model does. The same task takes different work on different models and effort levels. Opus at low effort makes fewer tool calls than at medium, Haiku writes more than Sonnet, and Fable does more than Opus. rightsize scales each estimate's output and tool calls by model and level, with Sonnet as the baseline. The starting numbers come from published benchmarks, and calibration corrects them.
It learns from real costs. After each rated turn, rightsize reads what the turn really cost from Claude Code's own cost ledger (the /cost total), which prices cache writes at the TTL they were written at. The Haiku rating call is left out. Where there is no ledger, it prices the API's token counts from prices.json instead. It moves its estimates toward that cost, for each task type and route, and also for each model and each model at each level, in the main chat, in hand-offs, and for Claude's own subagents it moved to a cheaper model (measured when each one answers). A model and level with few runs leans on what the task type as a whole has shown. After 20 runs, the measured average replaces the guess. A lowered turn that stepped back up is left out, since part of it ran at your normal level. Sessions running at the same time add to one shared record, so none overwrites another's runs. When the work-per-model estimates came in, calibration started over once: what it learned before is ignored, not deleted.
It knows how you pay. Each response carries rate-limit windows: a subscription shows five-hour and seven-day windows, and a Claude gateway shows a spend limit. rightsize reads them and shows reports in dollars (API) or as a share of usage (subscription). Only when a response shows none, as with an API key, does it ask you once. The answer is kept across sessions. If you set Reports in /config (or answered), that is final: the rate limits never change it, and /rightsize notes when they point the other way.
Prices stay current. Every 30 days it compares prices.json with Anthropic's pricing page and writes in any change, keeping the old file as prices.json.bak. /rightsize prices checks right away.
/mcp, /plugin), a better starting model, and when a hand-down will resume after a pause./rightsize share: prints a message you can paste anywhere (LinkedIn, Slack, a DM) to tell others about rightsize. It includes your estimated saving for the last 30 days once there are at least 20 rated prompts and the saving is 5% or more. It sends nothing, writes nothing and asks nothing, and it is unrelated to the Share anonymous feedback setting.
/rightsize settings: ask the four questions again, and set their rows in /config from your answers.
/rightsize undo: put the last auto-lowered prompt back in the box, to run at the normal level.
/rightsize clear: drop a session-wide effort switch.
/rightsize prices: check prices now.
/rightsize reset: asks what to reset (Settings, Cost measurement, Both, or Cancel), then asks you to confirm, because it can't be undone.
/config row goes back to its default, including the four rules and Remember choices, and your saved answers to the four questions are forgotten. Claude Code can't unset a stored value, so a reset row is written as its default and counts as a default, not as yours, until you set it again./rightsize report are kept, and the report says when measurement restarted./rightsize reset <setting>: reset one setting, named by its key (handOff) or its title (hand-off threshold, in any case), with the same confirmation. A name it doesn't know gets a list of the keys.
Changing settings. Where you change them decides when they take effect:
In a terminal session: type /config and scroll to the rightsize rows. A change applies at once in that session.
In the desktop app: its Code tab has no /config menu. Change settings from a terminal, then quit the app (⌘Q) and open it again; a new session alone keeps the old values. From a terminal, either run claude and use /config, or set values in one command, for example:
echo '{"handOff":"60%","useFable":"off"}' | claude plugin configure rightsize@archid21 --values-stdin
claude plugin configure rightsize@archid21 lists every setting and its value. The keys are the names /rightsize reset lists.
/config → rightsize. Every row is a picker, and in a terminal session each applies the moment you change it:
/rightsize prices checks right away either way. A stored "check now" from an older version is not an option any more, and counts as unset (monthly).