Send Push Notifications and Trigger Live Activities with ActivitySmith CLI

Use the ActivitySmith CLI when you want shell-native commands for Push Notifications, Live Activity updates, and agent-driven iPhone alerts.

Install

npm i -g activitysmith-cli

Agent Skill

Install the ActivitySmith skill when you want Codex, Claude, Cursor, or another skills-compatible agent to decide which CLI command to run. The skill maps natural language requests like notify me when done, open ChatGPT when I tap the notification, or keep progress visible to ActivitySmith CLI commands.

ActivitySmith notification action that runs a specific iPhone Shortcut from an action button

Install the skill globally:

npx -y skills@latest add ActivitySmithHQ/activitysmith-cli --skill activitysmith
  • Use the CLI directly for scripts, cron jobs, and CI.
  • Use the skill when any compatible agent should notify you with Push Notifications, include a notification tap or action that can open a URL or run a specific iPhone Shortcut, or keep task progress visible while it works.
  • A Codex agent can work on your computer, send a Push Notification when it needs your attention, and include a Shortcut action that opens the ChatGPT app on your iPhone so you can continue the conversation there.
  • Use Live Activities when an agent should keep task progress visible while it works.

Push Notifications

Send an immediate notification for a completed task or event:

Push notification example for a new subscription event
activitysmith push \
--title "New subscription 💸" \
--message "Customer upgraded to Pro plan"

Send images, videos, or audio with your push notifications, press and hold to preview media directly from the notification, then tap through to open the linked content.

Image Preview

Rich push notification with image
activitysmith push \
--title "Homepage ready" \
--message "Your agent finished the redesign." \
--media "https://cdn.example.com/output/homepage-v2.png" \
--redirection "https://github.com/acme/web/pull/482"

Audio Preview

Rich push notification with audio

What will work

  • direct image URL: .jpg, .png, .gif, etc.
  • direct audio file URL: .mp3, .m4a, etc.
  • direct video file URL: .mp4, .mov, etc.
  • URL that responds with a proper media Content-Type, even if the path has no extension

--media can be combined with --redirection, but not with --actions.

Push notification redirection and actions are optional. Use them to open HTTPS URLs, run a specific iPhone Shortcut with a shortcuts://run-shortcut?name=... URL, or trigger backend webhook workflows.

Actionable push notification with redirection and actions
activitysmith push \
--title "Build Failed 🚨" \
--message "CI pipeline failed on main branch" \
--redirection "https://github.com/org/repo/actions/runs/123456789" \
--actions '[{"title":"Open Failing Run","type":"open_url","url":"https://github.com/org/repo/actions/runs/123456789"},{"title":"Chat with Jarvis","type":"open_url","url":"shortcuts://run-shortcut?name=Jarvis"},{"title":"Create Incident","type":"webhook","url":"https://hooks.example.com/incidents/create","method":"POST","body":{"service":"payments-api","severity":"high","source":"activitysmith-cli"}}]'

Live Activities

Choose the Live Activity type that matches what you want to show:

Stats Live Activity with six labeled sales metrics

Stats

Show up to 8 labeled values on your Lock Screen, from revenue and orders to uptime and conversion.

Metrics Live Activity with CPU and memory values

Metrics

Track two related values with segmented bars, such as CPU and memory.

Segmented Progress Live Activity showing a workflow step

Segmented Progress

Show progress through a known set of steps, like build, test, deploy, and verify.

Progress Live Activity showing percentage completion

Progress

Show percentage progress for jobs that move continuously toward completion.

Alert Live Activity showing a customer reactivation update

Alert

Show status updates with a clear message, badge, and icon. When you add an action button, color controls the button tint.

Timer Live Activity showing a benchmark run countdown

Timer

Count down from a duration, or count up from 00:00 while a job runs.

Use a stable stream_key to identify the metric, job, deployment, or system you want to keep visible. The first activity stream command starts the Live Activity. Later commands with the same stream_key update it.

Stats stream example
activitysmith activity stream sales-hourly \
--content-state '{
"title": "Sales",
"subtitle": "last hour",
"type": "stats",
"metrics": [
{ "label": "Revenue", "value": "$2430", "color": "blue" },
{ "label": "Orders", "value": "37", "color": "green" },
{ "label": "Conversion", "value": "4.8%", "color": "magenta" },
{ "label": "Avg Order", "value": "$65.68", "color": "yellow" },
{ "label": "Refunds", "value": "$84", "color": "red" },
{ "label": "New Buyers", "value": "18", "color": "cyan" }
]
}'
Metrics stream example
activitysmith activity stream prod-web-1 \
--content-state '{
"title": "Server Health",
"subtitle": "prod-web-1",
"type": "metrics",
"metrics": [
{ "label": "CPU", "value": 9, "unit": "%" },
{ "label": "MEM", "value": 45, "unit": "%" }
]
}'
Segmented progress stream example
activitysmith activity stream nightly-backup \
--content-state '{
"title": "Nightly Backup",
"subtitle": "upload archive",
"type": "segmented_progress",
"numberOfSteps": 3,
"currentStep": 2
}'
Progress stream example
activitysmith activity stream search-reindex \
--content-state '{
"title": "Search Reindex",
"subtitle": "catalog-v2",
"type": "progress",
"percentage": 42
}'
Alert stream example
activitysmith activity stream customer-ops \
--content-state '{
"title": "Reactivation",
"message": "Lumen came back after 2 weeks",
"type": "alert",
"icon": {
"symbol": "cloud.sun",
"color": "yellow"
},
"badge": {
"title": "Customer",
"color": "magenta"
}
}'

