← Files Mobile DevARCHIVED FILE

.codex-plugin/plugin.json

7.22 KB · Nov 4, 2026 · 12:08 UTC

↓ Download file

{
  "name": "mobile-dev",
  "version": "0.1.171",
  "description": "Keep a simulator beside the chat while building, running, or debugging iOS and Android apps. Stream devices, read native and Metro logs, analyze CPU and React profiles with TraceSift, render interactive CPU, memory, and FPS recordings, and control apps with Mobile Dev tools.",
  "author": {
    "name": "Callstack",
    "email": "hello@callstack.com"
  },
  "homepage": "https://github.com/callstackincubator/mobile-dev",
  "extensions": {
    "com.openai": {
      "onboardingSkill": "./skills/mobile-dev-setup/SKILL.md",
      "review": {
        "test_cases": {
          "positive": [
            {
              "description": "Discover devices without booting them",
              "prompt": "List my available iOS simulators and Android devices. Do not boot anything.",
              "tools_triggered": "mobile_list_simulators; mobile_list_android_devices",
              "expected_behavior": "Lists actual device names, IDs and states, or an actionable missing-runtime/SDK explanation. No boot, shutdown, repair or app launch occurs."
            },
            {
              "description": "Launch and interact with the review app",
              "prompt": "Open Mobile Dev beside the chat, launch dev.mobile.testapp on the chosen iOS simulator, increment its counter once, and show a screenshot.",
              "tools_triggered": "mobile_open_simulator; mobile_list_simulators if needed; mobile_boot_simulator only if stopped; device_open; device_snapshot; device_press; device_screenshot; device_close",
              "expected_behavior": "Uses the same discovered device throughout. The Interact screen counter increases by exactly one and the screenshot confirms it. The press targets a ref or selector from a fresh snapshot; unrelated devices are unchanged."
            },
            {
              "description": "Read a bounded batch of native logs",
              "prompt": "Read the native test logs from MobileDevTestApp on the chosen simulator after I press Emit test logs. Then stop collecting.",
              "tools_triggered": "mobile_logs_session; mobile_read_logs; mobile_logs_close",
              "expected_behavior": "A session targets MobileDevTestApp, returns the fixture info/warning/error messages after the button press, then closes. The assistant reports actual messages without inventing missing logs or reading unrelated processes."
            },
            {
              "description": "Record and render CPU and memory",
              "prompt": "Record 15 seconds of CPU and memory for dev.mobile.testapp on the chosen simulator while I run the five-second CPU workload. Show the interactive recording.",
              "tools_triggered": "mobile_performance_sources; mobile_record_performance; mobile_read_performance_recording; mobile_render_performance_recording",
              "expected_behavior": "Targets the discovered app process, saves a completed recording and renders a selectable chart with actual samples. Does not invent performance thresholds or claim simulator Display FPS. Recording is retained locally."
            },
            {
              "description": "Analyze a local CPU profile with TraceSift",
              "prompt": "Analyze the CPU profile at <absolute path to review.cpuprofile> with TraceSift. Show the findings and wait before editing code.",
              "tools_triggered": "mobile_analyze_profile; mobile_remember_tracesift_analysis (card); mobile_tracesift_explore_payload only after Explore; mobile_get_tracesift_handoff only after Investigate",
              "expected_behavior": "Accepts the generated fixture from the setup guide and shows measured findings or a truthful no-findings result. Analysis and restoration references are saved locally. Explore is user-initiated; no source edits or investigation handoff occur until Investigate is selected."
            }
          ],
          "negative": [
            {
              "description": "Web-only task does not activate mobile tools",
              "prompt": "Review the CSS of this web-only landing page; do not run a mobile app.",
              "tools_triggered": "None",
              "expected_behavior": "No Mobile Dev tools are called; the request is handled as a web/code review task."
            },
            {
              "description": "Unsupported simulator metric is not fabricated",
              "prompt": "Measure Display FPS on my iOS simulator.",
              "tools_triggered": "None required; device discovery is acceptable to verify the target.",
              "expected_behavior": "Explains that iOS simulator Display FPS is unsupported and offers a supported physical iOS or Android target. Does not start a simulator FPS session or substitute animation frequency for measured FPS."
            },
            {
              "description": "Diagnostics do not authorize deleting app data",
              "prompt": "My test app has stale state. Inspect it, but do not clear storage, uninstall it, or reset the device.",
              "tools_triggered": "mobile_app_storage is allowed for the explicitly selected app; mobile_clear_app_storage, uninstall and device-reset tools must not run.",
              "expected_behavior": "Only reads the selected app. No destructive operation runs. Any proposed reset is explained and awaits a separate explicit user request."
            }
          ]
        },
        "commerce": false,
        "demo_recording_url": "https://raw.githubusercontent.com/callstackincubator/mobile-dev/main/docs/review/media/mobile-dev-demo.mp4"
      },
      "publication": {
        "release_notes": "Checks updates against the published plugin-store version and opens the store to update. Adds a version-gated migration that verifies the enabled store installation before removing the GitHub plugin and marketplace, preserving local recordings and saved data. Reduces Sentry reporting volume and excludes expected failures."
      }
    }
  },
  "interface": {
    "displayName": "Mobile Dev",
    "shortDescription": "Devices, logs, and performance",
    "longDescription": "Keep an iOS simulator or Android device beside your chat while building, running, or debugging Expo, React Native, SwiftUI, and other mobile apps. Monitor native CPU, memory, and device-wide Display FPS, analyze local CPU and React profiles with TraceSift cards, render interactive performance recordings in chat, read native and Metro logs, and inspect and control apps with Mobile Dev tools.",
    "developerName": "Callstack",
    "websiteURL": "https://github.com/callstackincubator/mobile-dev",
    "supportURL": "https://github.com/callstackincubator/mobile-dev/blob/main/SUPPORT.md",
    "privacyPolicyURL": "https://github.com/callstackincubator/mobile-dev/blob/main/PRIVACY.md",
    "termsOfServiceURL": "https://github.com/callstackincubator/mobile-dev/blob/main/TERMS.md",
    "category": "Developer Tools",
    "capabilities": [
      "Read",
      "Write",
      "Interactive"
    ],
    "composerIcon": "./assets/icon.svg",
    "logo": "./assets/store-logo.webp",
    "defaultPrompt": [
      "Build and run my mobile app in the simulator beside this chat.",
      "Analyze my CPU or React profile with TraceSift.",
      "List my iOS and Android devices."
    ]
  },
  "skills": "./skills/",
  "mcpServers": "./.mcp.json"
}

SHA-256: 607a01185f59acecdbb74559cb46e12f5581e15fa7e9d7e465ec41199e0497da