eyeball gives your agent one stable capability contract while it handles provider adapters, account selection, idempotency, normalized errors, and execution records.

The three-step developer experience

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

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

const tools = await eyeball.tools.get({
  toolkits: ["gmail"],
  format: "anthropic",
});

const result = await eyeball.tools.run(
  "gmail.search_emails",
  { query: "from:reservations@example.com", pageSize: 5 },
  { userId: "demo_user" },
);
console.log({ modelTools: tools.tools.length, result });

The same code runs against the mock executor with zero third-party SaaS accounts. Moving live changes the executor URL and connected-account state, not the canonical tool call.

Make your first tool call

Install the eyeball SDK and get a deterministic result in five minutes.