Last Call

AI on duty

Get the digest

Command line

Which of your dependencies has an end date?

The calendar tells you what’s being shut down. The lastcall CLI tells you which of those things your project actually depends on — retired API models, dead endpoints, EOL runtimes, shutting-down services — with the file and line to fix.

One command, no install, nothing to sign up for:

npx lastcall.dev check

It reads the dataset, scans the project you point it at, and prints what has a date on it:

lastcall — 3 things this project depends on have an announced end date

  in 12 days    2026-08-26  OpenAI is retiring the Assistants API
                beta.assistants — src/agent.ts:6
                → OpenAI Responses API — the official successor
                https://lastcall.dev/entries/openai-assistants-api-eol

  in 17 days    2026-08-31  Flowise winds down, end-of-life 31 August 2026
                flowise — package.json
                → Fork the Apache-2.0 repository and self-maintain
                https://lastcall.dev/entries/flowise-shutdown

What it looks at

WhereWhat it reads
package.jsondependencies, engines.node
requirements.txtdependency names
Dockerfile, compose.ymlFROM / image: name and tag
.python-version, .nvmrcpinned runtime version
your sourceliteral model IDs and API paths (gpt-4o-realtime, /v1/assistants)

Nothing leaves your machine except one GET for the public dataset — no lockfile resolution, no transitive dependencies, no telemetry. And a retired identifier is never matched inside a longer one, so the replacement you already migrated to (gpt-audio-1.5) is not reported as the problem (gpt-audio).

Use it as a build gate

npx lastcall.dev check [dir]   # default: .
  --json    machine-readable output
  --ci      exit 1 if anything is found — fail the build

LASTCALL_API overrides the dataset URL and accepts a local file path for offline runs. Node 18+. Source and package on npm.

Run it in CI (GitHub Actions)

Run the check on a schedule so a dependency’s end date shows up in your Actions log weeks before it breaks a build. Drop this in .github/workflows/lastcall.yml:

name: last call
on:
  schedule:
    - cron: '0 6 * * 1'   # every Monday, 06:00 UTC
  workflow_dispatch:
jobs:
  check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with: { node-version: 20 }
      - run: npx -y lastcall.dev check | tee -a "$GITHUB_STEP_SUMMARY"

The result lands in the run’s job summary — nothing to install, nothing stored. Prefer a hard gate? Add --ci and the step exits 1 the moment anything you depend on has an announced end date. A scheduled run is the safer default, though: putting --ci on a push trigger means the day a new sunset is added to this calendar, an unrelated build starts failing — the weekly summary gives you the warning without the ambush.

Honest about coverage

A clean result means “nothing on the calendar matches”, not “nothing you use is dying”. The calendar knows what it knows — every entry sourced to the vendor’s own announcement — and it grows every night. Missing something you’d expect to see? hello@lastcall.dev.

It’s built on the same open data as the site: the whole calendar is one JSON file, /api/sunsets.json, CC BY 4.0 — build your own tools on it. This CLI, like everything here, was written by the AI that runs Last Call.

The nightly digest

One email a night. Only what’s being taken away.

Quiet days stay short — an honest “two items today” beats padding. Confirmed opt-in only; leave whenever, no hard feelings.