Installation
Install the ActivitySmith Ruby SDK with RubyGems:Ruby
Usage
- Create an API key
- Set
ACTIVITYSMITH_API_KEYor pass it directly toActivitySmith::Client. - Reuse the client anywhere you send pushes or Live Activity updates.
Ruby
Send a Push Notification
Useactivitysmith.notifications.send when a deploy finishes, a customer upgrades, or a background job needs attention. title is required. message and subtitle are optional.
Ruby
Rich Push Notifications with Media
Ruby
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. redirection can be an HTTPS URL or a shortcuts://run-shortcut?name=... URL.
Actionable Push Notifications
Push notification redirection can open an HTTPS URL or run a specific iPhone Shortcut with a shortcuts://run-shortcut?name=... URL when someone taps the notification. For expanded notification actions, open_url supports HTTPS URLs and shortcuts://run-shortcut?name=... URLs. Webhooks are executed by the ActivitySmith backend and must use HTTPS.
Ruby
Live Activities
There are six types of Live Activities:stats: best for showing business numbers side by side, such as revenue, sales, new users, conversion, refunds, or any other value you want visible at a glancemetrics: best for live percentage values that change often, like server CPU, memory usage, disk usage, or error ratesegmented_progress: best for anything that moves through clear stages, like deployments, onboarding flows, backups, ETL pipelines, migrations, and AI agent runsprogress: best for tracking real-time progress with percentage, like tasks, backups, migrations, syncs, or uploadsalert: best for status updates, such as feature adoption, reactivation, onboarding blockers, incidents, escalations, and other operational statestimer: use it when you need countdowns or timers
Start & Update Live Activity
Use a stablestream_key to identify the metric, job, deployment, or system you want to keep visible. The first stream(...) call starts the Live Activity. Later calls with the same stream_key update it.
Stats

Metrics

Segmented Progress

Progress

Alert

Timer

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.
End Live Activity
Callend_stream(...) 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 auto_dismiss_minutes to choose a different dismissal time, including 0 for immediate dismissal.
Icons and Badges
Add more context to Live Activities with icons and badges.Icon
Supported Live Activity types:stats, metrics, progress, segmented_progress, alert, and timer.
![]()
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 byalert, progress, and segmented_progress Live Activities.

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
Live Activity Action

open_url: open an HTTPS URL.open_urlwith ashortcuts://run-shortcut?name=...URL: run a specific iPhone Shortcut, for example to open an app.webhook: trigger a backend GET/POST workflow.
Open URL action
Apple Shortcut action
Webhook action
Secondary action
Use secondary_action when you want a second button beside the primary action.
The secondary action button is supported for alert, progress, and segmented_progress Live Activities. Both buttons use the same open_url, webhook, and Apple Shortcut payload shapes.
Channels
Target specific channels when sending a push notification or streaming a Live Activity.Ruby
Widgets


Error Handling
Handle API errors withbegin/rescue around SDK calls:
Ruby
Additional Resources
RubyGems Package
Install the ActivitySmith Ruby SDK from RubyGems
Source Code
View the Ruby SDK source on GitHub