Connecting a provider account sits on the open-core boundary, so be clear about which side you are on:

  • Eyeball Cloud (paid, not yet available) implements the hosted OAuth connect flow: Eyeball-managed provider apps, hosted consent redirects, and a vault that owns refresh tokens and provider-specific consent state. Your application later executes tools using the same external_user_id. This is implemented and tested in the private Cloud source; there is no deployed or live-provider-certified hosted service today, and it is not part of the open-source API.
  • Open source and self-hosted deployments bring their own OAuth: register your own provider application and authorize it locally with the CLI and encrypted vault. See Bring your own OAuth.

The connections.create flow below is a mock. The open-source executor does not implement hosted OAuth; its optional development vault accepts prebuilt, non-secret fixtures for local testing:

ts
import { Eyeball } from "@eyeball/sdk";

const eyeball = new Eyeball({
  apiKey: process.env.EYEBALL_API_KEY!,
  baseUrl: process.env.EYEBALL_EXECUTOR_URL!,
});

const connection = await eyeball.connections.create({
  toolkit: "gmail",
  userId: "demo_user",
});
console.log(connection.connectionId);

Expected development response:

JSON
{
  "connectionId": "conn_...",
  "redirectUrl": null,
  "status": "connected"
}

Read Connected accounts for lifecycle and isolation rules.