Command line
Run Executor on your own machine for one person. Your accounts, apps and data stay there, behind an API key, with an MCP endpoint any local agent can use.
The local server is Executor on one machine for one person. It holds your accounts, runs your apps, and serves an MCP endpoint that any local agent can connect to. There are no organizations and no browser sign-in.
The command is executor. During the beta it is not published to npm, so you
run it from a clone of the repository.
git clone https://github.com/UsefulSoftwareCo/executor-next
cd executor-next
bun install
Configure it
Two settings are required, and the server refuses to start without them.
| Variable | Required | Purpose |
|---|---|---|
EXECUTOR_API_KEY |
yes | Bearer token for the API and the MCP endpoint. At least 32 characters. |
EXECUTOR_ENCRYPTION_KEY |
yes | Key that encrypts stored credentials. Exactly 64 hexadecimal characters. |
EXECUTOR_PORT |
no | HTTP port. The default is 4312. |
EXECUTOR_DATA_DIR |
no | Where the database and diagnostics live. The default is .local/executor. |
EXECUTOR_BROWSER_ORIGIN |
no | Exact HTTPS origin to use in generated browser links. |
EXECUTOR_WEBHOOK_ORIGIN |
no | Exact HTTPS origin that receives webhooks. |
Generate the two keys once and keep them. Changing the encryption key makes the credentials you already saved unreadable.
openssl rand -hex 32 # EXECUTOR_ENCRYPTION_KEY
openssl rand -hex 24 # EXECUTOR_API_KEY
Start it
bun run executor
That starts the server and opens the dashboard in your browser.
| Command | What it does |
|---|---|
executor |
Start the server and open the dashboard. |
executor serve |
Start without opening a browser. Use this on a headless machine. |
executor pair |
Print a new connection link for a server that is already running. |
On a machine with no browser, run executor serve, then run executor pair
from a shell on that machine and open the printed link from your own computer.
Connect an agent
The MCP endpoint is http://127.0.0.1:4312/mcp, authenticated with your API key
as a bearer token:
npx add-mcp 'http://127.0.0.1:4312/mcp' --transport http --name executor \
--header 'Authorization: Bearer <EXECUTOR_API_KEY>'
The dashboard’s Connect card shows this with your real port and key already filled in. See Add an MCP client for Claude Code, Cursor and Codex.
Keep the server running while a client is connected.
Behind a reverse proxy
The server listens over HTTP. If a proxy terminates TLS in front of it, set
EXECUTOR_BROWSER_ORIGIN to the public HTTPS origin so generated links use it.
EXECUTOR_BROWSER_ORIGIN=https://executor.example.test executor serve
The value must be an exact origin: scheme, host and port, with no path. Origins are never inferred from a request header.
Your data
Everything lives under EXECUTOR_DATA_DIR, by default .local/executor. That
is the database, the encrypted credentials, and diagnostics/. Back up the
directory; there is nothing else to snapshot.
What is coming later
- A published
executorpackage, so the CLI installs without a clone. executor dev, a local loop for app authoring.- A desktop app.