Command line
Install Executor on your machine. Keep your apps, accounts and data local.
The local server runs Executor on one machine for one person. It holds your accounts, runs your apps, and serves an MCP endpoint for your agents.
Install and start
Requires Node 24.14.0 or newer. Check that executor --version prints 2.0.0-beta.6 before starting. Supports macOS on Apple Silicon and Intel, Linux on ARM64 and x64, and Windows on x64.
npm i -g executor@beta
executor --version
executor
executor starts the server and opens the dashboard in your browser. The
package includes its runtime and dashboard; no source checkout or Bun install
is needed.
If npm prints EBADENGINE, upgrade Node before installing again. npm can report
a successful install while skipping the native runtime on an unsupported Node
version. After upgrading, repeat the install command with --include=optional.
If executor --version still shows v1, your shell is finding an older install.
Run type -a executor on macOS or Linux, or where.exe executor on Windows,
to see which executable takes priority. Remove the old install with the package
manager that installed it, then open a new terminal. For example, use
bun remove -g executor for an old Bun install. This does not delete your data.
On first launch, Executor saves its API and encryption keys in macOS Keychain,
Windows Credential Manager, or Linux Secret Service. Unlock the credential store
and allow Executor access when asked. If there is no credential store on the
first launch, for example on a Linux server without GNOME Keyring, Executor saves
the keys to keys.json in its data directory instead. The file is readable only
by your user, and Executor prints its path when it creates it. Keep that
directory private. If a credential store exists but access is denied, for
example because you dismissed the prompt or the store is locked, Executor stops
without writing keys.json. Start it again to be asked again. Where no prompt
can appear, such as over SSH, unlock the store first: on Linux run
gnome-keyring-daemon --unlock, on macOS security unlock-keychain.
To use keys.json on a new data directory even when a credential store works,
set EXECUTOR_KEY_STORAGE=file for its first start. Set
EXECUTOR_KEY_STORAGE=os to require the credential store and never fall back to
keys.json. Executor never switches an existing directory’s key storage: a
value that does not match the directory stops startup and changes nothing.
| Command | Purpose |
|---|---|
executor |
Start the server and open the dashboard. |
executor serve |
Start without opening a browser. |
executor pair |
Print a new connection link for the running server. |
Configure it
| Variable | Purpose |
|---|---|
EXECUTOR_PORT |
Port, default 4312. |
EXECUTOR_DATA_DIR |
Data directory, default ~/.executor/v2/cli. |
EXECUTOR_BROWSER_ORIGIN |
Exact HTTPS origin for generated browser links. |
EXECUTOR_WEBHOOK_ORIGIN |
Exact HTTPS origin that receives webhooks. |
EXECUTOR_KEY_STORAGE |
file or os: key storage for a new data directory. |
To keep keys in a secret manager instead, supply both EXECUTOR_API_KEY (at
least 32 characters) and EXECUTOR_ENCRYPTION_KEY (exactly 64 hexadecimal
characters) before the first start. Keep these same keys for every start.
Executor does not save supplied keys. A directory keeps its chosen key source
across upgrades: a directory using the credential store still needs it later,
and a directory using keys.json needs that file.
Connect an agent
Use the dashboard’s Connect card to add the local MCP endpoint to your agent. See Add an MCP client for Claude Code, Cursor and Codex. Keep Executor running while the client is connected.
Back up and update
Back up the data directory, including installation.json, and its matching
OS credential. The credential service is com.usefulsoftware.executor.v2;
its account ID is in installation.json. Copying only the database to another
machine is not enough to restore it. If you supplied keys, back them up in
your secret manager.
Missing keys stop startup. Executor will not generate replacements for an existing installation. Restore the original keys to recover access.
Run the install command again to update. The v2 data directory stays the same when beta becomes stable. Uninstalling the package does not delete data or keys.
The desktop app uses the same local server with a separate profile. Automatic desktop updates are not enabled; install a newer version over the existing application to update it.