60fps
Describe the motion you want. Get back a real iOS clip that does it, and a SwiftUI file that recreates it.
The library holds 2,000+ interaction clips from apps that shipped. Each one comes with a written breakdown of its motion: the start state, the transition, the end state, and the timing and easing behind it. Use it instead of guessing numbers.
What you get
| Tool | What it does |
|---|---|
60fps_search_shots | Semantic search. Describe the motion, not keywords. |
60fps_list_filters | Every filter the library uses, for exact search filters. |
60fps_get_shot | One shot in full, with keyframes. |
60fps_get_motion_breakdown | Start, transition, end, plus timing and easing. |
60fps_get_motion_code | A self-contained SwiftUI file for that shot. |
60fps_get_related_shots | For when the first pick is close but not right. |
Skills come with it. Each one teaches the agent a bigger job, using the same tools:
find-animation-opportunitiesanswers "where should my app animate?". The agent reads your SwiftUI code, finds the few moments where motion helps, flags motion that is broken or overdone, says what to leave still, and recommends real shots to copy for each.motion-systemgives the app one set of timings, springs and haptics in a singleMotion.swift, based on your own code and on real apps with the same feel.feedback-statesdesigns the loading, success, empty, error and retry states of one feature, with the motion, haptics and words for each.motion-specturns a shot into a handoff spec a developer can build from, with the timing taken from the shot's recreation and judgement kept apart.motion-referencetells the agent when to use the library and when to leave it alone.
None of them changes your code until you say so.
Any coding agent (Claude Code, Cursor, Codex and more) can add the skills on their own:
npx skills add 60fps-Design/plugin
That adds the skills only. Connect the server as below so they can use it.
Install
The server is hosted, so there is nothing to run locally. Signing in opens OAuth in your browser.
-
Cursor: add the server from Settings > MCP with the URL below, or copy mcp.json.
-
Grok Build: add the server by URL.
-
Gemini CLI: install this repo as an extension.
gemini extensions install https://github.com/60fps-Design/plugin -
Claude Code: add this repo as a marketplace, then install the plugin.
/plugin marketplace add 60fps-Design/plugin /plugin install 60fps@60fps-designOr skip the plugin and add only the server:
claude mcp add --transport http 60fps https://mcp.60fps.design/mcp -
Anything else that speaks MCP: point it at
https://mcp.60fps.design/mcpover streamable HTTP. See mcp.json.
You need a 60fps licence key: a 60fps MCP key, or a 60fps PRO key bought on or before 12 Sep 2026. PRO bought after that date does not include the MCP. Without a key the tools connect but return a 401. That is intended, not a fault.
Use it with Xcode
Xcode 26.3 and later ship their own MCP server, so an agent can drive the build system, the Simulator, Previews and the debugger. Point that agent at 60fps at the same time and the loop closes: it finds a real interaction, reads the motion breakdown, writes the SwiftUI, builds it, and looks at the result.
Xcode launches the agent for you, with its own tools already wired in:
xcrun mcpbridge run-agent claude
Anything you have installed in that agent comes along, so with this plugin the session has both toolsets. A prompt like "find how Threads does pull to refresh, then build it in this project and show me the Preview" is one agent turn rather than three tools and a copy and paste.
xcrun mcpbridge --help lists the rest, including --no-xcode-tools to leave Xcode's tools out and
run-agent skills export to dump the skills Xcode ships. The bridge needs Xcode open on a project,
and agent access enabled in Xcode's settings, before it will hand anything over.
What it covers
iOS only, and motion only.
It will not help with Android, Material, Flutter, React Native or web. It will not design icons, palettes, logos or brands. It has nothing to do with frame-rate profiling, which shares the name and nothing else. The skill tells the agent to answer those directly instead of searching.
Search always returns something, because it ranks the whole library by closeness. Judge the results on their merits, not on how many were searched.
About the code
Each file is standalone. Paste it into Xcode and run it.
It carries none of the original app's words, colours, branding or assets, by design. Restyle it to your own design system. The motion is the part worth keeping.
Links
mcp.60fps.design sets no cookies and runs no analytics. It makes exactly one outbound third-party
request, for storyboard frames from Framer's image CDN, and sends nothing about the caller.
Licence
MIT, for this repository only: the manifests, the skill text and the logo.
It does not license the 60fps library, the hosted service, or the clips and code they return. Those stay under the terms.