The Setup.
I use Claude Code across both WSL and Windows. Same machine, same repos — some sessions start from VS Code with Remote-WSL, others from Windows terminals. Claude Code stores transcripts in ~/.claude/projects/ on each side independently.
When I ran Paxel, it scanned ~/.claude/projects/ inside WSL and found 28 sessions across 9 projects. Seemed right — until I checked.
My Windows C:\\Users\\fauzu\\.claude\\projects\\ had 47 JSONL transcripts across 4 project directories that Paxel never saw.
Three Runs, Three Lessons.
Run 1 — Baseline (WSL only)
🔗 Report Link: paxel.ycombinator.com/results/sfqgkfu4
| Metric | Value |
|---|---|
| Sessions analyzed | 26 |
| Projects | 9 |
| Total time tracked | 41 hours |
| Lines shipped | 486,186 |
| Commits | 326 |
| Longest session | 8h 12m |
| Max concurrent agents | 2 |
| Longest streak | 20 days |
| Prompts per session | 9 avg |
| AI badges | Dances with Robots |
This was only my WSL-side Claude Code sessions. Paxel had no idea about the Windows side.
Run 2 — Symlink Attempt (Failed)
🔗 Report Link: paxel.ycombinator.com/results/mnpimqx5
I symlinked the Windows project dirs into WSL's ~/.claude/projects/:
ln -sf "/mnt/c/Users/fauzu/.claude/projects/C--Users-fauzu" \
"$HOME/.claude/projects/C--Users-fauzu"Result: Identical to Run 1. Same 28 sessions, same 26 analyzed. The symlinks were invisible to Paxel because:
- Paxel's
count_sessions()usesfindwithout-L— it doesn't traverse symlinked directories. - Docker bind-mounts
~/.claude/projects/into the container, but symlinks pointing to/mnt/c/...are broken inside Docker (that path doesn't exist in the container environment).
Run 3 — Copy Fix (Worked)
🔗 Report Link: paxel.ycombinator.com/results/hbtzriqt
Removed the symlinks, copied the Windows project directories into WSL instead:
cp -R /mnt/c/Users/fauzu/.claude/projects/*/ ~/.claude/projects/A massive 138% increase from the WSL-only run (baseline: 26).
A 266% spike showing the true work completed (baseline: 41h).
Deep AI context paths captured for YC scoring (baseline: 33).
| Metric | Run 1 (Baseline) | Run 3 (Copy Fix) | Delta |
|---|---|---|---|
| Sessions analyzed | 26 | 62 | +138% |
| Projects | 9 | 13 | +4 |
| Total time tracked | 41 hrs | 150 hrs | +266% |
| Longest session | 8h 12m | 10h 30m | +2h 18m |
| Max concurrent agents | 2 | 4 | +2 |
| Prompts per session | 9 avg | 12 avg | +33% |
| Decision points tracked | 33 | 93 | +182% |
| AI badges | 1 | 2 | +1 (Cognitive Breadth) |
| "Continue from where you left off" | 7× across 5 sessions | 37× across 23 sessions | — |
The narrative changed too — Run 1 focused heavily on production deployment. Run 3 surfaced the full picture: portfolio sites, export business websites, resume workflows, webhook prototypes, n8n pipelines, and more. Paxel could finally see the builder, not just the deployer.
The Fix (For Anyone on WSL).
Here is the safe script that automatically scans Windows user folders, detects Claude Code projects, and copies the sessions into WSL using cp -n (no-clobber) so your WSL-only sessions are never overwritten. You can copy it directly using the button in the top right:
# Auto-detect Windows Claude Code and copy sessions into WSL
# (WSL username may differ from Windows username, so we scan /mnt/c/Users/)
WIN_CLAUDE=""
for d in /mnt/c/Users/*/; do
case "$(basename "$d")" in Public|Default|"Default User"|"All Users") continue ;; esac
[ -d "${d}.claude/projects" ] && WIN_CLAUDE="${d}.claude/projects" && break
done
if [ -n "$WIN_CLAUDE" ]; then
for dir in "$WIN_CLAUDE"/*/; do
[ -d "$dir" ] || continue
name=$(basename "$dir")
target="$HOME/.claude/projects/$name"
if [ -d "$target" ]; then
cp -n "$dir"*.jsonl "$target/" 2>/dev/null || true
else
cp -R "$dir" "$target"
fi
done
echo "Windows sessions copied into WSL."
fi
# Then run Paxel
curl -fsSL https://paxel.ycombinator.com/upload.sh | bash -s -- --allThis Debug Was Done on Antigravity.
Here's a fun twist — I was completely out of Claude Code tokens (waiting for my weekly reset on a $20/mo plan). This entire debugging session — reading the Paxel upload script, understanding the Docker bind-mount architecture, trying the symlink approach, diagnosing why it failed, building the copy fix, running all three Paxel iterations, and writing this report — was done on Antigravity (Google's agentic coding assistant).
While Paxel's CLI-based telemetry is outstanding, I would love to see its analysis engine expand in the future to support agent systems like Google's Antigravity. In my workflow, when Claude Code limits are hit, Antigravity picks up the heavy lifting. I have 155 Antigravity sessions (94 on WSL + 61 on Windows) currently sitting in ~/.gemini/antigravity/brain/ that I'd be absolutely thrilled to feed into Paxel's metrics analyzer once they support its JSONL schema. It would be a phenomenal addition to their already brilliant platform.
For YC / Paxel Team.
The root cause is simple: upload.sh only checks $HOME/.claude/projects/ and WSL's Docker can't follow symlinks to /mnt/c/. A ~15 line WSL detection block in upload.sh would fix this for every WSL user automatically:
if grep -qi microsoft /proc/version 2>/dev/null; then
for d in /mnt/c/Users/*/; do
win_claude="${d}.claude/projects"
[ -d "$win_claude" ] || continue
for proj in "$win_claude"/*/; do
[ -d "$proj" ] || continue
name=$(basename "$proj")
target="$CLAUDE_DIR/$name"
if [ ! -d "$target" ]; then
cp -R "$proj" "$target"
else
cp -n "$proj"*.jsonl "$target/" 2>/dev/null || true
fi
done
break
done
fiTo make Paxel even more accessible to WSL developers, adding a quick cross-filesystem scanning block inside upload.sh would be a wonderful enhancement. WSL is a lifeline for builders globally. Not everyone is fortunate enough to be on macOS or proficient in Linux. Builders from places like Bangladesh — where I'm from, where you can't even register an official Apple account — are shipping on Windows and WSL with $20 subscriptions because that's what's accessible.
A small copy-based discovery step inside the official script ensures that every single session gets counted seamlessly. The Paxel team is shipping at incredible speeds, and this addition would make the onboarding experience even more flawless. These global builders deserve to have their full stories told.




