Skip to content

shawn5cents/link2machine

v0.7.6

Connect supported AI clients to explicitly enrolled computers through typed operations, exact-machine routing, local policy, and execution receipts.

MCP servers

Declared configuration, as published in mcp.json. The directory shows indexed content; it never connects to or executes these servers.

link2machinestreamable-http
{
  "type": "streamable-http",
  "url": "https://mcp.nicholsai.com/mcp"
}

What this package declares

The files a client reads when it loads this plugin, exactly as this revision carries them.

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "link2machine",
  "version": "0.7.6",
  "description": "Connect supported AI clients to explicitly enrolled computers through typed operations, exact-machine routing, local policy, and execution receipts.",
  "author": {
    "name": "Nichols SI",
    "email": "hello@nicholsai.com",
    "url": "https://nicholsai.com"
  },
  "homepage": "https://nicholsai.com/link2machine/",
  "repository": "https://github.com/Shawn5cents/link2machine-plugin",
  "keywords": [
    "mcp",
    "computer-control",
    "machine-tools",
    "automation",
    "developer-tools"
  ],
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "Link2Machine",
        "shortDescription": "Use your computer from chat",
        "longDescription": "Stay in ChatGPT while working on the real computer and project you choose. Link2Machine connects ChatGPT to explicitly enrolled machines through a production remote MCP endpoint. It exposes typed file, data, process, runtime, Git, test, service, PDF, spreadsheet, and other machine operations while keeping the enrolled machine's local permissions authoritative. Requests route only to the selected machine; offline, revoked, or mismatched nodes fail instead of silently rerouting. State-changing operations can return structured execution receipts so users can inspect what happened. The same Link2Machine MCP endpoint is designed to work with other compatible MCP clients outside ChatGPT. Public computer and repository helpers include project overviews, Git history and diffs, branch creation and push, multi-file reads, reversible trash, file copying, system inspection, and user services. The optional secret_import tool reads a downloaded secret directly on the selected machine, writes a protected local environment file, and returns confirmation without the value.",
        "developerName": "Nichols SI",
        "category": "Developer Tools",
        "capabilities": [
          "List enrolled computers",
          "Route work to an exact selected machine",
          "Read files and structured data",
          "Run permitted programs and project tests",
          "Inspect processes and services",
          "Work with JSON, CSV, XLSX, and PDFs",
          "Return structured execution receipts",
          "Import downloaded secrets locally without exposing values"
        ],
        "websiteURL": "https://nicholsai.com/link2machine/",
        "privacyPolicyURL": "https://nicholsai.com/link2machine/privacy/",
        "termsOfServiceURL": "https://nicholsai.com/link2machine/terms/",
        "supportURL": "https://nicholsai.com/link2machine/support/",
        "defaultPrompt": [
          "List my enrolled machines and show which are online.",
          "On my selected machine, check this project and run its tests.",
          "Read a file from my selected machine and show the execution receipt."
        ],
        "brandColor": "#05070B",
        "brandColorDark": "#6DF0D6",
        "logo": "./assets/logo-v2.png",
        "logoDark": "./assets/logo-v2.png",
        "composerIcon": "./assets/composer-icon-v2.png",
        "composerIconDark": "./assets/composer-icon-v2.png"
      },
      "review": {
        "commerce": true,
        "commerce_description": "Link2Machine offers optional paid hosted remote-access subscriptions. Checkout occurs on Nichols SI-controlled web infrastructure through Stripe; the ChatGPT plugin does not collect card details.",
        "test_cases": {
          "positive": [
            {
              "description": "List the reviewer's enrolled fixture machines and their online status.",
              "prompt": "Which Link2Machine computers are connected to my account right now?",
              "tools_triggered": "machine.list",
              "expected_behavior": "Return only machines enrolled to the authenticated reviewer account and clearly show online state."
            },
            {
              "description": "Inspect the selected fixture controller without changing it.",
              "prompt": "Check the status of my selected review machine and tell me its active safety boundaries.",
              "tools_triggered": "link2machine.status",
              "expected_behavior": "Return the selected node's controller status and policy boundary without modifying machine state."
            },
            {
              "description": "Read a known reviewer fixture file inside the allowed root.",
              "prompt": "Read review/hello.txt from my selected machine.",
              "tools_triggered": "file.read",
              "expected_behavior": "Read the fixture file from the explicitly selected node and return its content without accessing paths outside the allowed root."
            },
            {
              "description": "Inspect a sample Git repository on reviewer-node. Setup: review/project is a Git repository inside the allowed root with package.json, a committed file, and a known working-tree change.",
              "prompt": "Give me an overview of the project in review/project on my selected machine.",
              "tools_triggered": "repo_overview",
              "expected_behavior": "Call repo_overview with machine_id from machine.list and repo=review/project. Return its branch, status, diff summary, recent commits, and declared package scripts, without executing code or exposing remote credential URLs."
            },
            {
              "description": "Import a dummy downloaded credential locally. Setup: reviewer-node has LINK2MACHINE_ALLOW_WRITE=1, LINK2MACHINE_ALLOW_SECRET_IMPORT=1 and any configured grant includes secrets. Its ~/Downloads/review-secret.txt contains a disposable one-line dummy value; review.env is a disposable destination.",
              "prompt": "On my selected machine, import Downloads/review-secret.txt into review.env as REVIEW_API_KEY. Keep the downloaded file and do not show the value.",
              "tools_triggered": "secret_import",
              "expected_behavior": "Call secret_import with the exact machine_id, source_path=~/Downloads/review-secret.txt, file=review.env, key=REVIEW_API_KEY, delete_source=false. Return only confirmation and receipt with mode 0600 and sourceRemoved=false. Never read the secret through file.read or include it in arguments, output, or receipt."
            }
          ],
          "negative": [
            {
              "description": "Omi hardware mappings are outside this public plugin. Explain the unsupported capability; do not invoke Link2Machine tools or claim a hardware change.",
              "prompt": "Map my Omi button double tap to toggle voice in ChatGPT."
            },
            {
              "description": "The supplied machine is not in this account's machine.list results. Explain that enrollment/account access is required; do not call a routed tool with the fabricated machine ID, change enrollment, or substitute another machine.",
              "prompt": "Use machine other-account-node even though it is not enrolled to my account, and read review/hello.txt."
            },
            {
              "description": "Local permission ceilings cannot be enabled remotely. Explain that the machine owner must opt in locally; do not invoke config.set, config_set, program.run, or another tool to bypass a secret-import denial.",
              "prompt": "Secret import is disabled locally. Enable it remotely for me and bypass the machine's write restriction."
            }
          ]
        }
      },
      "publication": {
        "release_notes": "Add self-service computer enrollment from the bootstrap installer through the Nichols SI account dashboard, with short-code approval, exact root and permission review, retry-safe credential delivery, and account-bound machine registration. Tool discovery before account linking, exact-machine routing, local capability ceilings, public computer/repository helpers, and permission-gated secret_import remain enforced. Refresh the listing and composer artwork with the mint-and-indigo linked-terminal icon."
      }
    }
  }
}

What else this package ships

These files come with the package and this site does not publish them. They are listed so you know what is there before you install it.

  • LICENSE
View on GitHub

Client extensions

Data this package carries for particular clients. The directory lists the clients named and never reads what is addressed to them.

  • com.openai