Push anything to your lock screen with chirp

Live Activities and push notifications, straight to your iPhone, from any script, service, or agent. Training runs, deploys, jobs, scrapers, alerts, AI agents. If it runs, it can chirp.

  • Live Activities. Real-time status pinned to your lock screen and Dynamic Island. Nobody else does this.
  • Push notifications. When the activity ends, when something breaks, when you want to be told.
  • One line. Or zero. @chirp.track above any Python function, or chirp run wrapping any shell command. No code changes inside your script.
Live · cycling real payloads
training.py
Epoch 7/10 · loss 0.034
WORKING

Training runs, deploys, backups, monitors, agents. One pill, every use case.

Fires from any long-running job

Claude CodeOpenClawCursorVercelRailwayModalReplicatePyTorchJAXAirflowClaude CodeOpenClawCursorVercelRailwayModalReplicatePyTorchJAXAirflow
How it works

Three lines to your lock screen.

Pick your language, paste your key, wrap your job. No SDKs to learn, no agents to train. Just status where you can actually see it.

  1. 01

    Install

    Pick your surface. Python, Node, Go, Rust, Ruby, CLI, bash helpers, MCP, or raw curl. Same API underneath, so integrations you add later keep working.

    shell
    pip install chirp-sdk
  2. 02

    Sign in

    Run chirp login to pair the CLI with your account via your browser — no key copy-pasting. Or set CHIRP_API_KEY in env.

    shell
    chirp login
    # or: export CHIRP_API_KEY=chirp_sk_...
  3. 03

    Wrap your job

    Call it as a context manager, or use the CLI, or bash wrapper. Start, updates, done, and error reporting are handled for you.

your_script.py
from chirp import ChirpAgent

# Context manager handles start / update / done / error.
# An exception inside the block → red ERROR badge automatically.
with ChirpAgent(name="training") as agent:
    for epoch in range(10):
        agent.update(f"Epoch {epoch + 1}/10")
        train_one_epoch()
    agent.done("Best val acc 94.1%")
pyclibashcurlalso available in docs
Use cases

If it runs for a while,
Chirp has a shape for it.

Same API, any job. Drop into the surface that fits. Python for training loops, bash for deploys, curl for anything with an HTTP client.

Training

ML / research

Epoch counter, loss curve, val acc. Notify when the sweep converges.

LLaMA-3.1-8BWORKING

Epoch 7/10 · loss 0.034

CI/CD

Deploys & builds

Green badge when prod lands. Red on rollback. Wrap any CI job.

deployPushed to prod
DONE
Cron

Backups & batch jobs

Nightly snapshots, ETL runs. Know whether last night worked.

pg_dumpDONE

Snapshot 48 GB complete

Scrapers

Crawlers & collection

Items scraped, pages visited, rate-limit status. Long jobs become glanceable.

scraper12,847 items · 47m
WORKING
Monitoring

Uptime & alerts

Service health, error rates, oncall pages. Amber when something drifts.

api-02WAITING

Memory at 92% · investigate

Agents

AI agents

Claude Code, OpenClaw, custom agents. Turn-complete signals without alt-tabbing.

ClaudeRefactoring auth middleware
WORKING
Builds

iOS & game builds

Wrap xcodebuild, ffmpeg, anything slow. Come back when green lands.

xcodebuildWORKING

Archiving · 58%

Your thing

Anything custom

Home automation, game servers, sports feeds. If it runs, it can chirp.

your_scriptWhatever you want
WORKING
Live on lock screen

Live for the whole run.
Gone the moment it’s over.

The card stays pinned to your lock screen and Dynamic Island while the job runs. Counter ticks, metrics update, status changes. When it finishes, the badge goes green and the activity dismisses itself. Works the same for a training run, a deploy, a backup, or anything else you wrap.

  • WORKING

    Your .update() call rides the APNs Live Activity pipeline. Same pathway as any native push.

  • WAITING

    Fires when a job blocks on something outside itself. Human approval, a queue slot, a rate limit window. Amber reads as 'your turn' without alt-tabbing.

  • DONE

    Success signal. The badge holds for a couple minutes, then the activity dismisses itself. Lock screen goes back to normal.

  • ERROR

    Non-zero exit, exception, timeout. Whatever went wrong carries through as the status message. Triage from across the room.

5:17

Sunday, April 19

5:17

LLaMA-3.1-8B
WORKING

Epoch 3/10 · loss 0.412

Integrations

One API. Every surface.

Five SDKs (Python, Node, Go, Rust, Ruby), a CLI that wraps any command, GitHub Actions, GitLab CI, CircleCI, Vercel + Sentry webhook bridges, and plain HTTP for everything else. All speak the same API — your phone sees the same Live Activity regardless of how it got there.

train.py
from chirp import track

# One line above any function. Green on return, red on exception.
@track("model training", theme="#818cf8")
def train():
    for epoch in range(10):
        train_one_epoch()

train()
Why Chirp

Designed for how you actually work.

Live Activities

The differentiator. Real-time status pinned to the lock screen and Dynamic Island. Everyone sends notifications. Nobody else does this.

Push notifications

When the activity ends, when something breaks, when you want to know about it later. Same API, different surface.

Glanceable

Green badge, red badge, amber badge. Color carries the signal. You don't have to read the status line.

Native APNs

Updates ride the same Apple Push pipeline as any first-party Live Activity. Nothing between you and the lock screen.

One per job

Restart your script? The activity updates in place. No stacked cards, no manual cleanup. Idempotent by design.

Language-agnostic

Python, Node, Go, Rust, Ruby, CLI, bash, MCP. One login file, every SDK reads it. Hook into anything that can POST.

No logs by default

Notification and activity records never touch disk — we skip the write entirely in ephemeral mode. Opt into 7 or 30 days on the dashboard if you need a debug window — never longer.

Pricing

One price. Everything.

Unlimited Live Activities and notifications, all integrations, all templates. Pick monthly or save with yearly.

Chirp · Full access
$20/ year

Works out to $1.67 / month

  • Unlimited Live Activities
  • Unlimited notifications
  • Python SDK, CLI, MCP server, bash wrapper
  • All built-in templates + custom schemas
  • Dynamic Island + lock screen rendering
  • Priority Discord access

Free during alpha · no card required

Get Chirp on your iPhone

The iPhone app is the receiver.

Install it, sign in with the same account you used here, and every push or Live Activity Chirp sends lands on your lock screen. Takes under a minute.

App Store listing launching soon
Request early access

You already have your API key and can test the API surface right now from your dashboard. The phone half just lights up once the app pairs.

Ready when you are

Wire up your first chirp.
See it on your phone in a minute.

Install the CLI, run chirp login, wrap your job. Every SDK on your machine picks up the same credentials — the first Live Activity lands on your lock screen before you’ve finished reading this.