npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@nstudio/nativescript-agent-skills

v1.1.1

Published

Agent Skills for NativeScript (iOS/Android native APIs from TypeScript, Angular zoneless patterns, SceneKit, Canvas, Liquid Glass, location, formatting, tooling). Works with Claude Code, Cursor, Codex, Copilot, Gemini CLI and any Agent Skills client; ship

Readme

NativeScript Agent Skills

npm

Reusable, code-first Agent Skills for AI coding agents (Claude Code, Cursor, Codex, Copilot, Gemini CLI and any other client of the open standard) working on NativeScript projects. Each skill is a folder with a SKILL.md: a one-line description the agent matches on, then concrete TypeScript that has actually run, plus the pitfalls around it.

Install

Pick the door that matches your setup — they all serve the same skills/ tree.

| You use… | Install | Update | |---|---|---| | Any agent (Claude Code, Cursor, Codex, Copilot, Gemini, Windsurf, …) | npx skills add nstudio/nativescript-agent-skills (add --copy to vendor real files, -g for global) | npx skills update | | Claude Code plugin | /plugin marketplace add nstudio/nativescript-agent-skills then /plugin install nativescript-agent-skills@nstudio | /plugin update nativescript-agent-skills@nstudio | | npm, vendored & pinned in your repo | npx @nstudio/nativescript-agent-skills install --agent claude,agents (writes .nativescript-agent-skills.json) | npx @nstudio/nativescript-agent-skills@latest update (check shows stale/modified files) | | TanStack Intent | npm i -D @nstudio/nativescript-agent-skills && npx @tanstack/intent@latest install | npm update @nstudio/nativescript-agent-skills | | By hand | cp -R skills/ns-liquid-glass-panel <project>/.claude/skills/ (or ~/.claude/skills/) | cp again |

Details, trade-offs and the release process: docs/DISTRIBUTION.md.

Skills

| Skill | Use it when… | |---|---| | ns-ios-scenekit-from-typescript | you need real-time 3D on iOS: SCNView in a custom View, textures, Metal shader modifiers, hit testing, camera framing | | ns-ios-cadisplaylink-render-loop | you need a 60fps JS tick on iOS — the CADisplayLink target that actually fires under NativeScript | | ns-ios-framework-typings | TS can't find SCNView/CLLocation/CMMotionManager… — reference the framework d.ts, grep exact selectors, read the SDK header | | ns-custom-view-platform-split | you're building a custom view with a different native renderer per platform (common/ios/android/d.ts, shared gestures + Properties, Angular registration) | | ns-android-canvas-custom-view | you need custom 60fps 2D drawing on Android (android.view.View subclass, onDraw, Choreographer, batching + perf findings) | | ns-android-java-interop-gotchas | you hit "Cannot marshal JavaScript argument", "Failed resolving method", "Class constructor … cannot be invoked without 'new'", or wrong 8-digit hex colours on Android | | ns-liquid-glass-panel | you want a frosted/glass panel: UIGlassEffect on iOS 26, UIBlurEffect earlier, translucent drawable on Android; the GridLayout layering trick | | ns-ios-bottom-sheet-native | you want a real UISheetPresentationController sheet (detents, grabber, glass) — and when an in-page panel is the better call | | ns-no-intl-native-formatting | numbers/dates format wrong because the iOS runtime has no Intl — NSDateFormatter/SimpleDateFormat with time zones | | ns-corelocation-direct | you need location/heading without a plugin: CLLocationManager delegate class, Android LocationManager, simulator setup | | ns-clgeocoder-place-and-timezone | you need "what place is this coordinate and what time is it there" — CLGeocoder + CLPlacemark.timeZone, Android Geocoder, ocean fallback | | ns-haptics-direct | you want tactile feedback: UIFeedbackGenerator / VibrationEffect | | ns-angular-zoneless-native-choreography | you're wiring zoneless Angular signals to native views with polished motion (animate() intros, dimming, crossfades, SegmentedBar on iOS + custom animated tabs on Android) | | ns-ios-simulator-automation | you're verifying an app on the iOS simulator/Android emulator from the shell: screenshots, frame-by-frame video, taps/swipes, locating tap targets, fake location, permissions, logs | | ns-animated-panel-height | a panel/sheet body must grow/shrink smoothly with its content on both platforms (explicit measure + animated height; Android layoutChanged/ScrollView traps) | | ns-app-icons-and-launch-assets | the app still shows the template icon/launch screen — generate and install icons on both platforms (bundled scripts/make-icon.py, scripts/install-icons.sh) | | ns-iss-tracking-satellite-js | you need live satellite/ISS position, ground track, sunlit state, or visible-pass predictions | | ns-solar-terminator-math | you need the sun from the clock: subsolar point, elevation, day phase, sunrise/sunset — dependency-free | | ns-webpack-angular-project-notes | you're setting up or debugging an ns create --ng project (tsconfig, assets, ATS, plist/manifest, log noise) | | ns-angular-vite-migration | you're moving a NativeScript Angular project from webpack to @nativescript/vite (working version set, bundled analogjs patch, configs, NG0210 + Android FORTIFY launch crashes) | | ns-norrix-ota | you're adding OTA updates via @norrix/client-sdk — the peer-dep install trap, the wrapper util (dev gating, deferred init, sync()), and the overlay-teardown-before-reload rule that prevents the post-apply black screen | | ns-input-accessory | you're docking a chat/composer/search bar to the keyboard with @nativescript/input-accessory in any flavor — the ScrollView + container + TextView contract, setup() with real geometry (the ≤50pt → 48 squeeze), line-height text centering via style padding, tab-bar and IQKeyboardManager exclusions, Android gesture-nav inset, suspend/restore around sheets (bundled 1.0.3 patch) |

Verified environment: macOS, Xcode 26.5, iOS 26.5 simulator, Android emulator Pixel 6a API 35 (SwiftShader), NativeScript CLI 9.1, @nativescript/core 9.1.

Quality

  • npm run lint — Agent Skills spec lint; npm run validate — TanStack Intent's validator. Both run in CI.
  • evals/ — a skillgrade suite with one realistic task per skill, executable graders where the code can run headless, and a check that the agent actually discovered the skill. See evals/README.md and the latest report in docs/EVALUATION.md.

Contributing a skill

skills/<name>/SKILL.md with name (== folder), description starting "Use when …", license, metadata; code that has run, with the environment it was verified in; keep it under ~150 lines and put large helpers in scripts/ or assets/. Add a task to evals/tasks.mjs. npm run check before opening a PR.

License

MIT © nstudio