Claude Modsunofficial directory

Security·terminal · desktop·MIT

recording-mode

Masks keys, names and money on screen and keeps private files closed while you record.

recording-mode has no screenshot yet: generic cover of a terminal with the band above the prompt highlighted

recording-mode is a switch for screen recordings of Claude Code. Run /rec before you hit record: keys, personal details and business figures are masked wherever the transcript draws text, results from mail, chat and finance tools are hidden whole, and Claude can’t open private files until you run /rec off.

It changes the screen, not what the model reads. Claude still gets the real values from everything it is allowed to open. To keep secrets out of the model’s context instead, secret-redactor swaps them for placeholders before the model sees them.

What it does

  • Masks secrets. Common key formats (sk-ant-, sk-, GitHub, Slack, Google and AWS keys, JWTs, Bearer tokens), any value assigned to a name with KEY, SECRET, TOKEN, PASSWORD or AUTH in it, and every value of 8 characters or more in the .env and .env.local files of the working folder and its three parent folders.
  • Masks people. Emails, names next to an email address or in JSON name fields, and whatever follows From, To, Cc or Attendees at the start of a line. A name it learns this way is masked everywhere afterwards.
  • Masks personal details. Phone numbers, street addresses and PO boxes, card numbers that pass the Luhn check, IBANs, account, routing and passport numbers, Social Security numbers, EINs, birth dates and public IP addresses.
  • Masks business figures. Amounts in dollars, euros, pounds and yen, and numbers in the same clause as words like revenue, MRR, margin, payroll, price or costs. Years stay visible. /rec strict also masks every large figure and percentage.
  • Hides whole results from mail, chat, task, calendar, file, CRM and finance tools, such as Gmail, Slack, Notion, Linear, Jira, HubSpot, Stripe, QuickBooks and Google Drive. Their rows read ••• hidden while recording.
  • Keeps files closed. A tool call is refused when any path, glob, command or URL in it points at .env files, credential files, ~/.claude.json, SSH, AWS or GnuPG folders, private keys, .npmrc, .netrc or .pypirc, Claude’s memory folders, or files named like payroll, invoices, contracts, budgets, forecasts, cap tables, term sheets, offer letters, business plans or yearly tax files. QuickBooks finance tools are refused too. Claude is told the file stays closed while recording and carries on without it.
  • Asks Claude to be discreet. Each prompt carries a hidden note of about 75 words asking Claude to leave names, contact details, amounts, business figures and internal plans out of its replies and tool commands, with placeholders such as [name] instead. One last note tells it when recording stops.

/rec config creates ~/.claude/mods-data/recording-mode/config.json with example values for five lists: keepNames (your own name or brand, never masked), names (people always masked), privatePaths (folders or file names kept closed, matched anywhere in a path, in any case), businessTools (more tools or commands whose results hide whole) and closedTools (more tools Claude may not call). Save it and run /rec again.

Install

Needs Claude Code 2.1.287 or later.

claude plugin marketplace add nateherkai/claude-code-mods
claude plugin install recording-mode@nateherk-mods

Open a new chat, then run /rec or /rec strict before recording. A red ● REC shows above the prompt and in the footer while it is on. /rec off turns it off and says how many files it kept closed.

How it works

/rec writes a flag to ~/.claude/mods-data/recording.json, and every open chat checks it every 3 seconds, so one command covers them all. When the flag goes on, each chat reads its .env values into memory; they are never written anywhere and are dropped when recording stops.

Masking runs in the ui.render hooks that draw your prompts, Claude’s replies, command output, and tool inputs and results: the text on screen is rewritten, the text stored and sent to the model is not. The tool.call hook reads each call’s paths, globs, commands and URLs to decide whether to refuse it, and prompt.submit adds the note, the only thing the mod puts in the context. It makes no network calls.

Limitations

  • Pattern matching misses details written in plain words. The author advises watching your footage before you publish.
  • Several patterns follow US formats: ten-digit phone numbers, Social Security numbers, a state followed by a ZIP code.
  • Stored transcripts keep the real text, and the chat titles in the Desktop app’s sidebar can’t be masked by a mod.