Claude Code mod · 0.3.0 stable

Ernesto for Claude Code

Claude says it’s done. Ernesto would like to see the tests.

A turquoise companion with a sharp tongue and an appetite for actual checks. Ernesto appears immediately, detects an existing package check and runs it when you choose Check project.

Ernesto, Wavect’s turquoise coding companion
Claude Code mod · 0.3.0 stable

Public release

One button. Your actual project check.

Actual 46-second Claude Code recording, captured before 0.3.0 was published. Its runtime bytes match the stable release; candidate labels reflect the recording date. Check project runs a synthetic npm test with no Ernesto config. Command completion is separate from verified test counts. The four examples below illustrate optional structured Vitest evidence.

Transcript

Actual Claude Code 2.1.296 terminal output on macOS 26.5.1 using unreleased Ernesto 0.3.0 and Node 24.3.0. One synthetic arithmetic test, executed through the native Check project button as npm run test. No Ernesto project configuration or manual helper command was used. Native cells are cropped into labeled companion and evidence views; titles and bottom captions are editorial overlays. Typing and between-stage waits are omitted. Sampled at 8 fps, encoded at 12 fps, no narration. No model prompt or model call was used. The command really exited zero, then one. Command success does not establish verified test counts or coverage; input matches cover bounded inputs at comparison time, not business acceptance or tamper-proof execution. Translations do not imply localized plugin UI.

Install and restart. Ernesto detects the existing project test command.

Check project runs npm run test directly. No helper paths or project JSON.

Details shows actual command output. Exit zero does not verify test counts.

A source edit makes the earlier command input comparison stale.

Check project runs again and really fails. Exit status remains separate from freshness.

Quiet hides the banter while preserving the evidence and controls.

Restore banter and offer chocolate. The failed result stays failed.

Explore the QA states

Open an example to see what the result means and what to do next. These are illustrations, and no tests run in your browser.

No evidence

No supported result has been recorded. Unknown is not a pass.

View example

Illustrative example · one local check

Result
No recorded run
Code snapshot
No snapshot captured

Next step: Explicitly run your configured check to record a result.

Recorded pass

A configured check passed for its declared scope at a recorded snapshot. This only describes that check.

View example

Illustrative example · one local check

Result
One configured check passed
Code snapshot
Declared inputs matched at the last comparison

Next step: Review the check’s scope. A pass covers only what that check tested.

Stale result

A captured input changed after the check. The previous pass remains historical evidence. Run the check again yourself.

View example

Illustrative example · one local check

Result
An earlier run passed
Code snapshot
A captured input changed after the run

Next step: Run the check again against the changed inputs. The earlier pass is historical.

Failed check

The configured check finished with a failure. Other checks and acceptance criteria remain separate.

View example

Illustrative example · one local check

Result
One configured check failed
Code snapshot
Snapshot recorded for the failed run

Next step: Inspect the failure, fix the code and run the check again.

A little personality. No project setup.

Let Ernesto keep you company while you work. Hide him, quiet him down, or reduce motion whenever you need a calmer workspace.

Install, restart, check.

No helper commands to copy and no required project JSON. Choose Check project or type /ernesto check. Ernesto detects an existing npm/pnpm/yarn/bun test or check script. Projects without a detected command still get the companion immediately.

Know what the result actually covers.

Optional QA mode reads a supported structured result for one workspace. It compares the declared inputs and configuration with the captured snapshot. A match at the last comparison does not prove that every file, dependency, external service or business requirement was tested.

Install, update and remove

Third-party code runs with your user privileges. Inspect the source, capabilities and requirements before installing. Ernesto is an independent Wavect mod, not an Anthropic endorsement.

Combined shell syntax needs Claude Code 2.1.292 or later; combined in-session syntax needs 2.1.275 or later and asks for source confirmation. The mod may require a newer tested host.

System terminal

claude plugin install ernesto --marketplace wavect/ernesto

Inside a Claude Code session

/plugin install ernesto --marketplace wavect/ernesto

