{"name":"plugin test","slug":"plugin-test","family":"cli","title":"CLI flags","noun":"CLI flag","description":"New `claude plugin test` command runs a plugin's hook tests in a sandboxed environment that mimics the real runtime","description_source":"entry","described_by":{"version":"2.1.271","anchor":"new-claude-plugin-test-cli-command-for-function-hooks-plug"},"presence":{"first_seen":null,"removed_in":null,"in_current_build":false,"newest_mined":"2.1.308","builds":0,"mined_builds":149,"first_cited":null},"aliases":[],"entries":[{"version":"2.1.290","anchor":"claude-plugin-test-rollout-flag-hold-and-file-form","heading":"claude plugin test now waits for its rollout setting to be saved","line":"`claude plugin test` now waits until a rollout setting is saved for test files to read, and reports when that fails","released_at":"2026-10-05 18:12:44","reason":"named in this entry"},{"version":"2.1.281","anchor":"claude-plugin-test-cleanup-removes-a-different-variables-di","heading":"claude plugin test cleanup removes a different variable's directory","line":"`claude plugin test` now cleans up the same directory it checks for at the end of a run","released_at":"2026-09-23 17:01:17","reason":"named in this entry"},{"version":"2.1.280","anchor":"claude-plugin-test-refusal-messaging-refactored-into-a-share","heading":"claude plugin test refusal messaging refactored into a shared helper","line":"The claude plugin test command's refusal messaging was refactored into a shared helper function","released_at":"2026-09-22 15:44:39","reason":"named in this entry"},{"version":"2.1.271","anchor":"new-claude-plugin-test-cli-command-for-function-hooks-plug","heading":"New claude plugin test CLI command for function-hooks plugins","line":"New `claude plugin test` command runs a plugin's hook tests in a sandboxed environment that mimics the real runtime","released_at":"2026-09-14 19:45:19","reason":"named in this entry"}],"entries_total":4,"docs":[{"source":"claude-code","path":"changelog","title":"Claude Code changelog","documented":false},{"source":"claude-code","path":"plugins\/cli-reference","title":"Plugin commands reference","documented":false},{"source":"claude-code","path":"plugins\/mods\/create","title":"Create a mod","documented":false},{"source":"claude-code","path":"plugins\/mods\/reference","title":"Mods reference","documented":false},{"source":"claude-code","path":"plugins\/mods\/test","title":"Test a mod","documented":false},{"source":"claude-code","path":"plugins\/mods\/troubleshoot","title":"Troubleshoot a mod","documented":false}],"docs_total":6,"gates":[],"related":[{"name":"plugin","slug":"plugin","description":"Telemetry values now pass through marker helpers that declare them safe; nothing sent actually changed."},{"name":"plugin configure","slug":"plugin-configure","description":"New `claude plugin configure <plugin>` shows a plugin's options, or saves values piped in as JSON with `--values-stdin`"},{"name":"plugin details","slug":"plugin-details","description":"Plugin subcommand descriptions come from the shared table that also hides early-access entries."},{"name":"plugin disable","slug":"plugin-disable","description":"Plugin commands now explain refusals for built-ins and org-locked plugins instead of acting oddly."},{"name":"plugin disable-all","slug":"plugin-disable-all","description":"Plugin disable, disable-all, and update commands gain --json output alongside other plugin commands"},{"name":"plugin enable","slug":"plugin-enable","description":"Plugin subcommand descriptions come from the shared table that also hides early-access entries."},{"name":"plugin eval","slug":"plugin-eval","description":"Plugin eval now writes report.html and publishes it to claude.ai unless you pass --no-publish."},{"name":"plugin eval init","slug":"plugin-eval-init","description":"Eval scaffolding refuses to create files outside a plugin or skill folder unless you pass --eval-dir."},{"name":"plugin init","slug":"plugin-init","description":"The check at the end of `claude plugin init` now warns, rather than failing, when a name cannot be recorded"},{"name":"plugin install","slug":"plugin-install","description":"Plugin install and update take -y to skip the command confirmation, but not inside a session."}],"url":"https:\/\/changelogs.core-directive.com\/reference\/cli\/plugin-test","family_url":"https:\/\/changelogs.core-directive.com\/reference\/cli.json"}