Connect any agent to everything.
Every agent you run wants its own connections to your email, calendar, and tools. Connect them once in Executor; anything that speaks MCP, like Claude Code, Cursor, or Codex, points at one endpoint and has them all.
You don't have one agent anymore. You have Claude Code, Cursor, a ChatGPT account, something running in a closet. Each one wants its own OAuth into everything, and each one is missing something when you need it.
Executor ends the re-wiring. Connect a service once and every agent reaches it through one endpoint, with every tool in the same shape: one name, one input schema, one output schema.
All your accounts. Not just one.
Most agent connectors stop at one account per service: one Google login, so your agent sees your work calendar or your personal one, never both. Your flights land in one inbox and your meetings in the other, and no agent can reason over your actual day.
Executor treats accounts as connections: add as many as you have, per service, side by side. Work and personal Gmail, two calendars, a staging and a production Stripe. Every agent you point at Executor sees all of them at once.
One question — "what does my day look like?" — answered across every account you have.
Thousands of tools, no bloat.
Connect everything you use and Executor still shows the model a single tool. It searches your catalog and loads a tool's schema only when the code actually calls it, so the prompt never balloons.
Without Executor: 1,640 tools, about 278,800 tokens. With Executor: 1 tool, about 1,044 tokens.
"You are a helpful assistant.
Your tools are:
createIssue()
listPullRequests()
mergePullRequest()
createRelease()
addLabels()
createBranch()
getCommit()
// + 713 more GitHub tools
createCharge()
createCustomer()
createRefund()
listInvoices()
createSubscription()
capturePaymentIntent()
listPayouts()
// + 503 more Stripe tools
createIssue()
transitionIssue()
addComment()
assignIssue()
listSprints()
createProject()
searchIssues()
// + 233 more Jira tools
listIssues()
resolveIssue()
listEvents()
getProject()
muteIssue()
createRelease()
listAlerts()
// + 163 more Sentry tools
..."// the only tool your client sees: "execute"
Execute TypeScript in a sandboxed runtime with access to
configured API tools.
## Workflow
1. const { items } = await tools.search({ query });
2. const path = items[0]?.path;
3. const details = await tools.describe.tool({ path });
4. const result = await tools[path](input);
## Available connection prefixes
- github.org.main: Production GitHub
- stripe.org.main: Live Stripe account
- jira.org.main: Team Jira
- sentry.org.main: Production Sentry
The model reasons. Executor handles the rest.
One tool shape
MCP, OpenAPI, GraphQL, or a custom integration. Under the hood they all become a tool name, an input schema, and an output schema.
Call it any way
Today it is a code-mode MCP. It could just as well be the Executor CLI, a one-off script, a gen-UI dashboard, or a reusable workflow. Same tools, every surface.
Trace every call
One place to see every run and tool call. Audit any decision after the fact.
Set up once, whole team has it
Per-user credentials and shared ones. No onboarding ritual, no toggling MCPs on and off mid-task.
Destructive actions pull you back in
Executor keeps the semantics it imported: GET vs DELETE for OpenAPI, destructiveHint for MCP, mutations for GraphQL. Agents auto-run the safe stuff and ask before the rest.
Sandboxed execution
Tool calls run in an isolated JavaScript sandbox. Secrets are injected host-side at call time and never enter the sandbox heap, so the agent and model never see a raw token.
Your agent should be able to reach your company's resources in a way that isn't scary. Most setups make you choose between locked down and useless, or wide open and risky.
Executor doesn't care what you add. Once a tool is in that one shape, a name and two schemas, you can call it however you want and the same guardrails apply everywhere. That is the whole idea: make the safe path the easy path.
Pick your path.
Cloud
executor.sh/cloudHosted Executor. Auth, sync, policies, and your whole team online in five minutes. Free tier to start.
Try Cloud →Desktop
Mac · Windows · LinuxA native app that runs entirely on your machine. Your integrations, credentials, and sessions never leave the device. MIT licensed.
CLI
npm i -g executorRun Executor as a background service and drive it from your terminal. Best for headless and server environments. MIT licensed.
Read the docs →FAQ
Where does my code run, and what touches my credentials?
Can the agent or the model ever see a raw token?
Can I replace my agents' built-in connectors with Executor?
What can call Executor?
How does it know what is safe to auto-run?
Is it open source? Can I self-host?
Start free, pay as you run.
Free
For small teams getting started
- Up to 3 members
- 10,000 included executions per month
- $0.20 per 1,000 additional executions
- Unlimited integrations
Team
For growing organizations
- 14-day free trial, then $150 / month
- Unlimited members
- 250,000 included executions per month
- 5 minute execution timeout
- Join by team domain
- $0.20 per 1,000 additional executions
Enterprise
For orgs with custom needs
Everything in Team, plus
- Self-hosted or dedicated cloud deployment support
- SSO / SAML & SCIM provisioning
- Audit logs for every tool call
- Dedicated support & onboarding
- Security reviews, DPA & SOC 2 on request