Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Claude Code hook matchers are event-specific filters, not one universal vocabulary. The event key identifies a lifecycle point such as SessionStart or PreToolUse; the matcher then filters the value associated with that event. The current official reference (checked October 13, 2026) documents exact values for tool calls, sessions, notifications, subagents, compaction, model switches, configuration, workspace changes, failures, instruction loading, commands and MCP servers. It also makes clear that some events have no documented matcher support. See the Claude Code Hooks reference for the maintained specification.
How Claude Code hook matchers work
A hook configuration is organized by event name. Inside an event group, matcher is a filter evaluated against that event’s own field. A tool event matches a tool name, while SessionStart matches a startup reason and Notification matches a notification type. Consequently, a value that is valid for one event may be meaningless for another.
As an Amazon Associate I earn from qualifying purchases.
The official event catalog currently contains these keys: SessionStart, Setup, InstructionsLoaded, UserPromptSubmit, UserPromptExpansion, MessageDisplay, PreToolUse, PermissionRequest, PostToolUse, PostToolUseFailure, PostToolBatch, PermissionDenied, Notification, SubagentStart, SubagentStop, TaskCreated, TaskCompleted, Stop, StopFailure, TeammateIdle, ConfigChange, CwdChanged, DirectoryAdded, FileChanged, WorktreeCreate, WorktreeRemove, PreCompact, PostCompact, PreModelSwitch, PostModelSwitch, SessionEnd, Elicitation and ElicitationResult. The presence of an event does not by itself mean that it accepts a matcher.
Recommended Free Tools
Matcher syntax and matching rules
Match every occurrence
Omit matcher, set it to an empty string, or use * to match every occurrence of that event. This is the safest choice when the handler should run regardless of the event’s value.
#1 Best Overall
- Compact Size, Function Core: With 80 programmable keys and a customizable screen, the F75 Max upgrades from its successful predecessor EPOMAKER X Aula F75 with equal reliability and incredible new functions. Revel in the convenience the volume knob offers and enjoy the Gif-showing screen that makes Backlight customization fun and easy. With connectivity, battery monitor and indicator lights combined in one, the F75 Max keyboard with TFT smart display will be your inseparable helper and productivity booster in gaming and life
- Stylish and Ergonomic: Say goodbye to wrist strain and finger fatigue, as this Cherry-profile keyboard becomes your ergonomic assistant in browsing the digital world. With the 2cm-low front height and a 2-stage adjustable kickstand, typing angle can be as high or low as your comfort calls for. The Gasket-Mount structure separates F75 Max’s PCB from its shell to rid the harsh bottom-out, while the flex-cut PC plate gives it extra flexibility for soft and soothing typing
- Satisfying Creamy Sound: Indulge in the creamy smooth melody of F75 MAX, composed by the rhythmic thud of every keystroke. Factory-lubed and tuned, the stabilizers and linear switches sound as incredible as they feel, with the right amount of creamy and thocky combined. Full of foams and silicone sandwiched between plate, PCB and bottom case, noise caused by echo within the keyboard is eliminated, while the IXPE switch pad and PET pad highlight the mellow switch sound that’s rich and pleasant
- Versatile Gaming Keyboard: Game in style with this anti-ghosting keyboard that performs stably without double chattering or mistype in BT, 2.4Ghz wireless and cable mode, with 1000hz polling rate in USB and 2.4G modes. Its support of NKRO allows gamers to input multiple keys simultaneously, handy in FPS and Rhythm Games, while its compatibility with Android, Windows, Mac and Linux is valuable for programmers and clerks in the office
- Custom Keyboard with Compatibility: As personalization being our core branding, our F75 Max isn’t shy in the realm of customization. With south-facing per-key LEDs and light diffusers on the Reaper switches, the RGB Backlight shines brightly with pre-set dynamic effect, adjustable in color and style via software, screen and shortcut. The hot-swappable F75 MAX comes with plate-mount stabilizers but is compatible with 3/5-pin mechanical switches and screw-in stabilizers for experimenting typing feel and sound, while the software offers key remapping and macro editing for efficiency and accessibility
Exact values and lists
A matcher containing only letters, digits, underscores, hyphens, spaces, commas and vertical bars is parsed as an exact value or an exact-value list. A vertical bar separates alternatives. For most events, a comma can also separate alternatives. For example, startup|resume targets either session reason, and Edit|Write targets either tool.
Regular expressions
If any character outside that simple character set appears, Claude Code treats the matcher as an unanchored JavaScript regular expression. Use anchors when the entire value must match: ^Edit$. A pattern such as mcp__.* intentionally matches any tool name beginning with mcp__. Because the expression is unanchored by default, a pattern can match a substring unless you add ^ and $.
Special parsing for file and failure events
FileChanged and StopFailure use a narrower simple-character set: letters, digits, underscores and vertical bars. A hyphen, space or comma sends those matchers through the regular-expression path. FileChanged also has special watch-list behavior documented in the official reference, so follow that event’s example rather than assuming ordinary list parsing.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Tool and permission events
Five events filter by tool name: PreToolUse, PermissionRequest, PostToolUse, PostToolUseFailure and PermissionDenied. The documented examples are below.
| Event | Matcher filters | Documented values or patterns | When it runs |
|---|---|---|---|
PreToolUse |
Tool name | Bash, Edit|Write, mcp__.* |
Before a tool call; a hook can block it |
PermissionRequest |
Tool name | Bash, Edit|Write, mcp__.* |
When a call needs a permission decision |
PostToolUse |
Tool name | Bash, Edit|Write, mcp__.* |
After a successful call |
PostToolUseFailure |
Tool name | Bash, Edit|Write, mcp__.* |
After a failed call |
PermissionDenied |
Tool name | Bash, Edit|Write, mcp__.* |
When an automatic-mode permission is denied |
Choose among these events by timing. Use PreToolUse for a preventive check, PermissionRequest for a decision-time handler, PostToolUse for success processing and PostToolUseFailure for recovery or diagnostics. Use PermissionDenied specifically for an auto-mode denial. The official example adds an optional if condition such as Bash(rm *) to narrow when a handler executes after the event and matcher have selected a tool.
A command hook that exits with status 0 does not itself approve a tool call. Normal Claude Code permission handling continues, so a successful hook exit should not be described as an authorization grant.
Rank #2
- 🎮𝐀𝐥𝐥-𝐢𝐧-𝐎𝐧𝐞 𝐆𝐚𝐦𝐢𝐧𝐠 & 𝐎𝐟𝐟𝐢𝐜𝐞 𝐂𝐨𝐦𝐛𝐨 - 𝐔𝐧𝐛𝐞𝐚𝐭𝐚𝐛𝐥𝐞 𝐕𝐚𝐥𝐮𝐞: Experience premium features without the premium price. This complete wired set includes a full-size RGB backlit keyboard AND a high-precision gaming mouse, offering everything you need for gaming, work, or study. Perfect for first-time gamers, students, and budget-conscious users seeking a durable and responsive upgrade from basic peripherals.
- ✨𝐅𝐮𝐥𝐥𝐲 𝐂𝐮𝐬𝐭𝐨𝐦𝐢𝐳𝐚𝐛𝐥𝐞 𝐑𝐆𝐁 & 𝐌𝐚𝐜𝐫𝐨𝐬 - 𝐘𝐨𝐮𝐫 𝐂𝐨𝐧𝐭𝐫𝐨𝐥, 𝐘𝐨𝐮𝐫 𝐒𝐭𝐲𝐥𝐞: Dive into your gameplay with dynamic lighting. The keyboard features 6 vibrant backlight modes, and the mouse boasts 10 lighting effects. Easily customize colors, brightness, and patterns using the intuitive software (downloadable at redragon.com). Record complex command sequences with the 5 dedicated macro keys for a competitive edge in any game.
- 🔇𝐐𝐮𝐢𝐞𝐭, 𝐂𝐨𝐦𝐟𝐨𝐫𝐭𝐚𝐛𝐥𝐞 & 𝐑𝐞𝐬𝐩𝐨𝐧𝐬𝐢𝐯𝐞 𝐓𝐲𝐩𝐢𝐧𝐠 𝐄𝐱𝐩𝐞𝐫𝐢𝐞𝐧𝐜𝐞: Designed for marathon sessions. The soft-touch membrane keys provide satisfying feedback while remaining remarkably quiet—ideal for shared spaces, late-night gaming, or office use. The included ergonomic wrist rest reduces fatigue, and the anti-ghosting keyboard ensures every key press is registered instantly, even during intense action.
- ⚙️𝐏𝐥𝐮𝐠, 𝐏𝐥𝐚𝐲, 𝐚𝐧𝐝 𝐏𝐞𝐫𝐬𝐨𝐧𝐚𝐥𝐢𝐳𝐞 - 𝐄𝐚𝐬𝐲 𝐒𝐞𝐭𝐮𝐩, 𝐋𝐚𝐬𝐭𝐢𝐧𝐠 𝐒𝐞𝐭𝐭𝐢𝐧𝐠𝐬: Get straight to the fun with true plug-and-play compatibility for Windows 10/11. Your personalized lighting and DPI settings are saved directly to the hardware, meaning they stay the way you set them, even after restarting your PC. Adjust the mouse sensitivity on-the-fly (800-7200 DPI) with a dedicated button for precision in any task.
- ✅𝐑𝐞𝐥𝐢𝐚𝐛𝐥𝐞 𝐏𝐞𝐫𝐟𝐨𝐫𝐦𝐚𝐧𝐜𝐞 & 𝐄𝐧𝐡𝐚𝐧𝐜𝐞𝐝 𝐂𝐨𝐦𝐩𝐚𝐭𝐢𝐛𝐢𝐥𝐢𝐭𝐲: Built to last and work seamlessly. We’ve listened to feedback to ensure reliable performance. This combo is rigorously tested for durability and offers wide compatibility with major PCs and laptops. It’s the trusted, feature-packed kit that delivers excitement for young gamers and reliable functionality for everyday users.
Session, setup and shutdown matchers
SessionStart
The matcher filters how the session began. The documented values are:
startup— a new startup.resume— a resumed session.clear— a session created after clearing.compact— a session path associated with compaction.fork— a forked session.
Use an exact list such as startup|resume when initialization should run for only those entry paths.
Setup
Setup filters the CLI flag that triggered setup. The documented values are init and maintenance. Match those exact strings rather than the broader idea of “setup.”
SessionEnd
SessionEnd filters the reason a session ended: clear, resume, logout, prompt_input_exit or other. A cleanup hook can therefore distinguish a logout from a session that ended for another reason.
Notification matchers
Notification matches the notification type. The current documented values are:
permission_promptidle_promptauth_successelicitation_dialogelicitation_url_dialogelicitation_completeelicitation_responseagent_needs_inputagent_completedquota_auto_resume_firedquota_auto_resume_stalequota_auto_resume_disabled
These are notification categories, not event names. For example, agent_completed belongs in the Notification event’s matcher; it is not a replacement for SubagentStop.
Rank #3
- RAZER HYPERSPEED WIRELESS & BLUETOOTH — Game lag-free with ultra-fast 2.4 GHz wireless and pair a compatible Razer mouse to the same dongle via multi-device support; multi-task swiftly by toggling between 3 Bluetooth devices
- HOT-SWAPPABLE DESIGN — Compatible with 3 or 5-pin switches, the keyboard’s socketed PCB allows an easy swap out of its pre-loaded switches for custom ones to achieve desired key feel
- OPTIMIZED TYPING EXPERIENCE — Enjoy a clean typing sound and feel, achieved through a top-mounted stainless-steel plate, tape-enhanced PCB, lubricated stabilizers, and two layers of sound dampening foam
- MULTI-FUNCTION ROLLER & 3 CONTROL BUTTONS — Streamline control with a multi-function roller and dedicated buttons for audio, media, and battery settings—each fully remappable
- UP TO 980 HR BATTERY LIFE — Enjoy uninterrupted use regardless of whether it’s in Razer HyperSpeed Wireless or Bluetooth mode; minimize downtime and stay in the action with fast charging
Subagent and task lifecycle events
SubagentStart and SubagentStop
Both events filter the agent type. Documented choices include general-purpose, Explore, Plan, custom agent names and plugin-scoped names such as ^my-plugin:reviewer$. The caret and dollar sign make that last example a whole-string regular expression, preventing a partial match.
TaskCreated, TaskCompleted and TeammateIdle
These event keys are part of the catalog, but the current reference does not provide a matcher-value table for them. Do not infer that task status, teammate name or another guessed value is accepted. If you need to react to every occurrence, use an omitted, empty or * matcher only where the event’s hook implementation supports a matcher; otherwise follow the event-specific documentation.
Compaction and model-switch matchers
PreCompact and PostCompact
These events filter the compaction trigger: manual or auto. A handler can therefore run before or after only automatic compaction, or only when a user explicitly requests it.
PreModelSwitch and PostModelSwitch
These events match the canonical name of the target model. The reference gives examples including claude-opus-5, the exact-value list claude-opus-4-6|claude-opus-5, and the regular expression .*opus.*. Match canonical names, not display labels or an informal model nickname.
Configuration and workspace matchers
ConfigChange
The matcher filters the configuration source that changed. Values are user_settings, project_settings, local_settings, policy_settings and skills. This lets a hook respond differently to a project edit than to a user-level or policy-level update.
DirectoryAdded
The documented reasons are slash_command and register_repo_root. Select the reason, not the directory path; path matching is not the field described for this event.
Rank #4
- 【75% Space‑saving Layout】The KN85 series is a compact 85‑key keyboard (13.68" × 5.51" × 1.77") that keeps all the essentials (F1–F12, arrows, shortcuts) without the number pad. It frees up 25% of desk space for better mouse movement. Designed for small desks, laptop setups, gamers and minimalists. For frequent number‑pad input, choose our full‑size KN104 with a complete dedicated numpad, or opt for our new KN98 model — compact 99‑key that retains the numpad while saving desktop real‑estate
- 【Tri-Mode Connectivity for Multi-Device Workflow】Connect via USB‑C, 2.4GHz wireless, or Bluetooth 5.0 (3 channels supported), with ultra‑low latency (USB 2ms, 2.4G 5ms, BT 11ms). Switch seamlessly between Windows and Mac to work across your PC, laptop, tablet, smartphone, or gaming console. Perfect for programmer, student, creator, or hybrid worker. The built‑in 4000mAh rechargeable battery ensures stable wireless performance. Continue typing while charging via wired mode when power runs low
- 【Creamy Thocky Typing Sound】The gasket mount absorbs harsh vibrations and hollow echoes to produce a smooth marbly thock, rather than loud clacky taps. Each keypress feels softly cushioned. Whether you’re working late at home or typing in a shared office space, the mellow, ASMR-like tone makes every keystroke a genuinely enjoyable experience
- 【Hot-swap for Tailored Sound & Tactile】Pre-lubed Bsun linear switches (45-50gf actuation) deliver a buttery response. Compatible with both 3 pin and 5pin switches, they enables solder-free swapping. From beginners to frequent typists and dedicated writers, craft your preferred typing signature without complex modding
- 【RGB Backlighting & Programmable】A warm ambient glow surrounds PBT keycaps and case edges, creating a calm, inviting desk vibe for late-night workspace. Adjust hues and brightness through shortcut keys or companion software. The KN85 driver (Windows only, wired/2.4G mode) lets you remap keys and set custom macros to boost your daily productivity
FileChanged
This event watches literal filenames. The reference shows .envrc|.env as an example and documents special watch-list behavior. Because this event uses the narrower matcher parser, punctuation such as a hyphen, space or comma changes parsing to regular-expression mode. Keep filenames literal and consult the official event instructions when adding more watched files.
Free tools Windows power users keep installed
One-click scans. No signup required.
CwdChanged
CwdChanged expressly has no matcher support. It fires for each occurrence, so do not add a guessed directory or path matcher.
Failure and instruction-loading matchers
StopFailure
StopFailure filters the error type. Documented values are rate_limit, overloaded, authentication_failed, oauth_org_not_allowed, account_on_hold, billing_error, invalid_request, model_not_found, server_error, max_output_tokens, cloud_credential_error and unknown. This event uses the narrower letters-digits-underscore-and-vertical-bar parser, so commas, spaces and hyphens invoke regular-expression handling.
InstructionsLoaded
The matcher identifies why instructions were loaded: session_start, nested_traversal, path_glob_match, include or compact. A hook can use these reasons to distinguish initial instruction loading from an include or a compaction-related reload.
UserPromptExpansion
This event matches the command name being expanded, such as a skill or command name. The reference does not provide a closed list because names come from the commands and skills configured in your environment.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problemsMCP elicitation matchers
Elicitation and ElicitationResult match the MCP server name. Use the server name exactly as configured in Claude Code. These are server identifiers, not generic values such as mcp or a tool name.
Best Value
- Big Features on a Small Screen - Is there anything it can't display? Custom gif image, date. connection mode, WIN/MAC layout, battery status, etc.
- Knob Design- Adjust volume, connection mode, backlit brightness/speed, RGB mode/color, all it takes is just a twist or a click.
- BT5.0/2.4G/USB-C - Wireless keyboard with stable BT 5.0, hassle-free 2.4Ghz dongle plus USB-C wired mode set no limits about your keyboard connection.
- Gaming Friendly Top-Mount Design - Offers a superior tactile consistency, firm feeling, and better noice reducing creamy keyboard.
- Sound Absorbing Foams - Equipped with IXPE switch dampener pad, 2 layers of thicker sound-absorbing foams, silicone dampener pad, which reduces 40% noise and removes 80% hallow sound. Bringing creamy or thocky sounding, natural and clear feedback, no more cavities noise.
Events with no documented matcher catalog
The event list also includes UserPromptSubmit, MessageDisplay, PostToolBatch, WorktreeCreate and WorktreeRemove, in addition to the task and teammate events discussed above. The current reference does not publish matcher values for every one of these keys. Do not manufacture a value list from the event name. Check the live Hooks reference for the event’s current schema and use an all-occurrences matcher only when that event documents matcher support.
Practical configuration patterns
Run for every session start
{
"hooks": {
"SessionStart": [
{ "matcher": "*", "hooks": ["...handler..."] }
]
}
}
The asterisk selects every documented start reason. Replace it with startup|resume when the handler should skip clear, compact and fork starts.
Target one tool before execution
{
"hooks": {
"PreToolUse": [
{ "matcher": "^Bash$", "hooks": ["...handler..."] }
]
}
}
The anchors make the intent explicit. A simple Bash matcher is also an exact match under the ordinary parser.
Handle a family of MCP tools
{
"hooks": {
"PostToolUse": [
{ "matcher": "mcp__.*", "hooks": ["...handler..."] }
]
}
}
The dot and asterisk force regular-expression parsing, matching any tool name with the mcp__ prefix.
Choosing a matcher without surprises
- Identify the lifecycle event first; never start with a value copied from another event.
- Determine the field that event filters: tool, reason, notification type, model name, filename, error type or MCP server.
- Use an omitted, empty or
*matcher for all occurrences when supported. - Use exact text or a vertical-bar list for a fixed set of values.
- Use a regular expression only when you need a pattern, and anchor it for whole-string matching.
- Check special parsing rules for
FileChangedandStopFailure. - Test permission behavior separately: a hook’s zero exit status does not grant approval.
- Recheck the live documentation before publishing or deploying, because event names and matcher catalogs are version-sensitive and maintained over time.
Claude Code is software installed and used in a development environment; the official setup guide covers installation and initial use. Hook matcher behavior itself is defined by the versioned Hooks reference, so keep that page as the authority when your installed version exposes a newer event or value.
Quick Recap
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.

