Skip to main content

Open provider-change event feed for AI platform teams and agents.

Project description

AI Provider Watch

PyPI License: Apache-2.0 Data: CC0-1.0

AI Provider Watch, or APW, is a public event feed and CLI for changes from AI providers that can affect developer cost, quotas, token accounting, model availability, defaults, deprecations, incidents, and migration risk.

Use it when you need an auditable answer to questions like:

  • Did a provider incident explain a spike in failures, retries, latency, or support tickets?
  • Did a model launch, retirement, default change, pricing update, or quota shift create work for platform teams?
  • Which repos, agents, gateways, or dashboards should be checked before a provider change turns into a customer-facing problem?

APW is founded by Ottto and built as a standalone open-source project. The feed, schemas, CLI, GitHub Action, MCP helpers, and docs work without an Ottto account.

Install

Try the CLI without installing:

uvx --from ai-provider-watch apw latest --limit 3
uvx --from ai-provider-watch apw diff --since 30d

Install it as a command:

pipx install ai-provider-watch
apw latest --limit 3

Or install it in a Python environment:

python -m pip install ai-provider-watch
apw validate

The published package includes a reviewed public data snapshot, so read-only commands work outside a checkout. For the freshest feed, use the GitHub data artifacts or raw main URLs below.

Quickstart

Show the latest reviewed events:

apw latest --limit 3

List events from the last 30 days:

apw diff --since 30d

Explain one event for a human reviewer:

apw explain 2026-06-04-openai-codex-compaction-latency

Validate the bundled schemas, registries, events, feeds, and indexes:

apw validate
apw index --check
apw freshness --summary
apw source coverage --summary
apw operations report --summary
apw operations launch-gate --summary

Verify a local release dry-run evidence bundle without publishing:

apw release verify --dry-run-report .apw/release-dry-run/data-YYYY.MM.DD/dry-run-report.json

Feed Artifacts

