-
Notifications
You must be signed in to change notification settings - Fork 0
Privacy
[English] · Privacy-zh
All analysis happens on your machine. The tool never sends session content, file paths, or prompts anywhere.
Your Claude Code sessions (local only)
↓
Transcript JSONL files (~/.claude/projects/) [never leave your machine]
↓
cc-proficiency process (local analysis)
↓
Aggregate signals only (counts, ratios, booleans)
↓
~/.cc-proficiency/store.json [local — never uploaded]
↓ (if gh authenticated)
Private Gist: cc-proficiency.json [private — secret URL]
↓ (only if you run cc-proficiency share)
Public Gist: cc-proficiency-public.json [public — scores only]
The following data never leaves your machine under any circumstance:
| Data | Where it lives |
|---|---|
| Claude Code session transcripts |
~/.claude/projects/ (managed by Claude Code) |
| File paths from sessions | Transcripts only, never extracted to store |
| Prompt content | Transcripts only, never stored or uploaded |
| Tool inputs/outputs | Transcripts only, never stored or uploaded |
| Project names | Sanitized slugs in store.json, never uploaded |
~/.cc-proficiency/store.json |
Local store, never pushed |
~/.cc-proficiency/queue.jsonl |
Queue file, never pushed |
~/.cc-proficiency/hook.log |
Hook log, never pushed |
~/.cc-proficiency/cc-proficiency.svg |
Local static badge copy |
~/.cc-proficiency/cc-proficiency-animated.svg |
Local animated badge copy |
If you run cc-proficiency init with gh authenticated, a private (secret) Gist is created at cc-proficiency.json. This contains:
| Field | Example | Description |
|---|---|---|
username |
"yourname" |
GitHub username |
memberSince |
"2026-01-01" |
First session date |
recentSessions |
[{id, date, hours}] |
Session IDs, dates, and durations (last 90 days) |
archivedStats |
{sessions, hours, projects} |
Aggregated older data |
domains |
[{id, score, confidence}] |
Domain scores (5 numbers) |
featureScores |
{hooks: 80, mcp: 60, ...} |
Mini-bar heatmap values |
streak |
{current, longest, lastActiveDate} |
Streak data |
achievements |
[{id, unlockedAt}] |
Achievement IDs and dates |
weeklyTrends |
[{week, domains, hours}] |
Weekly score history |
What is NOT in the private Gist:
- Session transcript content
- Prompts or responses
- File paths or project names
- Tool call details
The private Gist uses a secret URL. It does not appear on your GitHub profile. Only someone with the exact URL can access it.
The SVG badge (cc-proficiency.svg) pushed to your Gist contains:
- Domain score bars and numbers
- Feature mini-bar heatmap
- Session count and project count
- Total hours
- Achievement count and streak (if available)
- Your GitHub username (as display label)
It does not contain file paths, project names, tool usage details, or any transcript content.
If you opt in via cc-proficiency share, a second, separate, public Gist is created. It contains only your PublicProfile:
| Field | Example |
|---|---|
username |
"yourname" |
memberSince |
"2026-01-01" |
domains |
5 domain scores |
streak |
Current and longest streak |
achievementCount |
Total unlocked achievements |
totalSessions |
Session count |
totalHours |
Hours total |
lastUpdated |
Timestamp |
This Gist is public and anyone can view it. It contains no session content, no project names, no file paths. It has only what the leaderboard needs to display.
cc-proficiency automatically detects and excludes CI/CD sessions. Sessions running in GitHub Actions, CircleCI, Jenkins, or other CI environments are skipped by the Stop hook. They never enter the queue.
Everything works fully offline. Without gh CLI:
- Analysis runs locally
- Badges are saved to
~/.cc-proficiency/cc-proficiency.svg - No data leaves your machine at all
To see exactly what is stored locally:
cat ~/.cc-proficiency/store.jsonTo see your private Gist content:
gh gist view <your-gist-id> --filename cc-proficiency.jsonTo see your public profile (if on leaderboard):
gh gist view <your-public-gist-id> --filename cc-proficiency-public.jsonTo remove everything:
# Remove hook and local data
cc-proficiency uninstall
# Remove the npm package
npm uninstall -g cc-proficiency
# If you joined the leaderboard, leave first
cc-proficiency share --removeTo delete your private Gist:
gh gist delete <your-gist-id>After uninstall, no data remains on your machine. The Gist must be deleted separately.
| Data | Local | Private Gist | Public Gist | SVG Badge |
|---|---|---|---|---|
| Session transcripts | ✓ | — | — | — |
| File paths / prompts | ✓ | — | — | — |
| Project names | slug only | — | — | — |
| Domain scores | ✓ | ✓ | ✓ (opt-in) | ✓ |
| Feature heatmap | ✓ | ✓ | — | ✓ |
| Session count | ✓ | ✓ | ✓ (opt-in) | ✓ |
| Total hours | ✓ | ✓ | ✓ (opt-in) | ✓ |
| Achievement IDs | ✓ | ✓ | count only (opt-in) | count only |
| Streak | ✓ | ✓ | ✓ (opt-in) | ✓ |
| Username | ✓ | ✓ | ✓ (opt-in) | ✓ |
English
中文
- Home-zh
- Getting-Started-zh
- Gamification-Guide-zh
- Commands-zh
- Scoring-zh
- Achievements-zh
- Leaderboard-zh
- Privacy-zh
Español
- Home-es
- Getting-Started-es
- Gamification-Guide-es
- Commands-es
- Scoring-es
- Achievements-es
- Leaderboard-es
- Privacy-es
Français
- Home-fr
- Getting-Started-fr
- Gamification-Guide-fr
- Commands-fr
- Scoring-fr
- Achievements-fr
- Leaderboard-fr
- Privacy-fr
日本語
- Home-ja
- Getting-Started-ja
- Gamification-Guide-ja
- Commands-ja
- Scoring-ja
- Achievements-ja
- Leaderboard-ja
- Privacy-ja
한국어