Analytics dashboard shows 0 conversations on Windows despite thousands of valid JSONL files
Author: ShadowGeorgeMCreated Jun 3, 2026Updated Jun 3, 2026
Bug
Analytics dashboard reports totalConversations: 0 despite ~/.claude/projects/ containing thousands of valid .jsonl transcript files on Windows.
Environment
- OS: Windows 11
- Node: v24.14.0
- claude-code-templates: 1.28.16 (npm global)
- Claude Code: 2.1.161
- User dir with space:
C:\Users\George Marroquin\(matters — path-with-space is the smell) - Shell: Git Bash + PowerShell
Reproduce
- Use Claude Code (Desktop or CLI) for a while →
~/.claude/projects/accumulates JSONL transcripts cct --analytics→ dashboard at http://localhost:3333- Dashboard shows all metrics at 0
Evidence
# 5,400 transcripts present
$ find "C:/Users/George Marroquin/.claude/projects/" -name "*.jsonl" | wc -l
5400
# API reports 0
$ curl -s http://localhost:3333/api/conversations | jq '.pagination'
{ "totalCount": 0, "currentCount": 0, ... }
$ curl -s http://localhost:3333/api/data | jq '.summary | {totalConversations, totalSessions}'
{ "totalConversations": 0, "totalSessions": null }Suspected cause
ConversationAnalyzer.findJsonlFiles() walker likely failing on Windows paths with spaces or on broken/cyclic symlinks. In my case there was a broken symlink at ~/.claude/skills → G:\Mi unidad\ClaudeSync\... — removing it did not fix the issue, so symlink alone is not the cause.
analytics.js line 88 resolves claudeDir = path.join(homeDir, '.claude') which on Windows gives C:\Users\George Marroquin\.claude — correct path, walker fails downstream.
Workaround
None known. claude-mem web UI (port 37777) works as an alternative observability tool.
Suggested fix
- Add debug log of
findJsonlFilesresult count + sample paths - Verify glob/walker handles paths with spaces and skips broken symlinks gracefully
- Optional flag
--claude-dir <path>to override default
Source: davila7/claude-code-templates