Thanks to visit codestin.com
Credit goes to stackharbinger.com

Harbinger

Track End-of-Life dates for your tech stack

Never get caught off-guard by unsupported dependencies. Harbinger scans your Ruby, Rails, Python, Node.js, Rust, Go, PostgreSQL, MySQL, Redis, and MongoDB versions and warns you before support ends.

$ brew tap RichD/harbinger
$ brew install stackharbinger
View on GitHub โ†’

Features

๐Ÿ”

Auto-Detection

Detects Ruby, Rails, Python, Node.js, Rust, Go, PostgreSQL, MySQL, Redis, and MongoDB versions from project files and Docker configs

๐Ÿ“…

EOL Data

Fetches official EOL dates from endoflife.date with smart 24-hour caching

๐ŸŽจ

Color-Coded

Visual warnings: red for EOL, yellow for <6 months, green for safe

โšก

Zero Config

Just run harbinger scan - no setup or configuration required

๐Ÿ’พ

Works Offline

Smart caching means it works offline after initial data fetch

๐Ÿ“Š

Ecosystem Grouping

Projects organized by language ecosystem (Ruby, Python, Node.js, Rust) with only relevant components displayed

๐Ÿ”„

Bulk Scanning

Recursively scan entire directories to find and track all your projects

๐Ÿงช

Well Tested

146 RSpec tests with 100% pass rate, built with TDD

Quick Start

# Install via Homebrew
$ brew tap RichD/harbinger
$ brew install stackharbinger
# Or via RubyGems
$ gem install stackharbinger
# Scan your project
$ harbinger scan
# Output:
Detected versions:
Ruby: 3.2.0
Rails: 7.0.8
Ruby 3.2.0:
EOL Date: 2026-03-31
Status: 437 days remaining
Rails 7.0.8:
EOL Date: 2025-06-01
Status: ALREADY EOL

Dashboard with Ecosystem Grouping

Projects are organized by their primary programming language ecosystem, showing only relevant components:

$ harbinger show
Tracked Projects (12)

Ruby Ecosystem (7)
================================================================================
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Project         โ”‚ Ruby  โ”‚ Rails    โ”‚ PostgreSQL โ”‚ Redis โ”‚ Status          โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ shop-api        โ”‚ 3.2.0 โ”‚ 6.1.7    โ”‚ 15.0       โ”‚ -     โ”‚ โœ— Rails EOL     โ”‚
โ”‚ blog-engine     โ”‚ 3.3.0 โ”‚ 7.0.8    โ”‚ 16.0       โ”‚ 7.0   โ”‚ โœ— Rails EOL     โ”‚
โ”‚ admin-portal    โ”‚ 3.3.0 โ”‚ 8.0.4    โ”‚ 16.11      โ”‚ 7.2   โ”‚ โœ“ Current       โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Python Ecosystem (3)
================================================================================
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Project      โ”‚ Python โ”‚ PostgreSQL โ”‚ Status    โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ ml-pipeline  โ”‚ 3.11   โ”‚ 16.0       โ”‚ โœ“ Current โ”‚
โ”‚ data-scraper โ”‚ 3.12   โ”‚ -          โ”‚ โœ“ Current โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Node.js Ecosystem (2)
================================================================================
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Project      โ”‚ Node.js โ”‚ PostgreSQL โ”‚ Status                โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ frontend-app โ”‚ 18.0    โ”‚ -          โ”‚ โš  Node.js ending soon โ”‚
โ”‚ realtime-api โ”‚ 22.0    โ”‚ 16.0       โ”‚ โœ“ Current             โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Commands

  • harbinger scan --path [PATH] - Scan a project and show EOL status
  • harbinger scan --save - Save project for tracking
  • harbinger scan --recursive - Scan all projects in a directory
  • harbinger show [PROJECT] [-v] - View dashboard (filter by name/path, -v shows paths)
  • harbinger show --format json|csv - Export data to JSON or CSV
  • harbinger show --format json -o report.json - Save export to file
  • harbinger rescan - Re-scan all tracked projects and update versions
  • harbinger remove PROJECT - Remove a project from tracking
  • harbinger update - Force refresh EOL data from API
  • harbinger version - Show harbinger version

Roadmap

โœ… V1.0 (Current)

  • โ€ข Ruby, Rails, Python, Node.js, Rust, Go
  • โ€ข PostgreSQL, MySQL, Redis, MongoDB
  • โ€ข Ecosystem-grouped dashboard
  • โ€ข Export to JSON/CSV
  • โ€ข Bulk scanning & rescan

๐Ÿ“‹ V1.1 (Next)

  • โ€ข TypeScript detection
  • โ€ข Framework detection (Django, Flask, Express, Gin)
  • โ€ข Package manager versions
  • โ€ข Vulnerability scanning integration

๐Ÿš€ V2.0 (Vision)

  • โ€ข AI-powered upgrade summaries
  • โ€ข Email/Slack notifications
  • โ€ข Cloud platform detection
  • โ€ข Team collaboration

Built with โค๏ธ using Ruby and Thor | EOL data from endoflife.date