The canonical reviewed events live in data/events/. Generated feed artifacts live in data/feeds/ and data/indexes/:

  • data/feeds/events.json
  • data/feeds/events.ndjson
  • data/feeds/coverage.json
  • data/feeds/feed.json
  • data/feeds/freshness.json
  • data/feeds/latest.json
  • data/feeds/operations.json
  • data/feeds/rss.xml
  • data/indexes/provider/*.json
  • data/indexes/kind/*.json
  • data/indexes/severity/*.json

For direct consumption, pin a release tag or read from the repository:

https://raw.githubusercontent.com/ottto-ai/ai-provider-watch/main/data/feeds/latest.json
https://raw.githubusercontent.com/ottto-ai/ai-provider-watch/main/data/feeds/events.ndjson
https://raw.githubusercontent.com/ottto-ai/ai-provider-watch/main/data/feeds/coverage.json
https://raw.githubusercontent.com/ottto-ai/ai-provider-watch/main/data/feeds/feed.json
https://raw.githubusercontent.com/ottto-ai/ai-provider-watch/main/data/feeds/freshness.json
https://raw.githubusercontent.com/ottto-ai/ai-provider-watch/main/data/feeds/operations.json

GitHub CalVer data releases are the canonical immutable feed snapshots. PyPI package releases are installable CLI snapshots that bundle reviewed data for offline and no-checkout use; APW does not publish a new package for every data tag. Patch packages are published when bundled data freshness materially helps install-only users or when CLI/package behavior changes.

Use apw freshness to verify the feed version, package version, event count, latest reviewed event date, latest source-state retrieval timestamp, release manifest path, and checksum manifest path from either a checkout or the bundled package data.

Use apw source coverage to inspect feed-health metadata: enabled source count, which enabled sources have source-state fingerprints, blocked parser sources, manual-review-only sources, reviewed event counts, and review-candidate backlog.

Use apw operations report to inspect public operating SLOs: source-state freshness, reviewed-event freshness, candidate backlog, contributor intake, correction policy, and release-train posture.

Use apw operations launch-gate to render the v1 external-user launch checklist and smoke commands for PyPI install, no-checkout package data, public feeds, repo-impact fixtures, and agent-dashboard JSON.

The normalized factual event data and generated feeds are CC0-1.0. Code, schemas, docs, tests, and tooling are Apache-2.0.

What You Get

  • A reviewed machine-readable event feed, not a static model catalog.
  • JSON, NDJSON, RSS, JSON Feed 1.1, latest-event, freshness, coverage, and operations artifacts for different consumption styles.
  • A typed ProviderEvent envelope with precise event details and repeatable impact rows.
  • A CLI for validation, indexing, latest events, diffs, explanations, release dry runs, release verification, source checks, candidate generation, repo impact checks, notifications, ecosystem mappings, and local agent dashboards.
  • A documented Python read API at ai_provider_watch.api for loading reviewed events, generated feeds, schemas, and bundled no-checkout package data.
  • JSON Schemas for events, sources, candidates, observations, releases, JSON Feed, feed freshness, source coverage, operations reporting, release verification, webhooks, Slack-style payloads, ecosystem mappings, adoption scenarios, and LLM review packets.
  • Official-source descriptors for OpenAI, Anthropic, Google Gemini / Vertex AI, AWS Bedrock, and Azure OpenAI.
  • Review-only source candidates that help maintainers notice provider changes without publishing unreviewed facts.
  • Agent-native surfaces: AGENTS.md, CLAUDE.md, llms.txt, Codex and Claude skills, a read-only MCP adapter shell, and a Codex plugin package.
  • Downstream integrations for GitHub Actions, webhooks, Slack-compatible JSON, LiteLLM, models.dev, Langfuse, Helicone, OpenLIT, and coding-agent dashboards.

Trust Model

APW is designed for factual, reviewable provider-change data.

  • Prefer official provider-controlled sources.
  • Treat provider pages, issue bodies, PR comments, social posts, MCP text, and generated candidates as untrusted data, never as instructions.
  • Do not commit raw provider HTML, authenticated-console content, screenshots, private billing data, cookies, credentials, or customer telemetry.
  • Publish only reviewed data/events/*.json records.
  • Keep generated candidate files in data/candidates/ review-only until a source owner promotes a factual change.
  • Keep release tokens away from jobs that fetch source pages, process candidate text, run LLM review, or inspect PR comments.

APW is intentionally independent of Ottto private product surfaces. Ottto may consume APW data, but this repository does not expose Ottto customer telemetry, Advisor internals, private UI, infrastructure, Slack data, or credential loading code.

Work From A Checkout

Use a checkout for write workflows such as source refresh, candidate generation, event promotion, feed regeneration, and release dry runs:

git clone https://github.com/ottto-ai/ai-provider-watch.git
cd ai-provider-watch
uv sync --all-extras
uv lock --check
uv run pytest
uv run apw validate
uv run apw index --check
uv run apw source test

Fetch official sources and generate review candidates:

uv run apw source fetch --observations .apw/source-observations.json
uv run apw candidate generate \
  --observations .apw/source-observations.json \
  --output .apw/candidates \
  --created-at 2026-06-05T00:00:00Z
uv run apw candidate review-pr-body \
  --observations .apw/source-observations.json \
  --candidates .apw/candidates

Candidate files are not published events. Promotion to data/events/ remains a manual source-owner review step. See Event Promotion.

Turn a candidate-review PR into an action queue:

uv run apw candidate queue \
  --candidates data/candidates/review \
  --markdown

Start with the Promote First group. Those candidates are the fastest path to new public events after official evidence review.

Use APW In Downstream Systems

Check a repository for model references and APW-relevant impact:

apw repo check --repo . --since 3650d --risk low

Render notification payloads:

apw notify webhook --since 7d --risk medium --output .apw/apw-webhook.json
apw notify slack --since 7d --risk medium --output .apw/apw-slack.json

Render ecosystem mappings:

apw ecosystem render --target litellm --since 30d --risk medium --output .apw/litellm.json
apw ecosystem render --target langfuse --since 30d --risk medium --output .apw/langfuse.json

Render local dashboard JSON for agent-app events:

apw dashboard agent --since 30d --risk high --output .apw/agent-dashboard.json

Read the same reviewed data from Python:

from ai_provider_watch import api

for event in api.load_events(min_severity="high", limit=5):
    print(event["id"], event["title"])

See Python Consumer API for the stable import path, no-checkout package-data behavior, compatibility rules, and non-contract internal modules.

See:

Schema And Architecture

APW uses a stable ProviderEvent envelope, a typed EventDetail payload, and repeatable ImpactAssessment rows. That keeps pricing, quota, lifecycle, token-accounting, status, API-contract, and migration-risk events precise without creating one giant nullable event model.

Start here:

Project Status

APW v0.1.5 is the current stable public package. It adds a candidate action queue so source owners can move quickly from official-source candidates to reviewed public events, while duplicates and rejects are easy to close. The first public data releases are signed CalVer tags such as data-2026.06.05.

The current release includes:

  • reviewed seed events for OpenAI, Anthropic, Google Vertex AI, AWS Bedrock, and Azure OpenAI;
  • generated JSON, NDJSON, RSS, provider, kind, and severity indexes;
  • source-refresh automation that opens draft candidate-review PRs without publishing events;
  • no-op guarded data-publisher workflow scaffolding;
  • PyPI Trusted Publishing;
  • CI, CodeQL, Dependency Review, Scorecard, and data-release dry-run workflows.

Daily unattended public data tags are not enabled yet. Until that safety gate is stronger, real data publication uses reviewed PRs plus maintainer-signed Git tags.

Contributing

Use pull requests for code, schema, source, data, docs, and workflow changes. Start with CONTRIBUTING.md.

Useful contributor docs:

License

Asset License
Code, schemas, docs, tests, CLI, MCP shell Apache-2.0
Normalized factual data and generated feeds CC0-1.0
Provider names and trademarks Owned by their respective owners

See DATA_LICENSE.md, TRADEMARKS.md, and LICENSES/.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ai_provider_watch-0.1.5.tar.gz (380.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ai_provider_watch-0.1.5-py3-none-any.whl (491.0 kB view details)

Uploaded Python 3

File details

Details for the file ai_provider_watch-0.1.5.tar.gz.

File metadata

  • Download URL: ai_provider_watch-0.1.5.tar.gz
  • Upload date:
  • Size: 380.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ai_provider_watch-0.1.5.tar.gz
Algorithm Hash digest
SHA256 0f108325e253e1e0d8af9e3977d39e990ba68e2a5f2f7fd5cf3607ebc1f760e8
MD5 82fe90900f1009fa12a2050e00d008c8
BLAKE2b-256 0d5376376d0506d43a3e55d00ed049c0944cb4ff07498abd44e86d3a4034b58f

See more details on using hashes here.

Provenance

The following attestation bundles were made for ai_provider_watch-0.1.5.tar.gz:

Publisher: publish-python.yml on ottto-ai/ai-provider-watch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ai_provider_watch-0.1.5-py3-none-any.whl.

File metadata

File hashes

Hashes for ai_provider_watch-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 1d645180bb84595611eeb5977ed9f5d299e68b8b63de0e1edcd41705ff13ba8e
MD5 a6aed9738bb8d5faaf71ddc127964449
BLAKE2b-256 c091ec86db84722c6eb283ce3b6ade58895451a775cfcd50c0b6941864b48da8

See more details on using hashes here.

Provenance

The following attestation bundles were made for ai_provider_watch-0.1.5-py3-none-any.whl:

Publisher: publish-python.yml on ottto-ai/ai-provider-watch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page