Free tools Windows power users keep installed
One-click scans. No signup required.
Build a Claude Code plugin by putting its manifest at .claude-plugin/plugin.json, slash-command Markdown files in commands/, and event-hook configuration in hooks/hooks.json. Load the plugin locally with claude --plugin-dir ./my-plugin, then validate and test it before sharing it directly or through a marketplace.
Start with the plugin root and manifest
The plugin root is the directory Claude Code loads. Only the manifest belongs inside .claude-plugin/; component directories sit alongside it.
As an Amazon Associate I earn from qualifying purchases.
my-plugin/
├── .claude-plugin/
│ └── plugin.json
├── commands/
│ └── audit.md
├── hooks/
│ └── hooks.json
└── scripts/
└── validate.sh
This is a minimal illustrative structure: scripts/ is an author-chosen location, not a required directory. Other supported component locations include agents/, skills/, and .mcp.json; add only the components your plugin needs. See Anthropic’s plugin layout documentation and official Claude Code repository for current conventions.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Create .claude-plugin/plugin.json as the plugin manifest. Consult the current Claude Code documentation for required manifest fields and valid values rather than copying a schema from an older example: plugin conventions can evolve.
#1 Best Overall
Choose a command, a hook, or both
| Component | Where it goes | How it runs | Design consideration |
|---|---|---|---|
| Custom slash command | A Markdown file under commands/ |
A person invokes it explicitly | Use its description and argument hints to communicate purpose and inputs. |
| Hook | Configuration in hooks/hooks.json |
Automatically in response to a configured event | Choose the event and matcher deliberately; inspect executable behavior and side effects. |
Create a command Markdown file
Put each command in a Markdown file under commands/. The file defines a saved prompt that the user invokes as a slash command. The plugin development toolkit documents frontmatter such as description, argument-hint, and allowed-tools, along with dynamic arguments, file references, and plugin-aware namespacing. Check the installed Claude Code documentation for the exact current syntax and invocation name; namespacing helps prevent collisions with commands from other plugins.
Configure event-driven hooks
Put hook declarations in hooks/hooks.json, using a top-level hooks key and a shape based on the hooks setting. Select only events the plugin needs. The toolkit lists events including PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, and Notification. Event names, matchers, and schema details should be checked against the current documentation before implementation.
Rank #2
Hooks are executable automation, not merely descriptive prompt text. Validate input, keep behavior narrowly scoped, and use ${CLAUDE_PLUGIN_ROOT} for paths that must work wherever the plugin is installed. Review scripts and their side effects; a JSON file passing schema validation does not establish that a hook is safe or appropriate.
Load and test the plugin locally
- Start Claude Code with the plugin root: from a shell, run
claude --plugin-dir ./my-plugin. This loads the plugin for that session; it does not publish it or install it for every project. - Exercise the command: invoke its plugin-aware slash-command name in that session, supplying any arguments the command expects. Confirm the prompt and any referenced files or tools behave as intended.
- Exercise hooks with controlled inputs: verify the intended event and matcher, inspect the hook’s output and side effects, and include cases with missing or malformed input.
- Reload after edits: while the session is running, use
/reload-pluginsto reload plugin changes, as described in the creation documentation.
The plugin development toolkit documents utilities including validate-hook-schema.sh hooks/hooks.json, test-hook.sh my-hook.sh test-input.json, and a hook linter. These are toolkit utilities rather than guaranteed built-in Claude Code commands; confirm the utility paths and availability in your installed toolkit before using them. Its guided creation workflow also covers planning, implementation, validation, testing, and documentation. The toolkit’s named “8-Phase Process” describes that workflow specifically, not a requirement imposed on every plugin. See the plugin development toolkit resources for its current materials.
Rank #3
Pick a distribution route
| Route | Audience and access | Updates | Review |
|---|---|---|---|
| Share a directory or ZIP | Direct recipients | Recipients need an updated copy when you change it. | No marketplace listing process is required for direct sharing. |
| Team marketplace | Users who can access the marketplace | Marketplace-based distribution can support updates. | Current marketplace terms and setup depend on the marketplace. |
| Anthropic’s directory | Potential directory users | Directory distribution rather than direct file handoff | Submission is subject to review; acceptance or publication is not guaranteed. |
Choose direct sharing for a small, known audience; use a marketplace when discoverability and managed distribution matter. The available sources describe these broad routes but do not establish complete current marketplace terms. Check Anthropic’s plugin documentation and its plugin resources for current submission and setup details.
Quick Recap
Best Value
Rank #4
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




