Screenmap
aleqsio/screenmap
Generate a visual navigation map of an Expo / React Native or NativeScript app.
Migrate React Native apps directly from react-native-geolocation-service to react-native-nitro-geolocation without using /compat.
$ npx skills add jingjing2222/react-native-nitro-geolocation --skill service-migration -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jingjing2222/react-native-nitro-geolocation service-migration --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/jingjing2222/react-native-nitro-geolocation.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/service-migration .claude/skills/service-migration && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "service-migration" agent skill from https://github.com/jingjing2222/react-native-nitro-geolocation/tree/main/skills/service-migration into .claude/skills/service-migration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "service-migration", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/jingjing2222/react-native-nitro-geolocation/tree/main/skills/service-migrationType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add jingjing2222/react-native-nitro-geolocation --skill service-migration -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jingjing2222/react-native-nitro-geolocation service-migration --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jingjing2222/react-native-nitro-geolocation.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/service-migration .agents/skills/service-migration && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "service-migration" agent skill from https://github.com/jingjing2222/react-native-nitro-geolocation/tree/main/skills/service-migration into .agents/skills/service-migration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "service-migration", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jingjing2222/react-native-nitro-geolocation --skill service-migration -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jingjing2222/react-native-nitro-geolocation service-migration --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jingjing2222/react-native-nitro-geolocation.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/service-migration .cursor/skills/service-migration && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "service-migration" agent skill from https://github.com/jingjing2222/react-native-nitro-geolocation/tree/main/skills/service-migration into .cursor/skills/service-migration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "service-migration", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/jingjing2222/react-native-nitro-geolocation.git --path skills/service-migration--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add jingjing2222/react-native-nitro-geolocation --skill service-migration -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jingjing2222/react-native-nitro-geolocation service-migration --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jingjing2222/react-native-nitro-geolocation.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/service-migration .gemini/skills/service-migration && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "service-migration" agent skill from https://github.com/jingjing2222/react-native-nitro-geolocation/tree/main/skills/service-migration into .gemini/skills/service-migration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "service-migration", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install jingjing2222/react-native-nitro-geolocation service-migrationInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add jingjing2222/react-native-nitro-geolocation --skill service-migration -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jingjing2222/react-native-nitro-geolocation.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/service-migration .github/skills/service-migration && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "service-migration" agent skill from https://github.com/jingjing2222/react-native-nitro-geolocation/tree/main/skills/service-migration into .github/skills/service-migration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "service-migration", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jingjing2222/react-native-nitro-geolocation --skill service-migration -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jingjing2222/react-native-nitro-geolocation service-migration --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jingjing2222/react-native-nitro-geolocation.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/service-migration .opencode/skills/service-migration && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "service-migration" agent skill from https://github.com/jingjing2222/react-native-nitro-geolocation/tree/main/skills/service-migration into .opencode/skills/service-migration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "service-migration", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
service-migrationMigrate React Native apps directly from react-native-geolocation-service to react-native-nitro-geolocation without using /compat.
Service Migration is an agent skill from jingjing2222/react-native-nitro-geolocation. Migrate React Native apps directly from react-native-geolocation-service to react-native-nitro-geolocation without using /compat. Use when replacing react-native-geolocation-service imports, installing Nitro packages, configuring the Android provider, converting callback APIs to Promise/watch APIs, preserving service-specific options such as accuracy and provider metadata, and reporting manual-review sites for settings dialogs, forceRequestLocation, and default option differences.
Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including scripts (for example `agents/openai.yaml`).
It sits in Mobile, covering Cross-platform mobile apps. It works with React Native, Android, React and iOS. The repository describes itself as: A React Native Geolocation module Using Nitro. The licence is MIT.
12 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 89704cf. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (JavaScript), which the agent can run.
Shell commands in SKILL.md call:
nodecurlrgFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
react-native-nitro-geolocation.pages.devFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Service Migration loads about 2.3k tokens when it runs. Until then it costs about 126 tokens; SKILL.md has 764 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from jingjing2222/react-native-nitro-geolocation at commit 89704cf, republished under its MIT licence (© jingjing2222). 764 words, ~2,299 tokens.
.claude/skills/service-migration/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Migrate directly to react-native-nitro-geolocation.
Do not use react-native-nitro-geolocation/compat.
Do not create intermediate compat imports.
Do not preserve Geolocation default-object usage unless the user explicitly
asks for a compatibility fallback.
package.json, lockfiles, and the worktree state.react-native-geolocation-service is installed or imported.react-native-nitro-modules and
react-native-nitro-geolocation.curl -fsSL https://react-native-nitro-geolocation.pages.dev/llms.txt
curl -fsSL https://react-native-nitro-geolocation.pages.dev/llms-full.txtllms.txt as the index and llms-full.txt only for exact API names,
option semantics, or examples. If the target app pins an older installed
version, confirm APIs against that package's local types.rg "react-native-geolocation-service|Geolocation\\.|requestAuthorization|showLocationDialog|forceRequestLocation|forceLocationManager|mocked|provider|PLAY_SERVICE_NOT_AVAILABLE|SETTINGS_NOT_SATISFIED|INTERNAL_ERROR|PermissionsAndroid"setConfiguration() call. Normal
react-native-geolocation-service migrations should use
locationProvider: "playServices". Use "android" only when the legacy app
intentionally used forceLocationManager: true.react-native-nitro-geolocation.async/await
only when the surrounding function is already async or clearly safe to make
async.watchPosition plus unwatch first.useWatchPosition only for hook-safe React function components
or custom hooks.showLocationDialog: true to a requestLocationSettings() flow.react-native-geolocation-service.Resolve scripts/migrate-geolocation-service.mjs relative to this
SKILL.md.
Run inventory first:
node <skill-dir>/scripts/migrate-geolocation-service.mjs --root <app-root> --inventory-onlyDry-run the direct API transform:
node <skill-dir>/scripts/migrate-geolocation-service.mjs --root <app-root> --dry-runOptionally add startup configuration when the app startup file is obvious:
node <skill-dir>/scripts/migrate-geolocation-service.mjs \
--root <app-root> \
--startup-file <app-root>/src/App.tsxThe script is assistance, not a blind migration. It performs package-manager
detection, dependency install/remove commands, AST-based import/callsite
rewrites when Babel parser tooling is available, and a manual-review report.
If the target project lacks Babel parser/generator dependencies, rerun with
--allow-tool-install to install temporary codemod dependencies outside the
app.
react-native-nitro-geolocation/compat./compat as an intermediate step.locationProvider: "playServices" for normal
react-native-geolocation-service migrations.locationProvider: "android" only when legacy code used
forceLocationManager: true or the app explicitly requires Android
LocationManager.enableHighAccuracy: true to
accuracy: { android: "high", ios: "best" } unless an explicit accuracy
object already exists.accuracy, timeout, maximumAge, distanceFilter,
interval, fastestInterval, useSignificantChanges, and
showsBackgroundLocationIndicator.showLocationDialog: true to an explicit
requestLocationSettings() flow.forceRequestLocation; report it.watchPosition plus unwatch as the first safe target.LocationErrorCodes where possible.PermissionsAndroid code unless it is clearly only for
location permission and replaced by requestPermission().react-native-geolocation-service | react-native-nitro-geolocation | Notes |
|---|---|---|
Geolocation.getCurrentPosition(success, error, options) | getCurrentPosition(options) | Convert to Promise chain first. |
Geolocation.watchPosition(success, error, options) | watchPosition(...) or useWatchPosition(...) | Start with low-level API. |
Geolocation.clearWatch(id) | unwatch(token) | Token type changes. |
Geolocation.stopObserving() | stopObserving() | Keep only when global cleanup was intended. |
| `requestAuthorization("whenInUse" | "always")` | setConfiguration({ authorizationLevel }) plus requestPermission() |
accuracy: { android, ios } | accuracy: { android, ios } | Preserve explicit values. |
enableHighAccuracy | accuracy preset | Prefer accuracy. |
showLocationDialog | requestLocationSettings() | Convert explicit true; report omitted defaults. |
forceLocationManager | setConfiguration({ locationProvider: "android" }) | Global setting, not a call option. |
| default fused provider intent | setConfiguration({ locationProvider: "playServices" }) | Do this for normal service migrations. |
forceRequestLocation | no direct option | Report and preserve intent manually. |
position.mocked | GeolocationResponse.mocked | Available in the API. |
position.provider | GeolocationResponse.provider | Available in the API. |
error codes -1, 1, 2, 3, 4, 5 | LocationErrorCodes | Prefer named constant comparisons. |
Rewrite imports directly:
import {
getCurrentPosition,
watchPosition,
unwatch,
stopObserving,
requestPermission,
setConfiguration,
requestLocationSettings,
LocationErrorCodes,
} from "react-native-nitro-geolocation";Convert one-shot calls to Promise chains:
getCurrentPosition({
accuracy: { android: "high", ios: "best" },
timeout: 15000,
maximumAge: 10000,
})
.then(onSuccess)
.catch(onError);Convert explicit Android settings-dialog behavior:
requestLocationSettings({
accuracy: { android: "high", ios: "best" },
})
.then(() =>
getCurrentPosition({
accuracy: { android: "high", ios: "best" },
timeout: 15000,
})
)
.then(onSuccess)
.catch(onError);Use low-level watches as the first safe target:
const watchToken = watchPosition(onPosition, onError, {
accuracy: { android: "high", ios: "best" },
distanceFilter: 10,
interval: 5000,
fastestInterval: 2000,
});
unwatch(watchToken);Upgrade to useWatchPosition only when the watch is already owned by a React
function component or custom hook and the original callbacks do not contain
ordering-sensitive side effects.
Always report these instead of guessing:
showLocationDialog. Service default was true; Nitro requires an
explicit requestLocationSettings() flow if the app wants the Android
settings dialog.timeout or maximumAge on getCurrentPosition. Service defaults
were effectively infinite; Nitro defaults are timeout: 600000 and
maximumAge: 0.forceRequestLocation. Preserve the fallback behavior explicitly only after
product/UX review.forceLocationManager usage. Nitro locationProvider is global.requestAuthorization code that handles disabled. requestPermission()
status does not include disabled; use hasServicesEnabled() or
getProviderStatus() separately.PermissionsAndroid usage unless it is clearly redundant after
requestPermission().Use the target app's detected package manager and existing scripts. Prefer
typecheck, lint, and test when they exist. Do not invent missing scripts.
For device-sensitive behavior, verify at least one permission request, one
current-position request, one Android settings flow when applicable, and one
watch start/stop flow.
© jingjing2222, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (scripts) in skills/service-migration of jingjing2222/react-native-nitro-geolocation.
Open the folder on GitHubat commit 89704cf
Service Migration next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Service Migration this skilljingjing2222/react-native-nitro-geolocation | 115 | — | ~2.3k | Automated safety check: Pass | MIT | |
| Screenmapaleqsio/screenmap | 244 | — | ~7.2k | Automated safety check: Pass | MIT | |
| ThemingCode-with-Beto/skills | 140 | — | ~2.5k | Automated safety check: Pass | None | |
| Upgrade Rn Versionbrandingbrand/flagship | 165 | — | ~3.7k | Automated safety check: Pass | MIT | |
| Upgrade React NativeShopify/flash-list | 7.2k | — | ~1.9k | Automated safety check: Pass | MIT | |
| Fishjam React Native Clientsoftware-mansion-labs/skills | 291 | — | ~1.9k | Automated safety check: Pass | MIT |
aleqsio/screenmap
Generate a visual navigation map of an Expo / React Native or NativeScript app.
Code-with-Beto/skills
Scaffold a unified, cross-platform color theme system into an Expo Router app.
brandingbrand/flagship
Adopt a new stable React Native minor into Flagship Code. An agent skill from brandingbrand/flagship.
Shopify/flash-list
Upgrade the React Native fixture app to a new version. An agent skill from Shopify/flash-list.
software-mansion-labs/skills
React Native / Expo SDK for Fishjam — video/audio streaming on iOS and Android.
wix/react-native-navigation
Navigate and work with the react-native-navigation (RNN) codebase.
jingjing2222/react-native-nitro-geolocation
Migrate React Native apps from @react-native-community/geolocation to react-native-nitro-geolocation.
Works with
Categories
Migrate React Native apps directly from react-native-geolocation-service to react-native-nitro-geolocation without using /compat. Service Migration is an agent skill from jingjing2222/react-native-nitro-geolocation. Migrate React Native apps directly from react-native-geolocation-service to react-native-nitro-geolocation without using /compat.
Service Migration fits situations like: replacing react-native-geolocation-service imports; installing Nitro packages; configuring the Android provider; converting callback APIs to Promise/watch APIs.
Run `npx skills add jingjing2222/react-native-nitro-geolocation --skill service-migration -a claude-code`. Or copy the skill folder (skills/service-migration in jingjing2222/react-native-nitro-geolocation) into .claude/skills/service-migration in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jingjing2222/react-native-nitro-geolocation --skill service-migration -a codex`. Or copy the skill folder (skills/service-migration in jingjing2222/react-native-nitro-geolocation) into .agents/skills/service-migration in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jingjing2222/react-native-nitro-geolocation --skill service-migration -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/service-migration, .gemini/skills/service-migration, .github/skills/service-migration and .opencode/skills/service-migration in your project.
Going by SKILL.md and its folder, Service Migration needs JavaScript for the scripts in its folder and the command-line tools its instructions call (node, curl and rg). Our summary lists: Node.js.
SKILL.md names 1 domain. In commands or code: react-native-nitro-geolocation.pages.dev; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Service Migration is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Service Migration: Screenmap (aleqsio/screenmap, 244 stars), Theming (Code-with-Beto/skills, 140 stars), Upgrade Rn Version (brandingbrand/flagship, 165 stars) and Upgrade React Native (Shopify/flash-list, 7.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jingjing2222 (a GitHub user) maintains it in jingjing2222/react-native-nitro-geolocation, which has 115 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on September 13, 2026.
Source: jingjing2222/react-native-nitro-geolocation on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.