Claude profanity
Search through Claude Code conversation history for prompts containing profanity. Use when the user wants to find or audit profanity in their past Claude conversations.
npx -y skills add oliverbenns/claude-profanity --skill claude-profanityAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Search through Claude Code conversation history for prompts containing profanity. Use when the user wants to find or audit profanity in their past Claude conversations.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
2.6 KB, 553 tokens by cl100k_base, as published. Nobody here has run it
Profanity Check Skill
Search through the user's Claude Code conversation history and project files for prompts that contain profanity.
Data sources to search
- History file:
~/.claude/history.jsonl- contains all conversation prompts across projects - Project session files:
~/.claude/projects/*/- contains detailed session data
Default profanity word list
Search for these words (case-insensitive, word-boundary matched):
fuck, shit, damn, ass, bitch, crap, bastard, dick, piss, bullshit, wtf, stfu, goddamn, asshole, dumbass, dipshit, shitty, fucking, fucked, bitchy, crappy, dammit, hell
If the user passed additional words via $ARGUMENTS, add those to the search list as well.
Scope
- If the user specifies a project name (e.g. "check profanity in my-app"), filter results to only entries whose
projectfield contains that project name. - If the user says "this project" or "current project", filter results to entries whose
projectfield matches the current working directory. - Otherwise, search across all projects (global).
Instructions
-
Use Grep to search
~/.claude/history.jsonlfor the profanity word list (case-insensitive, word-boundary matching). Each line in this file is a JSON object with adisplayfield containing the user's prompt, plusprojectandsessionIdfields. -
If a project scope was specified, filter results to only matching entries.
-
For each match found:
- Extract the
displayfield (the user's actual prompt text) - Extract the
projectfield to identify which project it came from - Identify which profane word(s) were matched
- Extract the
-
Present results in a markdown table with columns:
- # (row number)
- Project (short project name extracted from the path, e.g.
bcb-appsfrom/Users/oliver/Code/bcb-apps) - Prompt (the user's message, with the profane word(s) bolded)
- Word(s) (which profane words were found)
-
End with a brief summary: total count, most-used word, which project had the most matches.
Important
- Only report on USER prompts/messages, never on assistant responses.
- The history.jsonl file contains one JSON object per line with
displayas the prompt text. - Keep the output concise and fun - this is a lighthearted audit.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.