Developer documentation

Developer Docs

Build plugins for version 1.0.0 build 6 that add UI, read and mutate the live workspace, run requests, chain responses, and pass data between plugins.

Plugin shape

A plugin is a CommonJS JavaScript file. It exports a manifest, optional transformApp, command handlers, and optional request/response hooks.

module.exports = {
  manifest: {
    id: "copy-response-tools",
    name: "Copy Response Tools",
    version: "1.0.0",
    priority: 100,
    permissions: ["ui.transform", "plugin.storage"]
  },

  transformApp: function(app, api) {
    api.ui.append(app, "rightPanel", {
      type: "card",
      id: "copyResponseCard",
      children: [
        { type: "text", id: "copyResponseTitle", value: "Response Tools" },
        { type: "button", id: "copyResponseButton", text: "Copy response to body", command: "copyResponse.copy" }
      ]
    });
    return app;
  },

  commands: {
    "copyResponse.copy": function(ctx) {
      var body = ctx.dollar("#response.body").val() || ctx.responseBody || "";
      ctx.dollar("#bodyEditor").val(body);
      return ctx.dollar("#bodyEditor");
    }
  }
};

Build 6 release boundary

Build 6 is available for macOS, Windows, Linux, and Android. Plugins can use the documented runtime APIs, UI nodes, commands, hooks, storage, request helpers, approved native bridges, workspace tabs, and visual graph components described here. Platform bridges still depend on operating-system support and permissions.

The frontend/UI robot is internal QA tooling and is compile-time disabled in public releases. A plugin must never depend on uiRobot.run, driver inbox polling, target-registry export, or automated mouse/keyboard control for customer-facing functionality.

Runtime model

transformApp(app, api)Builds visible structure. Use this for cards, buttons, inputs, panels, tabs, and static layout.
commands["id"](ctx)Runs when a button or plugin action fires. Use this for reads, writes, clicks, storage, bus output, and request automation.
hooks.beforeRequest(ctx)Runs before Send. Use it for auth headers, validation, request rewrites, variables, and preflight requests.
hooks.afterResponse(ctx)Runs after a response. Use it to capture response data, update plugin state, publish bus values, or chain another request.