onesignal
Use when sending a push notification to a specific user, a list of users, a segment or everyone; when checking how many devices can receive push or whether…
Skill by tirupati17
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/tirupati17-onesignal
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/onesignal
What's inside
- Skill name
onesignal- Description
- Use when sending a push notification to a specific user, a list of users, a segment or everyone; when checking how many devices can receive push or whether iOS/Android push is configured; when reviewing recent sends and their delivery counts; or when a push "was sent" but never arrived.
- License
- MIT
- Instructions
- 58 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# OneSignal: push to users or segments, delivery, app setup ## Credentials `cpm creds setup onesignal` asks for each one and says where it lives: | Name | Where to get it | |---|---| | `ONESIGNAL_APP_ID` | Dashboard > the app > Settings > **Keys & IDs**. Not a secret; it is in the app too. | | `ONESIGNAL_REST_API_KEY` | Same page, **App API key**. Server-side only. Keys starting `os_v2_` are sent as `Authorization: Key ...`, older ones as `Basic ...`; set `ONESIGNAL_AUTH_SCHEME` to override. | | `ONESIGNAL_ORG_API_KEY` | Optional. Organization > **Keys & IDs** (the organization / User Auth key). Only `cpm onesignal app` needs it. | ## Commands ```bash cpm onesignal send --external-id <uid> --title "Hi" --body "Text" # dry run: prints the body cpm onesignal send --external-id <a>,<b> --body "Text" --url myapp://x --commit cpm onesignal send --segment "Total Subscriptions" --body "Text" --commit cpm onesignal send --subscription <id> --body "Test" --data kind=test --commit cpm onesignal notifications --limit 20 [--kind api] # sent / failed / errored / clicked cpm onesignal app # counts + is APNs / FCM configured ``` `send` is a dry run unless `--commit`, picks exactly one audience, splits external_id lists into requests of 2,000, and adds an `idempotency_key` so an accidental resend is dropped. Send to your own test device (`--subscription`) before a segment. ## Traps - **"Sent" but nothing arrived: no external_id on the device.** Targeting by `external_id` only reaches devices whose app called `OneSignal.login(<id>)` with that exact string. If one platform never calls `login`, its users cannot be targeted at all. Check the user in Audience > Subscriptions. - **Aliases are case-sensitive.** A UUID logged in as `ABC...` on one platform and looked up as `abc...` by the server never matches. Normalise (lower case) on every side, then ship a build so devices re-register. - **One id per install is not one id per person.** If the id you log in with is an anonymous per-install id, a second phone is a different user and will never get that person's push. Link devices with a real account first. - **HTTP 200 is not delivery.** When nobody matches, OneSignal answers 200 with an empty `id` and `errors` such as "All included players are not subscribed". `send` treats that as failure (exit 2). Code that only checks `res.ok` reports success on every one of these. - **A release built without the app id ships silently.** If the app id comes from a local, untracked file, a build from a machine without it registers no device and nothing errors. Make the release script refuse to build when the id is empty, and confirm new devices appear after a release. - **Android needs FCM configured on the OneSignal app** (Settings > Push > Google Android). Without it Android devices do not subscribe. `app` shows whether APNs and FCM are set. - **`failed` vs `errored` in `notifications`.** Failed is dead tokens (uninstalls), expected to creep up. Errored is the platform refusing the send, usually an expired APNs key or FCM credential: fix it the day it appears. - **Server-side keys stay server-side.** The REST key can message every user. Never put it in an app, a client bundle or a public repo.
From tirupati17/cpm, MIT.
More from tirupati17/cpm
- 0.565score
google-ads
tirupati17
Use when checking or changing Google Ads from the terminal (campaign spend, clicks and conversions, pausing or enabling a campaign, changing a daily budget…
SkillAFreshness: AClaude Code +9 - 0.565score
amplitude
tirupati17
Use when listing or checking Amplitude Experiment feature flags, turning a flag on or off (kill switch, rollout), shipping code that is gated behind a new…
SkillAFreshness: AClaude Code +9 - 0.565score
appstore-release
tirupati17
Use when shipping an iOS app to App Store review (archive, upload, attach the build, write What's New, submit), updating localized descriptions, keywords or…
SkillAFreshness: AClaude Code +9 - 0.565score
gcp
tirupati17
Use when a tool needs a Google Cloud service account (Google Play publishing, RevenueCat purchase validation, Firebase, any Google API), when checking which…
SkillAFreshness: AClaude Code +9 - 0.565score
play-release
tirupati17
Use when publishing an Android app to Google Play (upload an AAB to internal, alpha, beta or production, staged rollout), when changing the Play listing text…
SkillAFreshness: AClaude Code +9 - 0.565score
revenuecat
tirupati17
Use when checking subscription metrics (MRR, revenue, active subscriptions, trials), looking up why a specific user does or does not have Pro, granting…
SkillAFreshness: AClaude Code +9 - 0.560score
cpm-learn
tirupati17
Use right after finishing a task that took real effort against an external service or API (a store console, billing, ads, analytics, push, cloud) and that is…
SkillAFreshness: AClaude Code +9 - 0.560score
service-task
tirupati17
One sentence an agent can match against a request.
SkillAFreshness: AClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Sep 27, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/tirupati17/cpm
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from tirupati17
- 0.565score
google-ads
tirupati17
Use when checking or changing Google Ads from the terminal (campaign spend, clicks and conversions, pausing or enabling a campaign, changing a daily budget…
SkillAFreshness: AClaude Code +9 - 0.565score
amplitude
tirupati17
Use when listing or checking Amplitude Experiment feature flags, turning a flag on or off (kill switch, rollout), shipping code that is gated behind a new…
SkillAFreshness: AClaude Code +9 - 0.565score
appstore-release
tirupati17
Use when shipping an iOS app to App Store review (archive, upload, attach the build, write What's New, submit), updating localized descriptions, keywords or…
SkillAFreshness: AClaude Code +9 - 0.565score
gcp
tirupati17
Use when a tool needs a Google Cloud service account (Google Play publishing, RevenueCat purchase validation, Firebase, any Google API), when checking which…
SkillAFreshness: AClaude Code +9 - 0.565score
play-release
tirupati17
Use when publishing an Android app to Google Play (upload an AAB to internal, alpha, beta or production, staged rollout), when changing the Play listing text…
SkillAFreshness: AClaude Code +9 - 0.565score
revenuecat
tirupati17
Use when checking subscription metrics (MRR, revenue, active subscriptions, trials), looking up why a specific user does or does not have Pro, granting…
SkillAFreshness: AClaude Code +9
Cite this page
onesignal skill. Agent Mart. https://agentmart.dev/skills/tirupati17-onesignal (last updated 2026-10-24)