Clawsights — Upload Your Claude Code Stats
Before starting, create a task list with these items so the user can see progress:
- Get GitHub identity
- Generate insights report
- Read and preview report
- Confirm upload preferences
- Upload to Clawsights
- Show results
Mark each task as in_progress when you start it and completed when done. Follow these steps exactly:
Step 1: Get GitHub Identity
Tell the user: "I'll grab your GitHub identity so Clawsights can create your profile at clawsights.dev/{handle}."
Run these commands to get the user's GitHub handle and auth token:
bash
gh api user --jq '.login'
If
is not installed or the user is not logged in, tell them:
- Install: (or see https://cli.github.com)
- Login:
Store the handle and token for later use. Do not show the token to the user.
Step 2: Run /insights
Run the
skill to generate a fresh report. Wait for it to complete fully.
Step 3: Read the Report
Read the file at
~/.claude/usage-data/report.html
.
Also extract the subtitle line for the preview. It looks like:
<p class="subtitle">38,539 messages across 4769 sessions | 2025-12-19 to 2026-02-09</p>
Step 4: Show Preview and Ask About Narratives
Display a preview of what will appear on their profile. Extract these from the report HTML and show them:
=== Clawsights Upload Preview ===
GitHub: @{handle}
Date range: {date_from} to {date_to}
Messages: {totalMessages}
Sessions: {totalSessions}
Lines Changed: +{linesAdded} / -{linesRemoved}
Days Active: {daysActive}
Msgs/Day: {msgsPerDay}
Files Touched: {filesTouched}
Top Languages: {top 3 languages from the chart}
How You Use Claude Code:
{first 3 lines of the usage narrative, followed by "..."}
Impressive Things You Did:
{first 3 win titles, followed by "..."}
This will be publicly visible at clawsights.dev/{handle}
Omit any section that has no data. Then use the AskUserQuestion tool to ask TWO questions:
Question 1: "Include narrative sections on your public profile?"
- Options:
- "Yes" — Include "How You Use Claude Code" and "Impressive Things You Did" sections on your profile
- "No" — Only show quantitative stats (messages, lines, languages, etc.)
Question 2: "Ready to upload?"
- Options:
- "Upload" — Upload stats to clawsights.dev
- "Cancel" — Don't upload anything
If they choose Cancel, stop here.
Store whether they chose to include narratives as
(true/false).
Step 5: Upload
First, determine the upload URL. Run this command and use the output as the base URL:
bash
echo ${CLAWSIGHTS_URL:-https://clawsights.dev}
Then make a POST request using that base URL:
bash
curl -s -X POST BASE_URL/api/upload \
-H "Content-Type: application/json" \
-d "{\"github_token\": \"TOKEN_HERE\", \"report_html\": $(cat ~/.claude/usage-data/report.html | jq -Rs .), \"include_narratives\": BOOLEAN_HERE}"
Replace
with the output from the echo command above.
Replace
with the actual token from Step 1.
Replace
with
or
based on the user's choice in Step 4.
Step 6: Show Result
Parse the JSON response and display:
Uploaded! View your profile: https://clawsights.dev/{handle}
Your percentiles:
Messages: top {X}%
Sessions: top {X}%
Velocity: top {X}%
Scale: top {X}%
Multi-clauding: top {X}%
If the upload fails, show the error message from the response.