# Add Native

Public entry point for native device capabilities and native controls, camera, image...

- Repository: https://github.com/microsoft/power-platform-skills (1098 stars)
- Category: Documents
- License: MIT
- Last updated: 2026-10-31
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add microsoft/power-platform-skills --skill add-native -g -a claude-code -y`
Codex: `npx skills add microsoft/power-platform-skills --skill add-native -g -a codex -y`
Cursor: `npx skills add microsoft/power-platform-skills --skill add-native -g -a cursor -y`
Gemini CLI: `npx skills add microsoft/power-platform-skills --skill add-native -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add microsoft/power-platform-skills`

## Description

Public entry point for native device capabilities and native controls, camera, image picker, barcode/QR scanner, document picker, file picker, secure storage, file system, sharing, haptic feedback, PDF generation/viewing, pen/signature capture, background GPS/geolocation tracking, or supported local file workflows, in a Power Apps mobile app. Also owns routing to internal camera/PDF/pen/geolocation implementation helpers and the guidance boundary between native wrappers and Dataverse File/Image host controls.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

> **Plugin check**: Run `node "${PLUGIN_ROOT}/scripts/check-version.js"` - if it outputs a message, show it to the user before proceeding.

**📋 Shared instructions: [shared-instructions.md](${PLUGIN_ROOT}/shared/shared-instructions.md)**, read first.

**Working directory:** before any project read or command, execute
[native-artifact-compatibility.md Step 0](${PLUGIN_ROOT}/shared/references/native-artifact-compatibility.md#0-bind-every-operation-to-the-app-root).
Resolve `--working-dir` / owner context there; use the resolved absolute root for
every shell call and file tool, not a previous shell's cwd.

# Add Native Capability

**Entry routing:** use the shared [App feature entry points](../../shared/shared-instructions.md#app-feature-entry-points)
preflight before the workflow below.

The leaf generates typed wrappers under `src/native/` for native capabilities that
the upstream template already ships. Screens import the wrapper instead of touching
Expo modules directly, so the discriminated-union result contract stays consistent.

## Hard rules, do NOT cross these lines

The rest: https://github.com/microsoft/power-platform-skills/blob/HEAD/plugins/mobile-apps/skills/add-native/SKILL.md
