Keyframer Inspector
Give your agent eyes for motion: record, slow down and test animations in mobile apps
Installation
Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).
@keyframerdev/inspectorclaude mcp add keyframer-inspector -e 'KEYFRAMER_VITALS_READ_KEY=<your keyframer_vitals_read_key>' -- npx -y @keyframerdev/inspector@0.4.0 mcp
{
"mcpServers": {
"keyframer-inspector": {
"command": "npx",
"args": [
"-y",
"@keyframerdev/inspector@0.4.0",
"mcp"
],
"env": {
"KEYFRAMER_VITALS_READ_KEY": "<your keyframer_vitals_read_key>"
}
}
}
}
Variables d'environnement
KEYFRAMER_VITALS_READ_KEYsecret Optional: a Motion Vitals workspace read key (kfw_...) for field_problems and field_compare. Every other tool works without it.
Documentation
Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.
Keyframer Inspector
A motion debugger for apps. Every animation, with the line of code that started it, what it cost, and why frames dropped, recorded on the device and scrubbed like a video. Tune a duration or a spring and write the numbers back to your source. Hand the recording to a coding agent over MCP, or gate pull requests on it in CI.
https://github.com/user-attachments/assets/81d909d3-64fb-431b-a06f-1d20da5d5952
This repository holds the SDKs that go into your app, for every platform, under MIT.
| Platform | Folder | Install |
|---|---|---|
| React Native (Reanimated) | react-native/ | npm i -D @keyframerdev/inspector |
| iOS (UIKit) | ios/ | Swift Package Manager: https://github.com/keyframer-dev/inspector |
| Android (Views) | android/ | debugImplementation("dev.keyframer:keyframer-inspector:<version>") |
| Flutter | flutter/ | flutter pub add keyframer_inspector |
The apps connect to Keyframer Inspector, the desktop app (below). React Native apps can also use the panel inside Expo's dev tools, no desktop app needed.
Quick start
React Native. Add the Babel plugin in development (before react-native-worklets/plugin), connect,
then press shift+m in Metro and open @keyframerdev/inspector. The
npm README has the details, bare React Native
included, and react-native/example is an Expo app with it all set up.
// babel.config.js (Expo)
plugins: process.env.NODE_ENV !== 'production' ? ['@keyframerdev/inspector/babel'] : []
// your root layout
if (__DEV__) require('@keyframerdev/inspector/devtools').connectDevTools({ app: 'MyApp' })
iOS.
import KeyframerInspector
#if DEBUG
KeyframerInspector.start() // simulator: ws://127.0.0.1:8790
KeyframerInspector.start(.init(host: "192.168.1.20")) // a device: the Mac's LAN address
#endif
Android.
// Application.onCreate (debuggable builds only)
Keyframer.start(this)
ObjectAnimator.ofFloat(title, View.ALPHA, 0f, 1f).kfTrack("title").start()
Flutter.
void main() => runApp(const KeyframerInspector(app: 'My app', appPackage: 'my_app', child: MyApp()));
Each folder's README covers the API, what is reported and how, and its tests.
The desktop app
Keyframer Inspector for macOS (Apple silicon and Intel) is where every SDK connects. Download it from Releases. It is free, signed and notarized, and keeps itself up to date.
- Every platform, one place. iOS, Android, Flutter and React Native apps connect to it on
ws://<your Mac>:8790: simulators and emulators on their own, devices on the same network with the address the status bar shows. Several apps at once, with a switcher. - The panel. Record, then drag to scrub: the app follows, back to the screen it was on. Tracks show every animation as segments you can click to tune (duration, delay, spring) live, then apply the numbers to your source. Problems come ranked by the frames they cost, each with where it is, what was running and the fix. Compare two sessions, before and after a change. Open any step in Cursor, VS Code, Zed or Xcode.
- An MCP server for coding agents. Built in, one switch in Settings, and nothing else to install.
Claude Code, Codex, Cursor, VS Code, Windsurf, Zed and Claude Desktop can record your app, run its
scenarios, read the trace and the problems, and take screenshots. With
checkandrecheckan agent runs the fix loop: measure, change the code, measure again, until the problems are gone and the motion still works. Settings shows the setup for each client; for Claude Code:claude mcp add --transport http keyframer-inspector http://127.0.0.1:8789/mcp - A recordings library. Recordings (
.kfrec.json) from the panel, from testers' devices or from share links land in one folder. Double-click one to open it; share links open in the app. - In the menu bar. Closing the window keeps the relay running. The menu shows the connected apps and the MCP server, with switches for the server and for launching at login.
- Updates on its own. It checks after launch and every six hours, downloads in the background and installs when you restart or quit. Every update is signed, and the app installs nothing else.
- Local. Recordings, the relay and the MCP server stay on your Mac. Nothing leaves it unless you make a share link.
Protocol
Every SDK speaks one wire protocol, protocol/inspector.ts: hello, the
signals an app exposes, animation events with their call sites, frames, screens, recordings, and what
an editor sends back (record, scrub, overrides, scenarios). A new platform needs only to speak it.
Issues and contributions
Issues for any platform, the desktop app and the npm package go here. This repository is published from Keyframer's own; pull requests are welcome, and land here once merged there.
License
MIT for everything in this repository (LICENSE). The desktop app is free and closed
source. In the npm package, what runs in your app is MIT (its source is react-native/), and the tools
(the CLI, the MCP server and the panel) are under the Functional Source License; see its
LICENSE.md.
Questions fréquentes
Qu'est-ce que Keyframer Inspector ?
Give your agent eyes for motion: record, slow down and test animations in mobile apps
Comment installer Keyframer Inspector ?
Il s'exécute sur votre machine. Dans Claude Code : claude mcp add keyframer-inspector -e 'KEYFRAMER_VITALS_READ_KEY=<your keyframer_vitals_read_key>' -- npx -y @keyframerdev/inspector@0.4.0 mcp. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.
Faut-il une clé API pour Keyframer Inspector ?
Oui. Il attend KEYFRAMER_VITALS_READ_KEY, à renseigner dans sa configuration.
Keyframer Inspector est-il open source ?
Oui. Son code est sur GitHub sous licence MIT.
Qui maintient Keyframer Inspector ?
Il est publié par keyframer-dev. AI.tn le référence sans le maintenir ni le recommander.
Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.