{"slug": "uh-filter-claude-code-plugin", "title": "Uh filter Claude Code plugin", "summary": "A developer released uh-filter, a Claude Code plugin that strips spoken filler words such as \"uh,\" \"um,\" \"uhm,\" \"erm,\" \"hmm\" and \"mm\" plus stutter repeats like \"check check\" from voice-dictated prompts before they reach the model. The mod ships as a single hooks module, hooks/register.ts, using a prompt.submit hook that rewrites every submitted prompt (including prompts other plugins submit via $.prompt.submit) and a prompt.edit hook that cleans dictated or pasted text in the terminal prompt box; it leaves words like \"album\" and \"uh-huh,\" common real doubles such as \"that that\" and \"had had,\" and anything inside backticks or code blocks untouched. It is installed via /plugin install uh-filter --marketplace amirzak/claude-code-voice-uh-filter, reads no files, runs no commands and sends nothing anywhere, and is released under the MIT license.", "body_md": "A Claude Code mod that removes spoken filler words from your prompts, made for voice dictation.\n\n- **On send:** strips`uh` ,`um` ,`uhm` ,`erm` ,`hmm` ,`mm` (and their trailing commas) plus stutter repeats like \"check check\" or \"where you where you\" before the prompt reaches the model.\n- **In the terminal prompt box:** dictated or pasted text is cleaned as it lands, and a filler you type disappears as soon as you type the space after it.\n- **Leaves alone:** words like \"album\" or \"uh-huh\", common real doubles (\"that that\", \"had had\"), anything inside backticks or code blocks, pasted code, and slash commands.\n\nTo keep a literal \"um\" in a prompt, put it in backticks.\n\nThe desktop app draws its own prompt box, so there the cleanup happens only when you send.\n\nThe mod is one hooks module, `hooks/register.ts`, with two hooks:\n\n- `prompt.submit` : rewrites the text of every prompt you send, removing fillers and stutter repeats. It skips slash commands and prompts Claude Code sends on its own. Since`prompt.submit` is also a call other plugins can make (`$.prompt.submit` ), prompts that other plugins submit pass through this cleanup too.\n- `prompt.edit` : in the terminal prompt box, cleans text that lands in one go (dictation, a paste of plain prose) and drops a filler word when you type the space after it. Pasted code and anything inside backticks is left as is.\n\nIt reads no files, runs no commands, and sends nothing anywhere.\n\nAt the prompt of a terminal Claude Code session:\n\n```\n/plugin install uh-filter --marketplace amirzak/claude-code-voice-uh-filter\n```\n\nAnswer `y` to add the marketplace, then pick a scope.\n\nFrom a shell:\n\n```\nclaude plugin install uh-filter --marketplace amirzak/claude-code-voice-uh-filter\n```\n\nIn the desktop app: click **+** next to the prompt box, then **Plugins**, **Add marketplace** with `amirzak/claude-code-voice-uh-filter`, then **Add plugin**.\n\n```\nclaude plugin validate .\nclaude plugin test .\nclaude --plugin-dir .\n```\n\nMIT", "url": "https://wpnews.pro/news/uh-filter-claude-code-plugin", "canonical_source": "https://github.com/amirzak/claude-code-voice-uh-filter", "published_at": "2026-10-18 12:33:55+00:00", "updated_at": "2026-10-18 12:47:50.820128+00:00", "lang": "en", "topics": ["ai-tools", "developer-tools", "ai-agents", "ai-products"], "entities": ["Claude Code", "uh-filter", "hooks/register.ts", "prompt.submit", "prompt.edit", "amirzak/claude-code-voice-uh-filter"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/uh-filter-claude-code-plugin", "markdown": "https://wpnews.pro/news/uh-filter-claude-code-plugin.md", "text": "https://wpnews.pro/news/uh-filter-claude-code-plugin.txt", "jsonld": "https://wpnews.pro/news/uh-filter-claude-code-plugin.jsonld"}}