A Chrome/Edge browser extension that monitors the real-time status of AI developer tools (Claude AI and GitHub Copilot) with cool AI-themed vibe indicators and comprehensive incident reporting through an intuitive popup interface.

π Privacy Policy - Learn about our data collection and privacy practices
β¨ Features
- π Real-time Status Monitoring: Automatic status checks every 5 minutes for Claude AI and GitHub Copilot
- π€ Cool AI-Themed Vibe Icons: Modern gradient design with cyan/orange color scheme (no purple!)
- π’ Green: All dev tools are vibing! π₯
- π‘ Yellow: Minor issues with affected service count badge
- π΄ Red: Major/critical issues with alert badge (!)
- βͺ Gray: Status unknown or network error
- π Enhanced Incident Reporting: Date-enhanced incident titles with chronological sorting
- π± Two-Tab Interface: Active issues and last 5 incidents with comprehensive details
- β¨οΈ Keyboard Navigation: Accessible shortcuts (Ctrl+R refresh, 1/2 for tabs)
- π Auto-refresh: Updates every 30 seconds when popup is open
- π§ͺ Comprehensive Testing: Full test suite with visual validation tools
- π¦ Production Build System: Automated zip creation for Chrome Web Store submission
π Quick Start
For End Users
- Install from Chrome Web Store (coming soon)
- Or load unpacked for development:
git clone https://github.com/todddube/vstat.git
cd vstat
# Open chrome://extensions/ β Enable Developer Mode β Load Unpacked β Select this folder
For Developers
# Clone the repository
git clone https://github.com/todddube/vstat.git
cd vstat
# Install test dependencies
cd tests && npm install && cd ..
# Run tests
npm test
# Build for production
npm run build
# Run visual tests
npm run test:visual
π Installation Instructions
Method 1: Chrome Web Store (Recommended)
Coming soon - Extension will be available on Chrome Web Store
Method 2: Load Unpacked (Development/Testing)
- Download the Extension:
git clone https://github.com/todddube/clstat.git
# OR download ZIP from GitHub and extract
- Install in Chrome/Edge:
- Open Chrome and navigate to
chrome://extensions/
- Enable βDeveloper modeβ (toggle in top-right corner)
- Click βLoad unpackedβ
- Select the
vstat
directory (or build/
for production build)
- The Claude status icon should appear in your browser toolbar
- Pin the Extension:
- Click the puzzle piece icon in the toolbar
- Pin the Claude Status Monitor for easy access
Method 3: Production Build
# Build production-ready extension
npm run build
# Load the ./build directory in Chrome
# This gives you the exact same files that would be on the Chrome Web Store
System Requirements
- Browser: Chrome 88+ or Edge 88+ (Chromium-based)
- Network: Internet connection to access status APIs (status.anthropic.com, www.githubstatus.com)
- Permissions: Storage and Alarms (automatically granted)
π― Usage Guide
π₯ Status Icon Meanings
Icon |
Status |
Badge |
Description |
β‘ Green |
Operational |
None |
All dev tools are vibing! π₯ |
β‘ Yellow |
Minor Issues |
Number (1-4+) |
Some services affected, shows count |
β‘ Red |
Major/Critical |
! or Number |
Significant service disruption |
β‘ Gray |
Unknown |
None |
Cannot determine status (network/API error) |
Click the extension icon to open a detailed status popup with two main sections:
π¨ Active Issues Tab
- Current Incidents: Shows up to 5 unresolved incidents
- Date-Enhanced Titles: Incident names with formatted timestamps
- Impact Color Coding:
- π‘ Yellow border: Minor impact
- π΄ Red border: Major/Critical impact
- Latest Updates: Most recent incident update information
- Real-time Status: Updates automatically every 30 seconds
π Last 5 Incidents Tab
- Recent History: Shows 5 most recent incidents regardless of status
- Full Details: Complete incident information including:
- Duration for resolved incidents
- Comprehensive summaries
- Resolution status and timing
- Chronological Order: Newest incidents first
- Status Indicators: Clear resolved/ongoing status
β¨οΈ Keyboard Shortcuts
- Ctrl+R (or Cmd+R): Force refresh status data
- 1: Switch to Active Issues tab
- 2: Switch to Last 5 Incidents tab
- Tab/Shift+Tab: Navigate between interface elements
ποΈ Architecture & Development
π Project Structure
vstat/
βββ π manifest.json # Extension configuration (Manifest V3)
βββ βοΈ background.js # Service worker (dual-service monitoring)
βββ π¨ popup.html # Popup interface HTML
βββ π± popup.js # Popup interface logic
βββ π€ icons/ # Cool AI-themed vibe icons (16px to 128px)
β βββ ai-vibe-16.png # Toolbar icon (small)
β βββ ai-vibe-32.png # Standard icon
β βββ ai-vibe-48.png # Large icon
β βββ ai-vibe-128.png # Extension page icon
βββ π οΈ dev/ # Development tools and assets
β βββ scripts/ # Utility scripts (version sync, etc.)
β βββ README.md # Development tools documentation
βββ π¨ design/ # Design assets and tools
β βββ cool-vibe-icons.html # Icon generator tool
βββ π§ͺ tests/ # Comprehensive test suite
β βββ unit/ # Unit tests for components
β βββ integration/ # Integration tests
β βββ visual-test-viewer.html # Interactive visual testing
β βββ VISUAL_TESTING.md # Visual testing guide
β βββ README.md # Testing documentation
βββ π§ build-extension.js # Production build script
βββ π BUILD.md # Build system documentation
βββ π README.md # This documentation
π§ Core Components
Service Worker (background.js
)
- VStateMonitor Class: Handles dual-service monitoring (Claude + GitHub Copilot)
- API Integration: Fetches from both Anthropic and GitHub status endpoints
- Smart Retry Logic: Exponential backoff for failed requests
- AI Vibe Icon Management: Updates browser AI-themed vibe icons and badges
- Efficient Storage: Uses Chrome storage API for data persistence
- VStatePopupController Class: Manages dual-service interactive interface
- Real-time Updates: Auto-refresh with visual feedback for both services
- Accessibility: Full keyboard navigation and screen reader support
- Error Handling: Graceful degradation and user feedback
AI-Themed Vibe Icon System
- Four Status States: Green, Yellow, Red, Gray AI-themed vibe icons
- High-Resolution Optimized: Clear, modern design for contemporary displays
- Multiple Sizes: 16px, 32px, 48px, 128px for different contexts
- AI Theme: Modern gradient design reflecting AI/dev tools aesthetic
- Badge Integration: Dynamic count badges and alert indicators
π§ͺ Testing
Comprehensive Test Suite
The extension includes a full testing framework with both automated and visual testing capabilities:
# Run all tests
npm test
# Run visual tests with browser interface
npm run test:visual
# Open interactive visual testing tool
npm run visual:viewer
# Validate visual assets
npm run visual:validate
Test Coverage
- β
Unit Tests: Core functionality and component behavior
- β
Integration Tests: API communication and data flow
- β
Visual Tests: Icon states, badge indicators, and UI components
- β
Accessibility Tests: Keyboard navigation and screen reader support
- β
Error Scenario Tests: Network failures, API errors, edge cases
- Interactive Test Viewer: Browser-based interface for testing all visual states
- Automated Visual Validation: Programmatic testing of icon colors and badge states
- Asset Validation: Ensures all required icons exist and are properly named
- Real-time Visual Feedback: See changes as they happen during testing
π Complete Testing Documentation
π¦ Building for Production
Quick Build Commands
# Validate all files before building
npm run validate
# Build production-ready zip file
npm run build
# Build and clean up temporary files
npm run build:clean
# Complete release preparation (validate + build)
npm run prepare-release
Build Output
- π
./build/
: Temporary directory with processed extension files
- π¦
./dist/vibe-stats-v1.1.0-YYYY-MM-DD.zip
: Production zip for Chrome Web Store
- π Build Report: Detailed statistics and next steps
Chrome Web Store Submission
- Run
npm run build
to create production zip
- Go to Chrome Developer Dashboard
- Upload the zip file from
./dist/
directory
- Complete store listing information and submit for review
π Complete Build Documentation
π Release Management
Automated Release Workflow
The project includes a GitHub Action for automated releases that handles version bumping, building, tagging, and creating GitHub releases.
Quick Release Commands
# Check version sync status
npm run version:check
# Sync versions (manifest.json is source of truth)
npm run version:sync
# Prepare for release (build and validate)
npm run prepare-release
# Ready for GitHub Action release
npm run release:patch # For patch releases (1.0.0 β 1.0.1)
npm run release:minor # For minor releases (1.0.0 β 1.1.0)
npm run release:major # For major releases (1.0.0 β 2.0.0)
GitHub Action Release Process
The automated release workflow is triggered manually from the GitHub Actions tab:
- Go to GitHub Actions: Navigate to the Actions tab in your repository
- Select Release Workflow: Choose βRelease Build and Deployβ
- Run Workflow: Click βRun workflowβ and specify:
- Version Type: patch, minor, or major
- Release Notes: Optional custom notes for the release
What the GitHub Action Does
The automated workflow performs these steps:
- π Version Management:
- Reads current version from
manifest.json
- Bumps version according to semver (patch/minor/major)
- Updates both
manifest.json
and package.json
- π Validation & Build:
- Validates all extension files
- Runs the build process with
npm run build:clean
- Creates production-ready zip file
- π Git Operations:
- Commits version changes to repository
- Creates and pushes git tag (e.g.,
v1.2.3
)
- Pushes changes to main branch
- π GitHub Release:
- Creates GitHub release with changelog
- Attaches extension zip file and manifest
- Generates Chrome Web Store submission notes
- π¦ Chrome Web Store Prep:
- Provides submission checklist
- Includes store description template
- Ready-to-upload zip file
Manual Version Management
For more granular control, use the version sync utilities:
# Set specific version
npm run version:set 1.2.3
# Bump version types
npm run version:bump patch # 1.0.0 β 1.0.1
npm run version:bump minor # 1.0.0 β 1.1.0
npm run version:bump major # 1.0.0 β 2.0.0
# Check if manifest.json and package.json are in sync
npm run version:check
# Sync package.json to manifest.json version
npm run version:sync
# Check About popup version consistency
npm run about:check
Release Workflow Best Practices
- Pre-Release Checklist:
- β
All tests pass:
npm test
- β
Visual tests validate:
npm run test:visual
- β
Build succeeds:
npm run prepare-release
- β
Extension loads and works in Chrome
- Release Types:
- Patch: Bug fixes, small improvements
- Minor: New features, significant enhancements
- Major: Breaking changes, major redesigns
- Post-Release:
- β
Download zip from GitHub release
- β
Submit to Chrome Web Store Developer Dashboard
- β
Test released version in clean browser profile
Release Files Structure
After a GitHub Action release, youβll find:
π¦ GitHub Release Assets:
βββ π vibe-stats-v1.2.3.zip # Ready for Chrome Web Store
βββ π manifest.json # Updated manifest file
βββ π Release Notes # Automated changelog
π Chrome Web Store Submission:
βββ π Submission checklist
βββ π Store description template
βββ π Developer dashboard link
π Complete Build Documentation
π Detailed Release Guide
π API Integration
Dual-Service API Integration
Anthropic Status APIs (Claude AI):
- Status:
https://status.anthropic.com/api/v2/status.json
- Incidents:
https://status.anthropic.com/api/v2/incidents.json
- Summary:
https://status.anthropic.com/api/v2/summary.json
GitHub Status APIs (GitHub Copilot):
- Status:
https://www.githubstatus.com/api/v2/status.json
- Incidents:
https://www.githubstatus.com/api/v2/incidents.json
- Summary:
https://www.githubstatus.com/api/v2/summary.json
Status Mapping Logic
| API Response | Extension Status | Icon Color | Badge |
|βββββ|ββββββ|ββββ|βββ|
| none
, operational
| Operational | π’ Green | None |
| minor
| Minor Issues | π‘ Yellow | Service count |
| major
, critical
| Major Issues | π΄ Red | ! or count |
| Network/Parse Error | Unknown | βͺ Gray | None |
π οΈ Development Setup
Prerequisites
- Node.js: 14.0.0+ (for testing and build tools)
- Chrome/Edge: Latest version for testing
- Git: For version control
Development Workflow
- Clone and Setup:
git clone https://github.com/todddube/vstat.git
cd vstat
cd tests && npm install && cd ..
- Load in Browser:
- Open
chrome://extensions/
- Enable Developer Mode
- Load Unpacked β Select project directory
- Development Cycle:
# Make changes to code
# Test changes
npm test
# Test visual components
npm run test:visual
# Build for testing
npm run build
# Reload extension in Chrome
- Debugging:
- Background Script:
chrome://extensions/
β βInspect views: service workerβ
- Popup Interface: Right-click extension icon β βInspect popupβ
- Console Logs: Check both background and popup consoles
Icon Development
The extension uses custom AI-themed vibe icons optimized for high-resolution displays. Icon development tools are located in the dev/icon-generator/
folder:
AI Vibe Icon Generator
# Open the HTML icon generator in your browser
start dev/icon-generator/create-ai-vibe-icons.html
# Or double-click the file to open in default browser
See dev/README.md
for detailed usage instructions.
Icon Features
- AI-Themed Design: Modern aesthetic reflecting AI and dev tools monitoring
- Contemporary Gradient: AI-themed colors for clear visibility
- High-Resolution Optimized: Clean design optimized for modern displays
- Enhanced Contrast: Clear definition and modern styling
- Four Sizes: 16px (toolbar), 32px (standard), 48px (large), 128px (extension page)
Icon Development Workflow
- Open
dev/icon-generator/create-ai-vibe-icons.html
in browser
- Icons are auto-generated with download links
- Download all four sizes (ai-vibe-16.png through ai-vibe-128.png)
- Replace existing files in
icons/
folder
- Reload extension in Chrome to see changes
π§ Configuration
Extension Settings
The extension uses sensible defaults that work for most users:
- Check Interval: 5 minutes (background monitoring)
- Popup Auto-refresh: 30 seconds (when open)
- Retry Logic: 3 attempts with exponential backoff
- Cache Duration: 5 minutes for API responses
Customization
Advanced users can modify settings by editing:
- Check Frequency:
background.js
β intervalMinutes
- API Endpoints:
background.js
β URL constants
- UI Behavior:
popup.js
β refresh intervals and timeouts
π Troubleshooting
Common Issues
π΄ Extension Not Loading
Symptoms: Extension doesnβt appear in toolbar
Solutions:
- β
Verify
manifest.json
syntax with npm run validate
- β
Check all required files exist
- β
Enable Developer Mode in
chrome://extensions/
- β
Look for error messages in Extensions page
π‘ Status Not Updating
Symptoms: Icon stays gray or doesnβt change
Solutions:
- β
Check internet connection to
status.anthropic.com
- β
Inspect service worker console for API errors
- β
Try manual refresh with Ctrl+R in popup
- β
Check Chromeβs network requests in DevTools
Symptoms: Clicking icon does nothing or shows errors
Solutions:
- β
Right-click icon β βInspect popupβ to see errors
- β
Check popup console for JavaScript errors
- β
Reload extension from Extensions page
- β
Verify popup files exist and are valid
Symptoms: Browser slowdown or high memory usage
Solutions:
- β
Check service worker console for excessive API calls
- β
Clear extension storage data
- β
Restart browser to reset extension state
- β
Update to latest version
- Service Worker Console:
chrome://extensions/
β βservice workerβ
- Popup Inspector: Right-click icon β βInspect popupβ
- Extension Storage: DevTools β Application β Storage β Extension
- Network Monitor: DevTools β Network tab for API calls
Getting Help
π Documentation Index
π€ Contributing
Development Contributions
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Test your changes:
npm test && npm run test:visual
- Build and validate:
npm run prepare-release
- Commit with clear messages:
git commit -m 'Add amazing feature'
- Push to your fork:
git push origin feature/amazing-feature
- Create a Pull Request with detailed description
Code Standards
- β
ES6+ JavaScript with modern async/await patterns
- β
Comprehensive Testing - Both unit and visual tests required
- β
Manifest V3 compliance for Chrome extensions
- β
Accessibility support with ARIA labels and keyboard navigation
- β
Error Handling with graceful degradation
- β
Documentation updates for new features
Testing Requirements
- β
All existing tests must pass:
npm test
- β
Visual tests must validate:
npm run test:visual
- β
Build process must succeed:
npm run build
- β
Manual testing in Chrome required for UI changes
π License
This project is licensed under the MIT License - see the LICENSE file for details.
β Acknowledgments
- Anthropic for providing the status page API
- Chrome Extensions API for the robust platform
- Community Contributors for testing and feedback
- Open Source Libraries used in testing framework
π Quick Links
Made with β€οΈ for the Claude community