A macOS desktop application for analyzing and monitoring Claude conversation data with real-time token usage tracking.
brew install --cask jspiner/viber/viber
- Real-time Monitoring: Track your Claude token usage in real-time with automatic updates every 30 seconds
- Usage Analytics: View detailed statistics of your token consumption over time
- Multi-tier Support: Supports Pro ($20/month), Max 5x ($100/month), and Max 20x ($200/month) subscription tiers
- Session Logs: Browse through your conversation history with detailed metrics
- Dark Mode: Beautiful dark-themed UI designed specifically for macOS
- Token Limits: Monitor 5-hour and weekly token windows with visual progress indicators
- Cost Tracking: Track estimated costs based on your usage patterns with accurate Claude pricing
- Cache Savings: See how much you save with Claude's caching feature
- Status Bar Integration: Optional macOS status bar icon showing current usage
- Real-time Alerts: Get notified when approaching token limits
- Session Analysis: View per-session token usage, costs, and cache efficiency
- Hooks Support: Extensible hook system for custom integrations and workflows
Track your Claude token usage in real-time with visual progress indicators and automatic updates.
View detailed charts and analytics of your token consumption patterns over time.
Browse through your past conversations with detailed metrics and search functionality.
Manage claude job done notification.
Set up custom hooks to integrate Viber with your workflows and automation tools.
Configure your subscription tier, alerts, and application preferences.
Optional macOS status bar icon showing your current usage at a glance.
- macOS 10.13 or later
- Node.js 18.0 or later
- npm or yarn
- Access to
~/.claude/projects/directory
- Download the App
- just run
brew install --cask jspiner/viber/viber
- just run
- Clone the repository:
git clone https://github.com/JSpiner/viber.git
cd viber- Install dependencies:
npm install- Run in development mode:
npm startnpm startBuild for macOS (creates both .dmg and .zip):
npm run distBuild only DMG:
npm run dist:dmgBuild only ZIP:
npm run dist:zipThe built applications will be in the dist/ directory.
- Electron: Cross-platform desktop application framework
- Chart.js: Data visualization for usage charts
- electron-store: Persistent settings storage
- Jest: Testing framework for unit and integration tests
- Canvas API: Dynamic status bar icon generation
# Run all tests
npm test
# Run tests in watch mode
npm run test:watchThe app uses the following Claude pricing (per 1K tokens):
| Model | Input | Output | Cache Write | Cache Read |
|---|---|---|---|---|
| Claude Opus 4 | $0.015 | $0.075 | $0.01875 | $0.0015 |
| Claude Sonnet 4 | $0.003 | $0.015 | $0.00375 | $0.0003 |
| Claude Haiku 3 | $0.00025 | $0.00125 | $0.0003 | $0.00003 |
Viber stores its configuration in:
- macOS:
~/Library/Application Support/viber/
Settings include:
- Selected subscription tier
- Status bar preferences (visibility, icon style)
- Alert thresholds (percentage-based warnings)
- Update frequency
- Notification preferences
- Hook configurations
Viber supports a powerful hooks system for custom integrations:
- usage-update: Triggered when token usage updates
- limit-warning: Triggered when approaching token limits
- session-complete: Triggered when a Claude session ends
- daily-reset: Triggered at daily reset times
Hooks can execute shell commands with access to usage data via environment variables.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow the existing code style
- Add tests for new features
- Update documentation as needed
- Ensure all tests pass before submitting PR
- Test on both Intel and Apple Silicon Macs if possible
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with Electron
- Charts powered by Chart.js
- Inspired by the need for better Claude usage analytics
If you encounter any issues or have questions:
- Open an issue on GitHub Issues
- Check existing issues before creating a new one
- Include your macOS version and architecture (Intel/Apple Silicon) in bug reports
Made with ❤️ for the Claude community










