Troubleshooting
Solutions to the most common vibestats issues.
Token expiry fix
If vibestats status reports an authentication error, your GitHub OAuth token has expired or been revoked.
Fix: Re-authenticate by running:
vibestats auth
This launches the gh auth login flow and saves the new token to ~/.config/vibestats/config.toml.
Hook not firing
If your stats are not updating after Claude Code sessions, the Stop or SessionStart hooks may be missing from ~/.claude/settings.json.
Fix: Check that your ~/.claude/settings.json contains both hooks:
- A Stop hook that runs
vibestats syncwithasync: true. - A SessionStart hook that runs
vibestats sync.
If either hook is missing, re-run the installer:
curl -sSf https://vibestats.dev/install.sh | bash
Or add the hooks manually by editing ~/.claude/settings.json to include the required hook configuration.
Missing machine data
If a machine's data is not appearing in your dashboard, it may not have synced yet.
Fix: First, check the machine's status:
vibestats status
If the machine appears in the list but data is stale, force an immediate sync:
vibestats sync
If the machine is not listed at all, ensure vibestats is installed on that machine and that the hooks are configured correctly (see Hook not firing above).
How to trigger a manual backfill
If historical data is missing — for example, after a fresh install or if data was accidentally deleted — you can push your full Claude Code history to vibestats-data with a backfill:
vibestats sync --backfill
This walks all JSONL files under ~/.claude/projects/ and pushes complete history. It is safe to run multiple times; existing data is not duplicated.