AI Resource Radar
Find free AI tokens and GPU compute, compare market prices, and get a verified daily briefing.
中文 · Quick start · How it works · Security
AI Resource Radar is a local-first tracker for AI free tiers and market prices. It tells you what is free, how much you get, when it resets, what the restrictions are, and how to claim it. Every recommendation keeps its source and verification time.
The default collection pipeline is deterministic: no AI, API key, cookie, or account data is required. AI is used only by the optional daily poster.
Why this project
Free tiers and AI prices change frequently, while ordinary link lists quickly become stale. This project turns public source material into a small, explainable local database:
| Capability | What you get |
|---|---|
| Free token radar | Quota, reset period, card/phone requirements, mainland status, official evidence, and claim steps |
| Free GPU and grants | GPU time or credit, eligibility, expiry, limitations, and a direct official link |
| Token price leaderboard | Input/output/cached prices normalized per 1M tokens, with sorting and filters |
| GPU price leaderboard | On-demand GPU prices normalized per hour for practical comparison |
| Change detection | New offers, quota or restriction changes, removals, and upcoming expiry |
| Daily poster | Three free resources plus one token and one GPU price, drawn as one image and checked by local OCR |
Quick start
Requires Python 3.11 or newer. Install from PyPI in an isolated environment:
python3 -m venv .venv
source .venv/bin/activate
python -m pip install ai-resource-radar
ai-radar refresh
ai-radar dashboard --open
The dashboard is available only on 127.0.0.1:18766.
On macOS, install the dashboard, menu bar helper, and 08:00 daily job:
ai-radar service install
ai-radar service status
To uninstall the services without deleting the database:
ai-radar service uninstall
Platform support
| Feature | macOS | Linux |
|---|---|---|
| Collection, ranking, SQLite, and CLI | ✅ | ✅ |
| Local dashboard | ✅ | ✅ |
| Provider-aware image poster with Vision OCR | ✅ | — |
| Menu bar notifications and LaunchAgent | ✅ | — |
Windows is not tested yet. Linux CI verifies the deterministic core and dashboard; macOS CI also compiles and tests the Vision OCR and menu bar helpers.
What it tracks
The built-in adapters currently cover 15 sources:
| Category | Sources | Cadence |
|---|---|---|
| Free token/API and image generation | OpenRouter, Groq, Gemini, Cloudflare Workers AI, Zhipu CogView-3-Flash | Daily |
| Free GPU and credits | Hugging Face ZeroGPU, Modal, Lightning AI, Kaggle, Google Colab | Daily |
| GPU market prices | Modal, RunPod, Lambda GPU Cloud, Vast.ai | Daily |
| Token price baseline | pydantic/genai-prices |
Daily |
| Community discovery | mnfst/awesome-free-llm-apis |
Weekly |
Community sources can discover candidates but cannot upgrade an offer to “officially verified”. Each HTTPS source is allow-listed, limited to 16 MB, isolated on failure, and supports ETag/Last-Modified caching.
Explainable ranking
The radar deliberately avoids an opaque score:
| Tier | Meaning |
|---|---|
| A | Officially verified, no card, recurring free quota, and no explicit mainland restriction |
| B | Officially verified and no card, but quota varies or eligibility conditions apply |
| C | Application, card, region, or one-time trial restrictions apply |
| D | Community discovery only; official verification is pending |
Within a tier, results are ordered by mainland availability, estimated value, and recent changes. The dashboard shows the reasons instead of hiding them inside a number.
Daily poster
The image above is an explicitly labelled example. Always check the current official source before using an offer.
The poster model draws the complete image; the application never overlays or rewrites its text. The five facts are selected by deterministic code. macOS Vision then checks every required title, provider, value, action, statistic, update time, and unexpected number.
ai-radar poster models
ai-radar poster configure --provider openai --model gpt-image-2 --enable
ai-radar poster key set
ai-radar poster generate
ai-radar poster latest
# Explicit one-call smoke for the keyless, non-formal ZAI model:
ai-radar poster test-model --provider openclaw --model zai/cogview-3-flash --output ./zai-smoke.png
The OpenAI key is entered with a hidden prompt and stored only in macOS Keychain. GPT Image 2
requires paid API access. All automatic and manual formal-poster generations share a hard limit of
three image calls per day. The explicit model smoke is restricted to keyless, non-formal models and
never publishes a daily poster. If every candidate fails OCR, nothing is published and the last
valid poster stays visible. OpenClaw image models can be discovered and tested through the same registry. A model is
not eligible for the automatic Chinese daily poster until it passes the OCR benchmark; in v0.2,
zai/cogview-3-flash is intentionally marked test-only for this reason.
How it works
flowchart LR
A[Allow-listed public sources] --> B[Source-specific deterministic parsers]
B --> C[Normalized SQLite schema]
C --> D[Explainable ranking and change detection]
D --> E[Dashboard, CLI, and local notifications]
D --> F[Deterministic five-fact selection]
F --> G[Optional registered image model]
G --> H[Local Vision OCR]
H -->|Pass| E
H -->|Fail, max 3/day| I[Discard candidate and keep last valid poster]
One failed source never clears data from other sources. A missing offer is removed only after two successful parses both confirm its absence. Parser drift keeps the last trusted value and marks the source for verification.
Useful commands
# Refresh all due sources, or bypass cadence
ai-radar refresh
ai-radar refresh --force
# Browse verified, no-card resources
ai-radar list --verified-only --no-card
ai-radar list --kind gpu --no-card
# Review recent changes
ai-radar changes --days 30
# Run the complete daily workflow
ai-radar daily
# Diagnose the database, source freshness, helpers, and services
ai-radar doctor
ai-radar doctor --json
Run ai-radar <command> --help for every filter and option.
Data, privacy, and storage
- SQLite schema v5 uses file mode
0600; no secrets, cookies, or account data are stored. - Full fetched pages are parsed in memory and are not archived.
- Fetch logs are retained for 90 days; ordinary changes and delivered notifications for 365 days.
- Important free-tier changes and unread notifications are retained.
- Posters are retained for 90 days; failed candidates are deleted immediately.
- Periodic cleanup and threshold-based
VACUUMprevent unbounded growth. - The dashboard accepts only loopback Host/Origin requests and serves no remote assets.
See Architecture and Security for details. Existing users should also read the v0.2 migration guide; complete removal is documented in Uninstall.
Development
git clone https://github.com/xxy12341/ai-resource-radar.git
cd ai-resource-radar
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e .
python -m unittest discover -s tests -p 'test_*.py'
node --check src/ai_resource_radar/web/ai-resources.js
Contributions are welcome. Start with CONTRIBUTING.md, or open an issue with the official source URL and the policy or price that needs attention.
License
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ai_resource_radar-0.2.0.tar.gz.
File metadata
- Download URL: ai_resource_radar-0.2.0.tar.gz
- Upload date:
- Size: 584.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
97b3dc500f89f29972806a68c35589d41f623ba8ddc426a8c5a1ff974fc5e554
|
|
| MD5 |
e0f86830f4addce9dcd204a9da60ca48
|
|
| BLAKE2b-256 |
60ade6eb86c67aa5909e047a8cf44d6bb7f3b2b5cafb9560bdf5d33418f28b8c
|
Provenance
The following attestation bundles were made for ai_resource_radar-0.2.0.tar.gz:
Publisher:
release.yml on xxy12341/ai-resource-radar
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ai_resource_radar-0.2.0.tar.gz -
Subject digest:
97b3dc500f89f29972806a68c35589d41f623ba8ddc426a8c5a1ff974fc5e554 - Sigstore transparency entry: 2388322533
- Sigstore integration time:
-
Permalink:
xxy12341/ai-resource-radar@a6f91775da6e1ebfaef84d3b60ddde565a7b3307 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/xxy12341
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a6f91775da6e1ebfaef84d3b60ddde565a7b3307 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ai_resource_radar-0.2.0-py3-none-any.whl.
File metadata
- Download URL: ai_resource_radar-0.2.0-py3-none-any.whl
- Upload date:
- Size: 104.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
76cd17b19448c35fff124a8edf8cbefa4ec2cc54c245a74a60f571d6ac2d69a8
|
|
| MD5 |
d53d3f7871262fcd61a198ce546f8ed8
|
|
| BLAKE2b-256 |
98c3434bc9c2d814426719d79547eb0882f41e2aa2dd44f05f1899fb2232ba5e
|
Provenance
The following attestation bundles were made for ai_resource_radar-0.2.0-py3-none-any.whl:
Publisher:
release.yml on xxy12341/ai-resource-radar
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ai_resource_radar-0.2.0-py3-none-any.whl -
Subject digest:
76cd17b19448c35fff124a8edf8cbefa4ec2cc54c245a74a60f571d6ac2d69a8 - Sigstore transparency entry: 2388322606
- Sigstore integration time:
-
Permalink:
xxy12341/ai-resource-radar@a6f91775da6e1ebfaef84d3b60ddde565a7b3307 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/xxy12341
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a6f91775da6e1ebfaef84d3b60ddde565a7b3307 -
Trigger Event:
push
-
Statement type: