Query end-of-life dates and support lifecycles from the terminal
EOL CLI is a Python command-line tool for querying the endoflife.date API. It helps you inspect product lifecycles, release cycles, categories, tags, identifiers, and API metadata directly from your terminal.
| Feature | Description |
|---|---|
| Product Lookup | Inspect products, release cycles, and release metadata |
| Category Queries | List categories or fetch products by category |
| Tag Queries | List tags or fetch products by tag |
| Identifier Queries | Resolve products by PURL, CPE, and other identifier types |
| API Index | Inspect the API index and available surfaces |
| Rich Output | Human-friendly terminal output with tables and colors |
| Structured Output | JSON, XML, and SARIF output for automation |
| Tag-Based Releases | Publish releases from git tags with GitHub Actions |
| Command | Purpose |
|---|---|
products list |
List all products |
products get <name> |
Show product details |
products release <product> <release> |
Show a specific release cycle |
categories list |
List categories |
categories get <name> |
Show products in a category |
tags list |
List tags |
tags get <name> |
Show products for a tag |
identifiers list |
List identifier types |
identifiers get <type> |
Show products for an identifier type |
index |
Show API index data |
pip install eol-cligit clone https://github.com/seifreed/eol-cli.git
cd eol-cli
pip install -e .git clone https://github.com/seifreed/eol-cli.git
cd eol-cli
pip install -e ".[dev]"# List all available products
eol-cli products list
# Get details for a specific product
eol-cli products get ubuntu
# Get the latest release information
eol-cli products release python latest
# Query products by category
eol-cli categories get os
# Query products by tag
eol-cli tags get linux# List all products
eol-cli products list
# List all products with full details
eol-cli products list --full
# Get a specific product
eol-cli products get <product-name>
# Get multiple products (comma-separated)
eol-cli products get <product1>,<product2>,<product3>
# Get all product details
eol-cli products get <product-name> --all
# Get a specific release cycle
eol-cli products release <product-name> <release-cycle>
# Get the latest release cycle
eol-cli products release <product-name> latest# List all categories
eol-cli categories list
# Get products in a category
eol-cli categories get <category-name># List all tags
eol-cli tags list
# Get products with a specific tag
eol-cli tags get <tag-name># List all identifier types
eol-cli identifiers list
# Get products by identifier type
eol-cli identifiers get <identifier-type># Get API index
eol-cli indexRich is the default output format. It renders tables and summaries that are easy to read in a terminal.
Use --json for machine-readable JSON output.
eol-cli products get ubuntu --jsonUse --xml for XML output.
eol-cli products get ubuntu --xmlUse --sarif for SARIF output in security and automation workflows.
eol-cli products get ubuntu --sarifReleases are published from version tags.
git tag v1.0.0
git push origin v1.0.0That workflow:
- Builds the package artifacts
- Publishes to PyPI with GitHub Actions OIDC trusted publishing
- Uploads the built files to the GitHub Release assets
Before publishing tag-based releases, configure PyPI trusted publishing for this repository:
- Owner:
seifreed - Repository:
eol-cli - Workflow file:
publish.yml - Environment:
pypi
# Clone the repository
git clone https://github.com/seifreed/eol-cli.git
cd eol-cli
# Create a virtual environment
python3 -m venv venv
source venv/bin/activate
# Install development dependencies
pip install -e ".[dev]"# Run all tests
pytest
# Run tests without API calls
pytest -q -m "not api" --tb=short
# Run with coverage
pytest --cov=eol_cli --cov-report=term-missing# Lint
ruff check eol_cli tests
# Format check
black --check eol_cli tests
# Type check
mypy eol_cli tests- Python 3.13 or 3.14
- See pyproject.toml for the full dependency list
Contributions are welcome.
- Fork the repository
- Create a feature branch
- Commit your changes
- Push the branch
- Open a pull request
This project is licensed under the MIT License. See the LICENSE file for details.
Attribution
- Author: Marc Rivero
- Repository: github.com/seifreed/eol-cli
Built for clean EOL lookups and release automation.