Explicit two-step fallback

claude plugin marketplace add wavect/ernesto
claude plugin install ernesto@ernesto

Update

The verified 0.2.0-to-0.3.0 update first ran claude plugin marketplace update ernesto, then claude plugin update ernesto@ernesto --scope user. Match your installation scope and restart Claude Code afterward. The latest stable version is 0.3.0.
claude plugin update ernesto@ernesto

Uninstall

claude plugin uninstall ernesto@ernesto

Remove the marketplace (optional)

claude plugin marketplace remove ernesto

Install and uninstall default to user scope. Match the scope used during setup. Reload plugins or restart the session after changes. Third-party marketplace auto-update is off by default. Removing a marketplace also uninstalls its plugins. Review Ernesto preferences, QA helper configuration and local evidence separately before deleting anything; preserve your project files.

Claude Code installation documentation

Compatibility must be demonstrated.

Release 0.3.0 was tested in Claude Code 2.1.296 on macOS 26.5.1, arm64. Ordinary package checks need no Ernesto JSON or pinned Vitest. Real npm execution was tested with Node 24.3.0; pnpm/yarn/bun detection has unit coverage only. Detailed Vitest evidence still needs Node 24 and local Vitest 4.1.11. Desktop, other operating systems and localized plugin UI remain unverified.

Ernesto for Claude Code 0.3.0

Claude Code: 2.1.296

  • CLI terminal · macOS 26.5.1, Apple M3 Pro, arm64 · 2.1.296
  • npm run test / Node built-in test runner (Node 24.3.0) · Node 24.3.0
  • Optional structured Vitest evidence (Node 24.3.0) · 4.1.11

Privacy and limits

In 0.3.0, only Check project or /ernesto check starts a project process. Startup, setup, doctor and Compare do not run tests. Command output stays in Ernesto session memory behind Details. Project scripts use your environment and can access networks or write files. QA off/hide discards late results, but an already launched command may continue until completion or the two-minute timeout. Ernesto adds no model calls, telemetry or external requests.

Code and artwork are separate.

Source code uses the MIT license. Wavect retains artwork and trademark rights: plugin display, demonstration screenshots and attributed plugin redistribution are permitted under the separate ASSET_LICENSE.md terms. Other artwork uses require Wavect permission. Claude access and your test infrastructure may have separate requirements and costs.

MIT (source code) · Wavect artwork rights retained; plugin display and attributed redistribution permitted; see ASSET_LICENSE.md

Questions before you install

A Wavect companion mod for Claude Code, with a playful interface and optional supported test-evidence tracking.
No. Choose Check project or type /ernesto check to run the detected project command. Startup does not launch tests or install tools.
The captured inputs or check configuration no longer match the last observed result. That result remains historical evidence, not a fresh check of the changed work.
No. It describes the observed check and its declared scope. Untested behavior, external state, and business acceptance remain separate.
Release 0.3.0 was tested in Claude Code 2.1.296 on macOS 26.5.1, arm64. Ordinary package checks need no Ernesto JSON or pinned Vitest. Real npm execution was tested with Node 24.3.0; pnpm/yarn/bun detection has unit coverage only. Detailed Vitest evidence still needs Node 24 and local Vitest 4.1.11. Desktop, other operating systems and localized plugin UI remain unverified.
Source code uses the MIT license. Wavect retains artwork and trademark rights: plugin display, demonstration screenshots and attributed plugin redistribution are permitted under the separate ASSET_LICENSE.md terms. Other artwork uses require Wavect permission. Claude access and your test infrastructure may have separate requirements and costs.
Install and uninstall default to user scope. Match the scope used during setup. Reload plugins or restart the session after changes. Third-party marketplace auto-update is off by default. Removing a marketplace also uninstalls its plugins. Review Ernesto preferences, QA helper configuration and local evidence separately before deleting anything; preserve your project files.

Need independent QA, not just a companion?

A visible check result helps you ask better questions. A release decision still needs independent testing, code review and human acceptance.