The icon.symbol value is an Apple SF Symbol name. Browse the catalog with one of these tools:

  • ActivitySmith app - Open Settings -> SF Symbols to browse 45 hand-picked icons ready to use
  • SF Symbols - Apple's official macOS app
  • Interactful - free third-party iOS app listing all SF Symbols under Foundations -> Iconography
Timer Live Activity showing a benchmark run countdown
activitysmith activity stream benchmark-run \
--content-state '{
"title": "Benchmark Run",
"subtitle": "sampling",
"type": "timer",
"durationSeconds": 300,
"color": "cyan"
}'

For a countdown, send duration_seconds. You can update title, subtitle, color, or any other visible field as the work changes. Leave duration_seconds out unless you want to change the timer.

To start at 00:00 and count up, set counts_down: false and leave out duration_seconds.

Run activitysmith activity end-stream <stream-key> with the same stream_key to dismiss the Live Activity. You can include final values before it is removed. By default, iOS removes the Live Activity after two minutes. Set autoDismissMinutes to choose a different dismissal time, including 0 for immediate dismissal.

activitysmith activity end-stream prod-web-1 \
--content-state '{
"title": "Server Health",
"subtitle": "prod-web-1",
"type": "metrics",
"metrics": [
{ "label": "CPU", "value": 7, "unit": "%" },
{ "label": "MEM", "value": 38, "unit": "%" }
],
"autoDismissMinutes": 2
}'

Live Activities can include one optional action button.

  • open_url: open an HTTPS URL.
  • open_url with a shortcuts:// URL: run an Apple Shortcut, for example to open an app.
  • webhook: trigger a backend GET/POST workflow.

Open URL action

Metrics Live Activity with action
activitysmith activity stream prod-web-1 \
--content-state '{
"title": "Server Health",
"subtitle": "prod-web-1",
"type": "metrics",
"metrics": [
{ "label": "CPU", "value": 76, "unit": "%" },
{ "label": "MEM", "value": 52, "unit": "%" }
]
}' \
--action '{
"title": "Dashboard",
"type": "open_url",
"url": "https://ops.example.com/servers/prod-web-1"
}'

Apple Shortcut action

activitysmith activity stream deploy-payments-api \
--content-state '{
"title": "Deploying payments-api",
"subtitle": "Running database migrations",
"type": "segmented_progress",
"numberOfSteps": 5,
"currentStep": 3
}' \
--action '{
"title": "Chat with Jarvis",
"type": "open_url",
"url": "shortcuts://run-shortcut?name=Jarvis"
}'

Webhook action

activitysmith activity stream search-reindex \
--content-state '{
"title": "Reindexing product search",
"subtitle": "Shard 7 of 12",
"type": "segmented_progress",
"numberOfSteps": 12,
"currentStep": 7
}' \
--action '{
"title": "Pause Reindex",
"type": "webhook",
"url": "https://ops.example.com/hooks/search/reindex/pause",
"method": "POST",
"body": {
"job_id": "reindex-2026-03-19",
"requested_by": "activitysmith-cli"
}
}'

Icons and Badges

Add more context to Live Activities with icons and badges.

Icon

Supported Live Activity types: stats, metrics, progress, segmented_progress, and alert.

Metrics Live Activity with an SF Symbol icon on the iPhone Lock Screen
activitysmith activity stream prod-web-1 \
--content-state '{
"title": "Server Health",
"subtitle": "prod-web-1",
"type": "metrics",
"icon": { "symbol": "server.rack", "color": "blue" },
"metrics": [
{ "label": "CPU", "value": 18, "unit": "%" },
{ "label": "MEM", "value": 42, "unit": "%" }
]
}'

The icon.symbol value is an Apple SF Symbol name. Browse the catalog with one of these tools:

  • ActivitySmith app - Open Settings -> SF Symbols to browse 45 hand-picked icons ready to use
  • SF Symbols - Apple's official macOS app
  • Interactful - free third-party iOS app listing all SF Symbols under Foundations -> Iconography

Badge

Badges are supported by alert, progress, and segmented_progress Live Activities.

Progress Live Activity with a badge on the iPhone Lock Screen
activitysmith activity stream nightly-database-backup \
--content-state '{
"title": "Nightly Database Backup",
"subtitle": "verify restore",
"type": "progress",
"badge": { "title": "S3", "color": "cyan" },
"percentage": 62
}'

Live Activity Colors

Choose from these colors for the Live Activity accent, including progress bars and action buttons, or apply them to an individual icon or badge:

lime
green
cyan
blue
purple
magenta
red
orange
yellow
gray

Widgets

Lock screen widgets

ActivitySmith lets you display any value on your Lock Screen with widgets - SaaS metrics, revenue, number of users, uptime, or anything else you want to track. Create a metric in the web app, then update the metric value using our API, add a widget to your lock screen and it will fetch the latest update automatically.

Create widget metric
activitysmith metrics update deploy.success_rate 99.9

String metric values work too.

activitysmith metrics update prod.status healthy

Add Push Notifications to any shell script or pipeline

Keep your team aligned with immediate event delivery across incidents, business signals, and automation outcomes.

Explore Integrations

Connect ActivitySmith to automation and delivery platforms, then route runtime events to Push Notifications and Live Activities on your iOS devices.