Copies your live ~/.claude/ configuration into this repo, applying anonymization rules to strip personal data before committing.
pip install -r scripts/requirements.txt
cp scripts/anonymization.example.yaml scripts/anonymization.yamlEdit scripts/anonymization.yaml with your real data — app names, URLs, domains, people. The file is gitignored and never committed.
# Preview what would happen (no files written)
python scripts/sync.py --dry-run
# Run the sync
python scripts/sync.py
# Audit existing repo files for personal data leaks
python scripts/sync.py --audit-only
# Use a different source directory
python scripts/sync.py --source /path/to/claude-config- Reads
anonymization.yamlfor replacement rules - Copies files from
~/.claude/matching thefile_mappatterns - Applies exact string replacements (longest first, to avoid partial matches)
- Applies regex patterns for catch-all rules (paths, emails)
- Runs an audit: greps all output files for patterns that should not survive
- Prints a summary and
git diff --stat— you review and commit manually
The anonymization.yaml has four sections:
replacements: Exact string replacements. Add your real app names, URLs, domains, and people here. Longer strings are applied first automatically.patterns: Regex patterns for catch-all rules (e.g., home directory paths).audit_patterns: Patterns to grep for after sync — anything matching is a potential leak.skip: Directories/files in~/.claude/to ignore entirely.file_map: What to copy and where to put it.
The example config uses "Option B" — public apps (already on GitHub) keep their real names, while private apps get descriptive placeholders like my-budget-app. This makes the repo more readable for public apps while protecting private projects.