← Files 60fpsARCHIVED FILE

.codex-plugin/plugin.json

3.76 KB · Nov 11, 2026 · 12:16 UTC

↓ Download file

See the change to this file →

{
  "author": {
    "name": "Rishi Deep"
  },
  "description": "60fps is a library of 2,000+ real iOS app interactions, recorded from shipping apps and broken down so you can build them.\n\nSearch in plain language, like \"springy bottom sheet\" or \"pull to refresh with haptics\", and get back matching shots with the app, the gesture, and the motion vocabulary that describes them. Open one for a breakdown of the motion: what triggers it, what moves and in what order, with what timing and easing, plus keyframes from the video. Where a bespoke recreation exists, you can pull compile-checked SwiftUI for it.\n\nIt answers the question a reference video cannot: not just what an interaction looks like, but what it is actually doing.\n\nRead only. It never writes anything and never acts on your behalf.",
  "interface": {
    "capabilities": [],
    "category": "Developer Tools",
    "composerIcon": "./assets/logo.png",
    "defaultPrompt": [
      "Find a springy bottom sheet interaction and break down its motion",
      "Show me how iOS apps do pull to refresh with haptics",
      "Give me the SwiftUI for a card that expands into a full screen view"
    ],
    "developerName": "Rishi Deep",
    "displayName": "60fps",
    "logo": "./assets/logo.png",
    "longDescription": "60fps is a library of 2,000+ real iOS app interactions, recorded from shipping apps and broken down so you can build them.\n\nSearch in plain language, like \"springy bottom sheet\" or \"pull to refresh with haptics\", and get back matching shots with the app, the gesture, and the motion vocabulary that describes them. Open one for a breakdown of the motion: what triggers it, what moves and in what order, with what timing and easing, plus keyframes from the video. Where a bespoke recreation exists, you can pull compile-checked SwiftUI for it.\n\nIt answers the question a reference video cannot: not just what an interaction looks like, but what it is actually doing.\n\nRead only. It never writes anything and never acts on your behalf.",
    "privacyPolicyURL": "https://60fps.design/privacy",
    "shortDescription": "Search real iOS interactions",
    "supportURL": "https://60fps.design/mcp",
    "termsOfServiceURL": "https://60fps.design/terms",
    "websiteURL": "https://60fps.design/mcp"
  },
  "name": "app-6a6f3e5f82a08191bc0493c63a07eb5f",
  "version": "1.2.2",
  "extensions": {
    "com.openai": {
      "publication": {
        "release_notes": "Version 1.2.2 is version 1.2.1, which was approved, with the MCP server declared in the package (.mcp.json, https://mcp.60fps.design/mcp), as the new package upload requires. The server, its six tools and their annotations are unchanged.\n\nVersion 1.2.1 answers the review of 1.2.0 on tool annotations.\n\nAll six tools set every hint explicitly, none null: readOnlyHint true, destructiveHint false, openWorldHint false. The tools are 60fps_search_shots, 60fps_list_filters, 60fps_get_shot, 60fps_get_related_shots, 60fps_get_motion_breakdown and 60fps_get_motion_code.\n\nRead only, true: every tool only retrieves data from the 60fps catalog. None creates, changes, sends, deletes or queues anything. The daily usage count on 60fps_get_motion_breakdown and 60fps_get_motion_code is our own server-side metering, not a change made by or for the user.\n\nDestructive, false: nothing is ever deleted, overwritten, cancelled or revoked.\n\nOpen world, false: every tool is confined to our bounded catalog of 2,000+ recorded iOS interactions. No web search and no arbitrary URLs. Storyboard frames in 60fps_get_motion_breakdown are our own images served from our image CDN.\n\nAlso in this version: the app icon is now part of the package, and the server sends short instructions so answers stay plain and easy to read."
      }
    }
  },
  "mcpServers": "./.mcp.json",
  "apps": "./.app.json"
}

SHA-256: 2afd0101561210c21beb9f8af497456ddc9f9fa3916b689194caa4fb57bd65b7