How automatic flagging works
On Paid and Enterprise plans, RCLM checks eligible session and browser-chat records as part of server-side AI summarization after capture and upload. This is different from local hook redaction, which runs before upload. For the check, RCLM builds a bounded view of the conversation: up to 80 user turns, with up to 1,000 characters from each user and assistant side of a turn, up to 15 changed-file paths, and aggregate tool names and counts. The summarization model is instructed to identify:- API keys and plaintext passwords
- Email addresses and full names
- Local user and file paths
- Cloud IAM configuration
- Other content that may make the session unsafe to show publicly
Automatic sensitive data detection requires a Paid or Enterprise plan. Free users can review sessions manually before sharing and configure global redaction substitutions for hook capture.
Where to see the outcome
The check result is currently stored as internal session metadata. The web app does not yet show the detected text and reasons, and a sensitive-session marker is not currently available in the session list. The Share Session dialog contains a generic warning state for sessions marked unsafe to show publicly. However, the current session API does not yet return that flag to the web app, so do not rely on the warning as your only review step. Review the transcript before sharing or exporting.Local hook redaction
Local hook redaction runs on your machine, before sessions are uploaded. When a hook captures a session, the uploader applies your configured substitution rules to the serialized payload — so matched strings are replaced before anything leaves your machine. This is the most effective layer: no sensitive value ever reaches RCLM’s servers if your rules cover it.How rules are applied
RCLM computes an effective substitution map by combining remote substitutions (managed in the app, synced viarclm-update) and local substitutions (defined directly in your local config file). If the same source string appears in both, the local value takes precedence — giving you machine-specific overrides on top of account-wide defaults.
Substitutions use deterministic longest-first string replacement. This prevents a shorter key from replacing text inside a longer matching key before the longer one can match.
Config file structure
Your local redaction config lives at~/.reclaimllm/config.json:
Remote vs. local substitutions
Remote substitutions
Managed under Global Substitutions on the Settings page. Synced to your machine when you run
rclm-update. Use these for account-wide secrets, shared team tokens, or any value that should be redacted on every machine where you use RCLM.Local substitutions
Added directly to
~/.reclaimllm/config.json under redaction.local_substitutions. Use these for machine-specific values: local usernames, absolute paths, workstation-only credentials, or private service aliases that should not become account-wide rules.Folder capture filters
Folder filters are stricter than substitutions — instead of replacing sensitive strings, they decide whether the entire session is uploaded. Useredaction.include_folders when you want RCLM to capture only specific project trees. Set it during installation with rclm-hooks-install --include-folder=/path/to/project, or edit ~/.reclaimllm/config.json directly. When this list is non-empty, a session is uploaded only if its working directory or transcript path matches one of the included folders. Sessions from every other folder are skipped locally.
Use redaction.exclude_folders for paths that should never upload. Set it during installation with rclm-hooks-install --exclude-folder=/path/to/private, or edit the same config file directly. Exclusions apply when include_folders is empty. If include_folders is set, the include allowlist supersedes exclude_folders so matching included projects are captured.
Folder filters accept absolute paths and glob-style folder patterns. RCLM excludes **/.codex/memories/ by default so local Codex memory files are not uploaded as sessions.
Keeping redaction rules up to date
1
Configure shared substitutions in the app
Open Settings, scroll to Global Substitutions, and add the rules you want applied on every machine. These become your remote substitutions.
2
Run rclm-update on each machine
After adding, editing, or removing shared substitutions, run the following command on every machine where hooks are installed:This refreshes the local hook redaction cache from the app’s current remote substitutions.
3
Add local-only substitutions
Open
~/.reclaimllm/config.json and add any machine-specific values under redaction.local_substitutions. These are never pushed to the app.4
Add folder capture filters
During installation, pass
--include-folder=/path/to/project for project allowlists and --exclude-folder=/path/to/private for deny-lists. You can also edit redaction.include_folders and redaction.exclude_folders directly in ~/.reclaimllm/config.json later.5
Verify with a test capture
Run a short session in a tool with hooks installed and confirm the redacted values appear as their replacements in the RCLM session detail view.
Review before sharing
Review the full transcript before creating a share link or export. Automatic flagging is an advisory, post-upload check and does not redact the transcript or block sharing. A generic warning state exists in the Share Session dialog, but the detector flag is not yet wired through the current session API. Detected text and reasons are not currently shown in the web app, and flagged sessions are not currently marked in the session list.Enterprise DLP
Enterprise plans include Data Loss Prevention (DLP) scanning and org-wide policy enforcement.Org-wide DLP rules
Admins configure DLP policies that apply across all org members’ captured sessions — not just per-user substitutions. Coming soon.
Sensitive data alerts
Admins receive alerts via Slack, PagerDuty, or webhook when sessions matching DLP rules are captured. Coming soon.
Enterprise orgs can Require DLP from the Coverage tab so local
--no-dlp is overridden at runtime (with optional time-boxed exceptions). Hook removal and DLP-off posture surface as AD-010 / AD-011 — see Coverage Alerts.