Skip to main content
skill CX Codex

reanimated-skia-performance — Claude Code skill for RN animations

A skill that writes and reviews fast React Native animations and 2D graphics on Reanimated v4 and Skia. Useful when the UI stutters or you need custom drawing.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add andreev-danila/skills --skill reanimated-skia-performance -a claude-code
Open on GitHub

What reanimated-skia-performance does

The skill sets the rules an agent follows when writing or reviewing animation code: state stays on the UI thread via useSharedValue, useDerivedValue and worklets, and the declarative Reanimated v4 API replaces legacy Animated. App code should call shared.get() and shared.set() rather than touch .value, which keeps React Compiler happy. JS-to-UI crossings are kept to a minimum, and runOnJS or scheduleOnRN is reserved for side effects that cannot be avoided.

With Skia the rule is blunt: no React render per frame. A SharedValue goes straight into props and uniforms, the runtime effect is compiled once with useMemo, and shader time comes from useClock wrapped in useDerivedValue. The skill also covers the usual jobs — gesture handling through the Gesture Builder API, CSS transitions and keyframes in Reanimated v4, Layout Animations for mount and unmount, and a __DEV__ slider panel for tuning configs. A pitfalls list names the common ones: reading a shared value during render, allocating arrays or paths every frame, a uniform declared in the shader but never passed.

Four reference files ship with it: Reanimated v4 patterns, Skia shaders, the dev tuning panel, and a performance checklist. Worth installing if your project already runs react-native-reanimated v4 or newer alongside @shopify/react-native-skia — on older Reanimated the CSS transition and keyframe examples will not compile.

What it helps with

  • find out why an animation stutters and where the JS thread stalls
  • move a pan gesture onto the Gesture Builder API and shared values
  • draw a Skia Canvas scene with a shader driven by time
  • tune spring configs or shader uniforms with dev-mode sliders
  • replace legacy Animated with the declarative Reanimated v4 APIs

Example prompts for the agent

  • Rewrite this screen with Reanimated v4: pan gesture via Gesture Builder, state in shared values, no runOnJS inside onUpdate
  • Build a Skia shader with an animated time uniform, compile the effect once with useMemo
  • Add a dev panel with sliders for tuning the spring config, keep the panel in its own component

How to install reanimated-skia-performance

1Skills CLI (Vercel)

npx skills add andreev-danila/skills --skill reanimated-skia-performance -a claude-code

2Manually: put the files in place

~/.claude/skills/reanimated-skia-performance/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/reanimated-skia-performance/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about reanimated-skia-performance

How do I install reanimated-skia-performance in Claude?

Run npx skills add andreev-danila/skills --skill reanimated-skia-performance -a claude-code. The skill file lands at ~/.claude/skills/reanimated-skia-performance/SKILL.md.

What does reanimated-skia-performance do?

It guides an agent through writing and reviewing React Native animations and 2D graphics on Reanimated v4 and Skia: gestures, springs and transitions, Canvas drawing, shaders with animated uniforms, and diagnosing jank.

Which libraries does the skill need?

react-native-reanimated v4 or newer and @shopify/react-native-skia. On an older Reanimated the CSS transition and keyframe examples will not work.

Similar skills

Everything for Mobile →

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor