
cx-rum-setup
Use this skill when the user asks to "add RUM", "set up RUM", "install the RUM SDK", "add Coralogix RUM to my app", "create a RUM API key", "RUM public key", "init Coralogix RUM", "CoralogixRum.init", "add the browser SDK", "real user monitoring", "frontend monitoring", "monitor my web app", "session replay", "track frontend errors", "add RUM to React", "add RUM to Next.js", "add RUM to my mobile app", or wants to instrument a browser or mobile application with Coralogix Real User Monitoring end to end - RUM API key, SDK install, init code, and verifying data arrives.
- Installs
- 269
- Last 24h
- +75
- Trending rank
- #2440
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/coralogix/cx-cli --skill cx-rum-setup- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads cx-rum-setup automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
RUM Setup Skill
Use this skill to onboard an application to Coralogix Real User Monitoring (RUM): get a RUM API key, install the platform SDK, add the init call, and verify events land in the rum.events dataset.
CLI Commands
| Command | Purpose |
|---|---|
cx iam api-keys list -o json | List candidate keys and the team ID (no permissions in output) |
cx iam api-keys send-data-keys -o json | List candidate send-data keys (no permissions in output) |
cx iam api-keys get <id> -o json | Read a key's permissions (keyInfo.keyPermissions) and value |
cx iam api-keys create --from-file <file> | Create the RUM key (write - needs approval + --yes) |
cx docs search <query> / cx docs fetch <suffix> | Current SDK install and init docs per platform |
cx dataprime query --source rum.events '<query>' | Verify RUM events arrive |
cx profiles list | Profiles and regions - pick the active one for both key and coralogixDomain |
cx iam and cx dataprime take -p <profile> to target a specific team. cx profiles and cx docs are local commands - they take no -p (cx profiles list -p ... is an error).
Workflow
1. Detect the platform
Inspect the user's repo before anything else. Signals overlap (React Native apps also list react; Flutter and React Native repos contain ios/ and android/ folders), so check in this order and stop at the first match:
| # | Signal | Platform |
|---|---|---|
| 1 | pubspec.yaml | Flutter SDK - ignore its ios/ / android/ folders |
| 2 | package.json with react-native (or expo) | React Native SDK - ignore react and native folders |
| 3 | package.json with next | Next.js (browser SDK, client-only init) |
| 4 | package.json with a browser signal - react-dom, vue, @angular/core, svelte, a browser bundler (vite, webpack, parcel), or an index.html entry | Browser SDK (@coralogix/browser) |
| 5 | Podfile / Package.swift / *.xcodeproj | iOS SDK |
| 6 | build.gradle(.kts) with Android plugin | Android SDK |
A package.json alone (Node backend, tooling) is not a browser app. If nothing matches, tell the user no supported client app was found instead of guessing.
2. Pick the profile - before any key operation
The key and the SDK domain must come from one profile, so settle it before touching keys. The active profile is -p <name> if given, else $CX_PROFILE if set, else the DEFAULT row of cx profiles list - don't just read the DEFAULT row. If there are several profiles and none was named, ask the user which team the app belongs to now, then pass -p <name> to every cx iam and cx dataprime call that follows.
coralogixDomain is that profile's REGION in upper case: EU1, EU2, US1, US2, US3, AP1, AP2, AP3.
3. Get a RUM API key
RUM keys are public by design - they ship inside client code. Create it with the SendRUMData preset - the same key the UI's RUM flow creates. That preset grants exactly one permission, rum-ingress:SendData, and is standalone: never add other presets or permissions. (Granting rum-ingress:SendData directly also works but shows as a CUSTOM key in the UI, so prefer the preset.) In Settings → API Keys a RUM key shows type "Send Your Data" with preset SendRUMData. Do not pick the SendData preset - it grants logs/metrics/spans ingest but not RUM, and makes the key secret, not public.
Reuse first. Check for an existing RUM key:
cx iam api-keys list -p <profile> -o json
cx iam api-keys send-data-keys -p <profile> -o json
These listings don't include permissions, so treat every row as a candidate only - never reuse a key based on its name. For each candidate run cx iam api-keys get <id> -p <profile> -o json and reuse it only if it is active (keyInfo.active: true) and keyInfo.keyPermissions has SendRUMData as its only preset and no other permissions (or rum-ingress:SendData as its only permission). Skip inactive keys - the SDK can't send with them. The value is in keyInfo.value (returned for unhashed keys - a hashed key can't be reused, create a new one).
Create one if none exists. This is a write - describe it to the user and get approval before passing --yes (same rules as cx-platform-admin).
cat > rum-key.json <<'EOF'
{
"name": "<app-name> RUM",
"owner": { "teamId": <team-id> },
"keyPermissions": { "presets": ["SendRUMData"], "permissions": [] },
"hashed": false
}
EOF
cx iam api-keys create --from-file rum-key.json -p <profile> --yes -o json
-
teamId: readcached_team_idfrom the step-2 profile's file~/.cx/profiles/<profile>.toml(written bycx init), or theowner.teamIdof any key incx iam api-keys list -o json, or ask the user. -
Permission denied: RUM keys are Send-Your-Data (data-ingest) keys, so they need theDATA-INGEST-API-KEYSpermissions, not the team custom-key ones:- on
send-data-keys→ the role lacksDATA-INGEST-API-KEYS:READCONFIG(view keys); - on
getorcreate→ the role lacksDATA-INGEST-API-KEYS:MANAGE(getneeds it too, since it returns the key value).
Don't retry with other payloads. Tell the user which permission is missing and ask them to get it, or to create it in Settings → API Keys - key type Send Your Data Key, role preset
SendRUMDataonly (or have an admin do it), then continue from step 4 with the key value. - on
-
hashed: falsekeeps the key value retrievable later - fine for a public RUM key. -
The response contains
value- that is thepublic_keyfor the SDK.
4. Fetch the current SDK docs
SDK package names, versions, and options change - fetch them instead of guessing (see coralogix-docs):
cx docs search "RUM SDK installation <platform>" --limit 5
cx docs fetch <suffix-from-search>
5. Install and initialize
Use the profile and coralogixDomain from step 2.
Browser example (confirm against the fetched docs):
npm install @coralogix/browser
import { CoralogixRum } from '@coralogix/browser';
CoralogixRum.init({
application: '<app-name>',
environment: 'production',
public_key: process.env.NEXT_PUBLIC_CX_RUM_KEY!, // or import.meta.env.VITE_CX_RUM_KEY
coralogixDomain: 'EU1',
version: '<app-version>',
});
Gotchas:
- Init once, as early as possible - the app entry point (
main.ts,index.tsx, root layout). - Next.js: init only on the client - a
'use client'component that callsinitinuseEffect, rendered from the root layout. Never in server components. - Env vars: keep the key in env config (
NEXT_PUBLIC_*,VITE_*,REACT_APP_*), not hard-coded. It is public, but env config makes rotation easy. versionshould match the release - source maps and release comparison rely on it.- Source maps (optional) are uploaded with
coralogix-rum-cliand need a separate key - in the UI, key type Team Key with role presetSourceMapping(source-mapping:ReadMapping+UploadMapping) - never reuse the RUM key, and keep this one secret (CI only, not in client code). Seecx docs fetch user-guides/rum/cli/rum-cli.md(search doesn't surface it).
6. Verify data arrives (optional)
Setup is done once the key exists and init is in place - data only flows after the app runs and users hit it, and the SDK sends in batches. Give the user this query to run later, or run it now if they load the app:
cx dataprime query --source rum.events \
"filter \$d.version_metadata.app_name == '<app-name>' | limit 10" -p <profile> -o json
No rows? Check the browser network tab for requests to the RUM ingress endpoint. Ad blockers, a wrong coralogixDomain, or a key with extra permissions are the usual causes.
Key Principles
- RUM key =
SendRUMDatapreset only - nothing else on the key - Reuse before create, and never pass
--yeswithout user approval - Fetch SDK docs per platform with
cx docs- don't hard-code versions or options from memory - Client-side init only, once, at the app entry point
- Done = key + init in place - hand over the
rum.eventsquery for checking data later
Related Skills
cx-platform-admin- general API key managementcoralogix-docs- fetch platform-specific SDK docscx-telemetry-querying- query RUM data once it flows
FAQ
What does the cx-rum-setup skill do?
Use this skill when the user asks to "add RUM", "set up RUM", "install the RUM SDK", "add Coralogix RUM to my app", "create a RUM API key", "RUM public key", "init Coralogix RUM", "CoralogixRum.init", "add the browser SDK", "real user monitoring", "frontend monitoring", "monitor my web app", "session replay", "track frontend errors", "add RUM to React", "add RUM to Next.js", "add RUM to my mobile app", or wants to instrument a browser or mobile application with Coralogix Real User Monitoring end to end - RUM API key, SDK install, init code, and verifying data arrives.
How do I install cx-rum-setup?
Run npx skills add https://github.com/coralogix/cx-cli --skill cx-rum-setup in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/cx-rum-setup/ (personal) or .claude/skills/cx-rum-setup/ (project).
Which AI agents can use cx-rum-setup?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is cx-rum-setup safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains cx-rum-setup?
It is published by coralogix in coralogix/cx-cli. It has 269 recorded installs.
More from coralogix/cx-cli
cx-telemetry-querying
coralogix/cx-cli
Use this skill for any question involving telemetry data: "investigate an issue", "debug a problem", "find out why something is slow", "check error rates", "analyze user behavior", "understand a production incident", "query telemetry data", "look at logs", "search logs", "find errors", "find stack traces", "filter by severity", "check traces", "examine spans", "investigate request latency", "debug service-to-service calls", "look up a trace ID", "analyze RUM data", "query rum.events", "check frontend performance", "frontend errors", "Core Web Vitals", "JavaScript exceptions", "query metrics", "check CPU usage", "run a PromQL query", "check error rate", "look up a metric", "check memory usage", "how do I write a DataPrime query", "DataPrime syntax", or wants to answer questions using observability data from logs, metrics, traces, RUM, or APM.
cx-search-dashboard
coralogix/cx-cli
This skill should be used when the user asks to "find a dashboard", "search dashboards", "does a dashboard exist for X", "find widgets that query Y", "which dashboards use this field", "find a dashboard about errors", "look up dashboards by description", "search for existing monitoring dashboards", "find widgets that reference a field", or wants to discover existing Coralogix dashboards or widgets using natural-language or field-based search.
coralogix-docs
coralogix/cx-cli
Search and read official Coralogix platform documentation using cx docs search and cx docs fetch. Use when the user asks how Coralogix features work, how to configure or use the UI, set up integrations (OpenTelemetry, agents, collectors, webhooks), manage API keys, explore spans/traces/logs in the product, configure alerts/SLOs/dashboards, or needs authoritative product docs — not live tenant telemetry.
cx-alerts
coralogix/cx-cli
This skill should be used when the user asks to "manage alerts", "create alert", "list alerts", "delete alert", "check alert status", "enable alert", "disable alert", "investigate firing alerts", "check which alerts are active", "find alerting rules", "set up an alert", "configure alerting", "mute an alert", "silence an alert", "see alert definitions", "check alert priority", or wants to manage Coralogix alert definitions using the cx CLI.
cx-cli
coralogix/cx-cli
This skill should be used whenever the user runs any cx command, uses the cx CLI, Coralogix CLI, or mentions cx in the context of Coralogix observability. This skill provides cross-cutting concerns like update notifications that apply to all cx commands.
cx-observability-setup
coralogix/cx-cli
Use this skill when the user asks to "set up monitoring", "configure observability", "onboard new service", "create saved view", "set up notifications", "configure webhook", "set up Slack integration", "outgoing webhook", "automation action", "webhook for alerts", "create view", "saved view", "view folder", "organize dashboards", "install integration", "configure extension", "contextual data", "connect external service", "create notification connector", "set up email alerts", "configure PagerDuty", "notification routing", "deploy extension", "test webhook", "notification preset", "test notification", "webhook actions", or wants to set up, configure, or manage the observability stack for a service or team.
Popular frontend & design skills
setup-matt-pocock-skills
mattpocock/skills
Configure this repo for the engineering skills: set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.
frontend-design
anthropics/skills
Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.
hyperframes-animation
heygen-com/hyperframes
All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition's choreography (animation map) and 24 named text-animation effects. HyperFrames-native: single paused timeline, seek-safe, deterministic.
prototype
mattpocock/skills
Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.
hyperframes-core
heygen-com/hyperframes
The HyperFrames composition contract — build one renderable project. Use for composition structure, the data- timing attributes, class="clip", tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.
vercel-react-best-practices
vercel-labs/agent-skills
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.