Give your agent email, messaging, voice, and hundreds of SaaS actions through a single typed API — with per-end-user auth, durable execution records, and framework-native output built in.
Every provider is a different auth dance, a different schema, and a different failure mode. Your agent drowns in glue code before it ever acts. Eyeball collapses all of it into one typed call — the catalog, the credentials, and the record of what happened.
One typed, versioned surface across every provider. Canonical toolkit.operation names, validated schemas, deterministic search — no per-vendor SDKs to learn.
Credentials live behind a single seam. Pin any call to an end user and Eyeball resolves the right token — env, encrypted vault, or hosted — without leaking a secret into your logs.
Every call returns a durable, replay-safe record: status, redacted inputs, attachments, and idempotent identity. Restart the process and in-flight work resumes where it left off.
Auth, retries, redaction, and the execution record are handled for you. The same call runs from your own code, from an MCP client, or inside a voice agent — identical contract, identical record.
import { Eyeball } from "@eyeball/sdk"; const eyeball = new Eyeball({ apiKey: process.env.EYEBALL_API_KEY }); // One typed call — scoped to the end user who owns the account. const run = await eyeball.execute({ tool: "gmail.send_email", input: { to: "founder@acme.com", subject: "Your agent shipped it.", body: "Deployed to prod and closed the ticket.", }, user: "user_8f2a", }); run.status; // "succeeded" run.recordId; // durable, replay-safe record
Draft 2020-12 validation on every input and output — argument-level contracts, not a wall of untyped JSON.
Pin any call to an end user and Eyeball resolves the right token — env, vault, or hosted. It never touches your logs.
Every call returns a durable, idempotent record. A retried call replays the first result — never a duplicate action.
Subscribe to provider events, delivered over HMAC-signed webhooks with automatic retry and replay protection.
LiveKit sessions and Twilio numbers re-enter the same executor — voice acts with the same contract as your code.
Discovery and dispatch over MCP Streamable HTTP — JSON or SSE, scoped sessions, opt-in Tasks. No adapter to maintain.
Point it at Postgres and records, jobs, files, and triggers all survive a reboot — in-flight work resumes exactly where it left off.
The engine is open. The hard multi-tenant parts are a managed option — never a lock-in.
The typed catalog, the executor, the local encrypted vault, the SDK, and the MCP gateway — all yours to self-host with zero external dependencies.
pnpm dev:stack boots a 30-provider sandboxOne project key that fans out to every provider you enable. Multi-user credential ownership, hosted OAuth, refresh, and metered billing — without running the vault yourself.
One API for the tools, the auth, and the record of what your agent actually did.