← Files Offline ProtocolARCHIVED FILE

plugin.json

11.3 KB · Nov 2, 2026 · 13:08 UTC

↓ Download file

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "offline-protocol",
  "version": "1.0.1",
  "description": "Read-only access to the public Offline Protocol developer registry: find SDK packages, resolve installs, read integration guides and plan apps whose devices keep working together locally, for React Native, React web, Python and Rust.",
  "author": {
    "name": "Offline Protocol, Inc.",
    "email": "support@offlineprotocol.com",
    "url": "https://www.offlineprotocol.com"
  },
  "homepage": "https://www.offlineprotocol.com/docs/tools/overview",
  "repository": "https://github.com/Offline-Protocol/offline-protocol-agent-plugins",
  "license": "Apache-2.0",
  "keywords": [
    "offline-first",
    "bluetooth",
    "mesh",
    "react-native",
    "python",
    "identity",
    "sdk"
  ],
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "Offline Protocol",
        "shortDescription": "Build local device workflows",
        "longDescription": "Offline Protocol is an SDK and platform for devices, apps and machines that coordinate directly with each other: phones, handhelds, gateways and site computers exchange messages, shared documents and service calls over Bluetooth LE, local Wi-Fi and a mesh of nearby devices, with a hosted relay when no local path exists. Teams use it to cut cloud round trips and custom integration work, and to keep field work moving when the uplink is slow or down.\n\nThis plugin gives ChatGPT and Codex read-only access to the public Offline Protocol developer registry. Ask which packages fit your app and it looks up SDK packages with their versions, platforms and licenses, product workflows with reference architectures, and integration guides for each area. It resolves the exact install for React Native, React web, Python (PyPI) and Rust (crates.io), explains Bluetooth and local-network permissions, turns an app idea into an architecture plan with a starter template, and previews the files a scaffold would contain.\n\nNew in SDK 0.29: the Python service on a Linux or Mac box starts every transport it is configured for, and its HTTP front lets programs that do not use the SDK call a service on another device with an ordinary HTTP request, carried end to end encrypted. Ask the plugin how to run one service per box or how to call a service on another machine, and it answers from the integration guide.\n\nIt is for developers building or evaluating apps and systems whose devices must coordinate on site.\n\nLimitations: the plugin is read-only and needs no account. It does not create or edit project files; to create a project or add packages, run the Offline Protocol CLI on your computer (offline create, offline init). It does not read your apps' data, and it does not discover, connect to or control physical devices. Starter templates cover React Native and React web. Native Swift and Android packages are early previews (the Android library is a GitHub release download, not on Maven Central), and the firmware leaf crate compiles for microcontrollers but has not run on a board; the plugin says so rather than presenting them as finished or substituting another framework. There is no Flutter package.\n\nLicenses: the Mesh SDK (React Native, Python, Rust) is AGPL-3.0-only, with a commercial license available from Offline Protocol, Inc. The OfflineID SDKs and Proof of Location (beta) are MIT. Shared types and identicons are ISC.",
        "developerName": "Offline Protocol, Inc.",
        "category": "Developer Tools",
        "capabilities": [
          "Search SDK packages, workflows and integration guides",
          "Resolve installs for React Native, React web, Python and Rust",
          "Plan a local-first app or a one-service-per-box deployment",
          "Preview the files a starter template would create"
        ],
        "websiteURL": "https://www.offlineprotocol.com/docs/tools/overview",
        "supportURL": "https://www.offlineprotocol.com/docs/support/faq",
        "privacyPolicyURL": "https://www.offlineprotocol.com/privacy",
        "termsOfServiceURL": "https://www.offlineprotocol.com/legal/developer-terms",
        "defaultPrompt": [
          "Which Offline Protocol packages let two phones share a work order without a server?",
          "How do I let a program on one Linux box call an HTTP service on another box with Offline Protocol?",
          "Plan a React Native app where crew phones hand off a job and sync it to our backend later."
        ],
        "brandColor": "#161616",
        "brandColorDark": "#F2F2F7",
        "composerIcon": "./assets/logo.png",
        "logo": "./assets/logo.png"
      },
      "review": {
        "test_cases": {
          "positive": [
            {
              "description": "Choose packages for an offline handoff between two phones (React Native)",
              "prompt": "Which Offline Protocol packages do I need to hand off orders between two phones without internet in my React Native app?",
              "tools_triggered": "search_workflows, get_workflow, resolve_packages, get_skill",
              "expected_behavior": "Selects the local-handoff workflow (template react-native-mesh-handoff). Resolves one package, @offline-protocol/mesh-sdk 0.29.0, licensed AGPL-3.0-only with a commercial license available from Offline Protocol, Inc., install command npm install @offline-protocol/mesh-sdk@0.29.0. Explains that a handoff keeps a durable record on both devices and completes only when the receiving app commits its decision and returns a receipt (message_delivered alone is not acceptance). From the mesh-networking skill, lists the Android permissions BLUETOOTH_SCAN, BLUETOOTH_ADVERTISE, BLUETOOTH_CONNECT, ACCESS_FINE_LOCATION and NEARBY_WIFI_DEVICES and the iOS NSBluetoothAlwaysUsageDescription and NSLocalNetworkUsageDescription keys. Writes no files."
            },
            {
              "description": "Add OfflineID email sign-in to a React web app",
              "prompt": "Add Offline Protocol email sign-in to my React web app. What do I install and configure?",
              "tools_triggered": "search_packages, get_package, get_skill, resolve_packages",
              "expected_behavior": "Recommends @offline-protocol/id-react 0.2.0 (MIT) with its required @offline-protocol/core 0.1.4 (ISC): npm install @offline-protocol/id-react@0.2.0 @offline-protocol/core@0.1.4, peers react and react-dom >=18 <20. Wrap the app in <OfflineAppProvider appId={APP_ID}> using the app ID (app_...) from the developer portal, kept in .env; use useAuth() and loginWithModal() for the built-in email/OTP login modal, gating the UI on loading."
            },
            {
              "description": "Call an HTTP service on another machine (Python service, SDK 0.29)",
              "prompt": "How do I let a program on one Linux box call an HTTP service on another box with Offline Protocol?",
              "tools_triggered": "search_skills, get_skill",
              "expected_behavior": "Uses the http-front skill. Install pip install 'offline-protocol-sdk[lan,http]==0.29.0' on each box and run the Offline Protocol service with its HTTP front. The provider registers a service by name with a callback URL; the client calls it as a plain HTTP request with the Host <service>.<provider off1 address>.offline.protocol.internal, carried end to end encrypted. The provider's callback receives X-Offline-Protocol-Sender and must decide who may call, because the front does not authorize. Bodies are limited to 128 KiB each way, and a 504 deadline_exceeded does not mean the request did not run. Writes no files."
            },
            {
              "description": "Plan a nearby chat app",
              "prompt": "Plan a nearby chat app with Offline Protocol and list the packages and screens.",
              "tools_triggered": "generate_architecture, get_workflow",
              "expected_behavior": "generate_architecture returns the Offline ID Mesh Chat plan for React Native (template react-native-social), with nearby-chat as the first alternative. Packages: @offline-protocol/id-react-native 0.3.3 (MIT), @offline-protocol/mesh-sdk 0.29.0 (AGPL-3.0-only, commercial license available), @offline-protocol/identicons-native 0.2.1 (ISC) and @offline-protocol/core 0.1.4 (ISC). Screens: sign in or sign up with Offline ID, nearby peers, connection requests with manual accept, a direct 1:1 chat thread, and a groups list with create group and an MLS-encrypted group thread."
            },
            {
              "description": "Design retained delivery of sensor readings to a backend",
              "prompt": "With Offline Protocol, how should my app deliver sensor readings to our backend when devices are offline for hours?",
              "tools_triggered": "search_capabilities, search_workflows, get_workflow, get_skill",
              "expected_behavior": "Selects the backend-delivery workflow (template react-native-mesh-event-delivery, package @offline-protocol/mesh-sdk). Describes a durable local outbox that survives outages and restarts, an event ID created once in the same write as the event, idempotent batched upload that the backend deduplicates on that ID, explicit backend acceptance before an event leaves the pending count, failures classified as accepted, rejected or retry with backoff, and an optional nearby collector over BLE."
            }
          ],
          "negative": [
            {
              "description": "Unsupported framework: there is no Flutter package. resolve_packages returns supported: false with the reason, and generate_architecture returns no plan for a Flutter prompt. The plugin should state the gap and offer React Native (iOS and Android), without inventing a package.",
              "prompt": "Give me the Offline Protocol Flutter SDK and set it up in my Flutter app."
            },
            {
              "description": "Out of scope: the plugin helps build apps and cannot discover, connect to or message real devices. It should say so and offer to plan a nearby chat app instead.",
              "prompt": "Use Offline Protocol to find the phones near me right now and send them a message."
            },
            {
              "description": "Incompatible platform: the Mesh SDK npm package supports React Native only. resolve_packages reports that @offline-protocol/mesh-sdk supports react-native, not web; the plugin should report this rather than present a React Native plan as a web integration, and may mention the Python service for servers and desktops or the web identity packages where relevant.",
              "prompt": "Run Offline Protocol mesh networking in my browser web app."
            }
          ]
        },
        "demo_recording_url": "https://github.com/Offline-Protocol/offline-protocol-agent-plugins/releases/download/v0.1.1/offline-protocol-demo.mp4",
        "commerce": false,
        "commerce_description": "This plugin does not sell products or process payments."
      },
      "publication": {
        "countries": [],
        "release_notes": "1.0.1: covers Offline Protocol SDK 0.29.0. The registry now pins Mesh SDK 0.29.0 and adds the Python service with its HTTP front (programs that do not use the SDK call a service on another device with plain HTTP, end to end encrypted), Python and Rust packages for servers and desktops, and the native Swift and Android previews. Same read-only endpoint and 15 tools."
      },
      "apps": "./.app.json"
    }
  }
}

SHA-256: 18aa60b0f4fcce65a90f36dd5e12e821ff04c6c1f1b5d31c18f80719a33bae39