βββ ββββββ βββββββββββ ββββββββββββββββββββ ββββββ ββββββββββββ βββββββββββ
βββ ββββββββββββββββββββ βββββββββββββββββββββββββββββββββββββββββ βββββββββββ
βββ ββββββββ βββββ βββββββ ββββββββ βββ ββββββββ βββ βββ βββββββββββ
βββ ββββββββ βββββ βββββ ββββββββ βββ ββββββββ βββ βββ βββββββββββ
βββββββββββ βββββββββββ βββ ββββββββ βββ βββ βββ βββ βββββββββββββββββ
βββββββββββ βββββββββββ βββ ββββββββ βββ βββ βββ βββ βββββββ ββββββββ
Monitor multiple status pages (GitHub, Atlassian, Cloudflare, etc.) in a beautiful terminal interface. Built with Charm's Bubble Tea framework for smooth, flicker-free rendering.
- π Smart Status Detection - Auto-detects Statuspage.io JSON API or falls back to HTML parsing
- π¨ Color-Coded Status - Green (operational), Blue (maintenance), Yellow (degraded), Red (disruption)
- β‘ Auto-Refresh - Configurable per-service refresh intervals (default: 30s)
- π Detailed View - Incidents, maintenance windows, timestamps, and resolution status
- β¨οΈ Vim-Style Navigation - Efficient keyboard shortcuts for power users
- πΎ Persistent Config - Services saved to
~/.lazystatus/config.json - π Real-Time Updates - Live countdown timers and status changes
- π Proxy Support - Respects
http_proxyenvironment variables (Zscaler compatible)
# Add the tap and install
brew tap jakeasaurus/tap
brew install lazystatus
# Or in one line
brew install jakeasaurus/tap/lazystatusgit clone https://github.com/jakeasaurus/lazystatus.git
cd lazystatus
go build -o lazystatus
./lazystatusgo install github.com/jakeasaurus/lazystatus@latest# Start the TUI
lazystatus
# Show version
lazystatus --version
# Show help
lazystatus --helpjorβ- Move downkorβ- Move upgorHome- Go to topGorEnd- Go to bottom
a- Add new servicee- Edit selected serviced- Delete selected servicer- Refresh all services
?- Show/hide helpqorCtrl+C- Quit
Tab- Next fieldShift+Tab- Previous fieldEnter- SubmitEsc- Cancel
Services are stored in ~/.lazystatus/config.json:
{
"services": [
{
"name": "GitHub",
"url": "https://www.githubstatus.com",
"refresh_interval": 30,
"last_checked": "2025-10-20T15:20:00Z",
"current_status": "operational"
},
{
"name": "Cloudflare",
"url": "https://www.cloudflarestatus.com",
"refresh_interval": 60,
"last_checked": "2025-10-20T15:20:00Z",
"current_status": "operational"
}
],
"settings": {
"default_refresh_interval": 30
}
}- Statuspage.io - Automatically detects JSON API at
/api/v2/summary.json - GitHub Status - https://www.githubstatus.com
- Atlassian Status - https://status.atlassian.com
- Cloudflare Status - https://www.cloudflarestatus.com
For non-Statuspage.io sites, lazystatus uses keyword detection:
- "operational" β Operational
- "degraded" / "partial outage" β Degraded Performance
- "major outage" / "major disruption" β Major Disruption
- "maintenance" / "scheduled" β Planned Maintenance
- π’ Green (#04B575) - Operational
- π΅ Blue (#5FAFFF) - Planned Maintenance
- π‘ Yellow (#FFAF5F) - Degraded Performance
- π΄ Red (#FF5F87) - Major Disruption / Connection Error
- Press
ato open the add service dialog - Enter:
- Name: Display name (e.g., "GitHub")
- URL: Status page URL (e.g., "https://www.githubstatus.com")
- Interval: Refresh interval in seconds (5-86400)
- Press
Enterto save - Service will be fetched immediately
- Navigate to the service with
j/k - Press
eto edit - Modify fields with
Tab/Shift+Tab - Press
Enterto save
- Navigate to the service with
j/k - Press
dto delete - Confirm with
Enteror cancel withEsc
lazystatus respects standard HTTP proxy environment variables:
export http_proxy=http://proxy.example.com:8080
export https_proxy=http://proxy.example.com:8080
lazystatusThis works with corporate proxies like Zscaler.
- Go 1.21 or later
- Terminal with 24-bit color support (recommended)
- Bubble Tea - TUI framework
- Bubbles - TUI components
- Lip Gloss - Styling
- golang.org/x/net/html - HTML parsing
go mod tidy
go build -o lazystatusTest with real status pages:
./lazystatus
# Press 'a' to add:
# - GitHub: https://www.githubstatus.com
# - Atlassian: https://status.atlassian.com
# - Cloudflare: https://www.cloudflarestatus.commain.go- CLI entrypointstatus.go- Domain model and service manager with JSON persistenceapp.go- Bubble Tea model with TUI logicinternal/fetch/fetch.go- HTTP client with Statuspage.io JSON parser and HTML fallback
- Fast - Minimal overhead, instant startup
- Simple - No complex configuration
- Beautiful - Modern TUI with smooth animations
- Reliable - Robust parsing with fallbacks
- Portable - Single binary, no dependencies
- Desktop notifications on status changes (macOS)
- Sorting/filtering by status severity
- Export incidents to JSON/CSV
- Import services from file
- Per-service pause/resume
Contributions welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
MIT License - See LICENSE file for details.
Inspired by lazygit and built with β€οΈ using Charm tools.
Made with β€οΈ and Go