Make useful evidence travel with the work.
Add the current public Codex signal to a README, dashboard, or community page. The badge and feeds show public evidence only; they never expose private source details or personal account state.
Use the shortest path first: add a badge, verify one packet, and run a read-only check in a repository you control.
Open the developer quickstart ->README badge
Use one honest, cacheable status artifact instead of copying a daily screenshot.
[](https://lydiahub.online/did-codex-reset-today?utm_source=embed&utm_medium=badge&utm_campaign=public_signal)Shareable proof card
Share a readable card with UTC timestamps, evidence state, and a verifiable receipt - not a generic daily poster.
[](https://lydiahub.online/verify?receipt=%2Fapi%2Fevidence%2Flatest)HTML embed
Place the same public signal on a documentation or status page.
<a href="https://lydiahub.online/did-codex-reset-today?utm_source=embed&utm_medium=badge&utm_campaign=public_signal"><img src="https://lydiahub.online/badge.svg" alt="ResetPulse public Codex signal"></a>Live JS widget
Add one small read-only widget to a status page or dashboard; no credentials or cookies are needed.
<div data-resetpulse-public-signal></div>
<script async src="https://lydiahub.online/public-signal.js"></script>Verified Reset Packet
Fetch the signal and its SHA-256 receipt in one response; no stitching or credentials required.
curl -s https://lydiahub.online/api/verified-packetIncremental JSON timeline
Sync only new public events with since, limit, CORS, and semantic ETag revalidation.
curl -s 'https://lydiahub.online/api/timeline?since=2026-08-01T00:00:00Z&limit=50'Propagation trace
Show source time, collector observation, evidence state, and thresholded anonymous outcome state without publishing raw observations.
curl -s https://lydiahub.online/api/propagation-trace/event-20260813010100000Freshness lab contract
Sample public monitor clocks side by side; collector checks, provider signal times, and propagation timing stay explicitly separate.
curl -s https://lydiahub.online/api/benchmarkOne-file JavaScript client
Import a tiny credential-free module that handles ETag revalidation, verifies the SHA-256 receipt, and polls the incremental timeline.
import { getTimeline, getVerifiedPacket } from "https://lydiahub.online/resetpulse-client.mjs";
const result = await getVerifiedPacket();
if (!result.receipt?.valid) throw new Error("Receipt verification failed");
const history = await getTimeline({ since: "2026-08-01T00:00:00Z", limit: 50 });
console.log(result.packet.primarySignal, history.timeline.events, result.etag);Zero-dependency Python client
Use the same verified packet and incremental timeline from Python with only the standard library; no credentials, package install, or private account data.
# Save as resetpulse_client.py (stdlib only)
from urllib.request import urlopen
exec(urlopen("https://lydiahub.online/resetpulse-client.py").read().decode("utf-8"), globals())
result = get_verified_packet()
if not result["receipt"]["valid"]:
raise RuntimeError("Receipt verification failed")
print(result["packet"]["primarySignal"], result["etag"])Machine-readable receipt
Fetch the latest primary event and validate its SHA-256 receipt against the public schema.
curl -s https://lydiahub.online/api/evidence/latestCompact status packet
Give bots and community tools one privacy-safe response with primary status, newer context, freshness, and links.
curl -s https://lydiahub.online/api/public-signalBrowser fetch
Read the public packet directly from a dashboard or widget; the read-only endpoint permits cross-origin requests.
fetch("https://lydiahub.online/api/public-signal").then(r => r.json())OpenAPI contract
Generate a client or validate the public read-only endpoints from a versioned OpenAPI document.
https://lydiahub.online/openapi.jsonGitHub Actions check
Run a five-minute, credential-free freshness check in your own repository; the workflow has no write permissions.
# .github/workflows/resetpulse-check.yml
name: Check ResetPulse verified public signal
on:
workflow_dispatch:
schedule:
- cron: "*/5 * * * *"
jobs:
check:
runs-on: ubuntu-latest
permissions: {}
steps:
- run: curl --fail --silent --show-error https://lydiahub.online/api/verified-packet | jq -e '.boundary.credentialsRequired == false and (.receipt.value | startswith("sha256:"))'Own your notifications
Poll every five minutes and send only new public-signal notices to a webhook you control; ResetPulse never stores the webhook secret.
# .github/workflows/resetpulse-notify.yml
name: Notify on a new ResetPulse public signal
on:
workflow_dispatch:
schedule:
- cron: "*/5 * * * *"
permissions: {}
jobs:
signal:
runs-on: ubuntu-latest
steps:
- uses: actions/cache/restore@v4
with:
path: .resetpulse-state
key: resetpulse-signal-${{ github.run_id }}
restore-keys: resetpulse-signal-
- name: Fetch and compare the public packet
id: compare
shell: bash
run: |
set -euo pipefail
curl --fail --silent --show-error --location https://lydiahub.online/api/verified-packet > packet.json
jq -e '.boundary.credentialsRequired == false and (.receipt.value | startswith("sha256:"))' packet.json >/dev/null
current="$(jq -r '.signalVersion' packet.json)"
previous="$(cat .resetpulse-state/signalVersion 2>/dev/null || true)"
mkdir -p .resetpulse-state
printf '%s' "$current" > .resetpulse-state/signalVersion
printf 'version=%s\n' "$current" >> "$GITHUB_OUTPUT"
if [ -n "$previous" ] && [ "$current" != "$previous" ]; then
printf 'changed=true\n' >> "$GITHUB_OUTPUT"
jq -r '"ResetPulse: \(.primarySignal.status) · \(.primarySignal.title) · \(.links.latestEvidence)"' packet.json > message.txt
else
printf 'changed=false\n' >> "$GITHUB_OUTPUT"
: > message.txt
fi
- uses: actions/cache/save@v4
with:
path: .resetpulse-state
key: resetpulse-signal-${{ steps.compare.outputs.version }}
- name: Send to your webhook (optional)
if: steps.compare.outputs.changed == 'true'
env:
WEBHOOK_URL: ${{ secrets.RESETPULSE_WEBHOOK_URL }}
shell: bash
run: |
set -euo pipefail
if [ -z "$WEBHOOK_URL" ]; then echo "No webhook configured; public packet check passed."; exit 0; fi
jq -n --rawfile text message.txt '{content: ($text | rtrimstr("\n")), text: ($text | rtrimstr("\n"))}' \
| curl --fail --silent --show-error --location "$WEBHOOK_URL" -H 'content-type: application/json' --data-binary @-Telegram / Discord / Slack recipe
Use one user-owned GitHub Actions workflow with optional Telegram, Discord, and Slack destinations; add only your own secrets.
https://lydiahub.online/notifyStatus packet schema
Validate the packet contract before rendering or automating against it.
https://lydiahub.online/public-signal-schema.jsonVerified packet schema
Validate the one-fetch signal-plus-receipt contract before automating against it.
https://lydiahub.online/verified-packet-schema.jsonTimeline schema
Validate the incremental event timeline before rendering or automating against it.
https://lydiahub.online/timeline-schema.jsonChoose the right surface
Badge is best for a README or dashboard. The evidence card is best for a forum reply or social post where the proof should travel with the claim. The freshness lab is best for a technical comparison where “updated” needs a visible boundary. RSS is best for feed readers and automation. The incremental JSON timeline is best for bots that need new events without reprocessing the full history. The JSON receipt is best for applications that need a stable event record. The Verified Reset Packet is best when a bot needs the current signal and its integrity receipt in one fetch. The one-file JavaScript client adds ETag revalidation and receipt verification without a package install. The zero-dependency Python client gives scripts and cron jobs the same verified-packet workflow with the standard library only. The compact status packet is best when a bot needs the primary signal and newer context without stitching multiple endpoints. The OpenAPI contract is best for generated clients and validation. The receipt schema, timeline schema, status packet schema, verified packet schema, and benchmark schema let consumers validate the contracts before use.
Agent and tool discovery
Tool maintainers can start from the machine integration manifest to discover the public packet, verified packet, receipts, schemas, RSS, badge, widget, JavaScript client, Python client, and user-owned notification workflows without scraping a page. It contains only public endpoints and the account-state boundary.
Keep the boundary visible
A public signal is not proof that every plan or account changed at the same moment. Keep the link to the human-readable account-outcome method when your audience needs to distinguish public evidence from personal quota state. For a private check, use the browser-only account snapshot parser; it accepts sanitized JSON and never uploads it.
For efficient polling, compare the packet's signalVersion, the ETag, or the X-ResetPulse-Signal-Version response header before re-rendering. Send the ETag back as If-None-Match to receive a 304 when the semantic evidence has not changed. The version changes when the primary or context evidence changes; the check time may advance without a new signal.
For tool maintainers
Keep your local quota logic and privacy boundary intact. Add only the public evidence layer: a README badge, an optional widget, a GitHub Actions check, the user-owned notification workflow, the one-file JavaScript client, the zero-dependency Python client, or a link to the latest receipt. No login, account identifier, quota value, cookie, or proxy is required. That makes the integration additive rather than a replacement for a personal tracker.
Why this helps distribution
An embedded artifact can earn recurring, context-rich visits from people who already work with Codex. A user-owned notification bridge adds utility without asking ResetPulse to hold a chat or webhook secret. It is a product utility first, not a request for follows or votes. Please do not mirror the badge across misleading pages or use it to imply an official OpenAI relationship.