executor

NameLast commit messageLast commit date
.astroformat & format auto script7 months ago
.changesetVersion Packages (#230)7 months ago
.githubchore: fix data storage (#262)6 months ago
.skillsformat & format auto script7 months ago
.vscodeReplace repository contents with v4 snapshot7 months ago
appsfix(cloud): forward /api/sentry-tunnel to Sentry ingest6 months ago
assetsfavicon7 months ago
exampleschore: fix data storage (#262)6 months ago
notesShare cloud drizzle schema across DbService + MCP session6 months ago
packagesperf(secrets): parallelize provider fan-out and header resolution6 months ago
patchesUpdate cloud environment configuration and enhance session management7 months ago
scriptsfix: Windows compatibility across postinstall, desktop, plugins, and scripts (#211)7 months ago
testsAllow underscores while editing source namespaces (#231)7 months ago
.gitignorechore(repo): ignore MCP config file (#193)7 months ago
.oxfmtrc.jsonfix(cloud): harden API/plugin error boundaries and prevent MCP leaks (#183)7 months ago
.oxlintrc.jsoncfix(cloud): harden API/plugin error boundaries and prevent MCP leaks (#183)7 months ago
.prettierignorefix(ci): typecheck and format fixes (#176)7 months ago
AGENTS.mdchore: fix data storage (#262)6 months ago
autumn.config.tsfeat(cloud): domain verification, team management, and billing gate (#195)7 months ago
bun.lockfix(openapi): use Workers-native fetch for spec URLs6 months ago
CLAUDE.mdchore: fix data storage (#262)6 months ago
knip.config.tsformat & format auto script7 months ago
LICENSEadd MIT license7 months ago
opencode.jsonchore: fix data storage (#262)6 months ago
package.jsonchore: fix data storage (#262)6 months ago
README.mdRemoved invalid subcommand7 months ago
RELEASING.mdShip @executor-js/* beta from monorepo with promise wrapper (#142)7 months ago
tsconfig.jsonReplace repository contents with v4 snapshot7 months ago
turbo.jsonfeat: switch typecheck to tsgo (native TypeScript) (#151)7 months ago
vision.mdinit vision7 months ago
vitest.config.tsReplace repository contents with v4 snapshot7 months ago
README.md

executor

https://github.com/user-attachments/assets/11225f83-e848-42ba-99b2-a993bcc88dad

The integration layer for AI agents. One catalog for every tool, shared across every agent you use.

Ask DeepWiki

Quick start

npm install -g executor
executor web

This starts a local runtime with a web UI at http://127.0.0.1:4788. From there, add your first source and start using tools.

Use as an MCP server

Point any MCP-compatible agent (Cursor, Claude Code, OpenCode, etc.) at Executor to share your tool catalog, auth, and policies across all of them.


executor mcp

Example mcp.json for Claude Code / Cursor:

{
  "mcpServers": {
    "executor": {
      "command": "executor",
      "args": ["mcp"]
    }
  }
}

Add a source

If you can represent it with a JSON schema, it can be an integration. Executor has first-party support for OpenAPI, GraphQL, MCP, and Google Discovery — but the plugin system is open to any source type.

Via the web UI

Open http://127.0.0.1:4788, go to Add Source, paste a URL, and Executor will detect the type, index the tools, and handle auth.

Via the CLI

executor call 'return await tools.executor.sources.add({
  kind: "openapi",
  name: "GitHub",
  specUrl: "https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.json",
  baseUrl: null,
  auth: { kind: "none" }
})'

Use tools

Agents discover and call tools through a typed TypeScript runtime:

// discover by intent
const matches = await tools.discover({ query: "github issues", limit: 5 });

// inspect the schema
const detail = await tools.describe.tool({
  path: matches.bestPath,
  includeSchemas: true,
});

// call with type safety
const issues = await tools.github.issues.list({
  owner: "vercel",
  repo: "next.js",
});

Run code via the CLI:

executor call --file script.ts
executor call 'return await tools.discover({ query: "send email" })'

If an execution pauses for auth or approval, resume it:

executor resume --execution-id exec_123

CLI reference

executor web                        # start runtime + web UI
executor mcp                        # start MCP endpoint
executor call --file script.ts      # execute a file
executor call '<code>'              # execute inline code
executor call --stdin               # execute from stdin
executor resume --execution-id <id> # resume paused execution

Developing locally

bun install
bun dev

The dev server starts at http://127.0.0.1:4788.

Community

Join the Discord: https://discord.gg/eF29HBHwM6

Learn more

Visit executor.sh to learn more.

Attribution

  • Thank you to Crystian for providing the npm package name executor.