Skip to main content
The embedder binary provides an interactive terminal UI, two headless process modes, daemon controls, MCP configuration, remote bridge management, dashboards, and skill installation.
Running embedder with no arguments opens the interactive terminal UI. Only --server and --daemon are headless process modes.

Command tree

Run embedder without a command to open the terminal UI.

Global flags and process modes

If both process flags are present, --daemon wins because it is evaluated before --server.

--listen parsing

Use one of these forms:
The implementation does not parse a bare port. --listen 4900 falls back to 127.0.0.1:4851. Port 0 is accepted and lets the operating system choose an available port. The stdio transport stays active when --listen is set. Closing stdio stops a normal --server process, but a listening server remains alive until it receives SIGINT or SIGTERM.

Account status

Prints the current plan and usage data. It reads EMBEDDER_AUTH_TOKEN before stored interactive credentials. The command exits with status 1 when authentication or the usage request fails.

Daemon commands

embedder start daemon

The command starts a detached child with --daemon. It resolves authentication before spawning and reports an existing daemon instead of duplicating it.

embedder --daemon

This foreground entry point is what start daemon launches. It accepts stored daemon credentials or EMBEDDER_API_KEY; it does not prompt. --team-id and --project-id are internal paired flags passed by start daemon after name resolution. Provide both IDs or neither. The daemon verifies the IDs against the named team and project.

embedder monitor

Opens the daemon monitor. It refreshes once per second.

embedder stop daemon

Without --pid, the command stops the only active daemon in the current application directory. It requires a PID when several are listed.

Dashboard server

Serves project dashboards on a localhost URL and prints the address. When slug is present, the printed target ends in /d/<encoded-slug>. Press Ctrl+C to stop it.

MCP commands

Add a server

Examples:
For stdio, every positional argument after the name becomes part of the command string and is split on whitespace into command and args.

List servers

Lists the merged global and current-project configuration. A project server with the same name replaces the global server in this view.

Remove a server

Removal defaults to the global file. Use --scope project to edit <current-directory>/.embedder/mcp.json. See MCP servers for OAuth, catalog entries, tool controls, and the configuration schema.

Bridge commands

Discover bridges

Browses _embedder-bridge._tcp.local for 2.5 seconds and prints the address, bridge protocol version, mode, fingerprint, and pairing state.

Pair

name must match an mDNS instance. A direct address must include a port, such as 192.0.2.25:4849 or [2001:db8::25]:4849. If --code is absent, the CLI prompts for it. The local name defaults to the discovered name or direct host.

List and remove pairings

Pairings are stored in ~/.embedder/bridges.json with mode 0600 where the platform supports it.

Probe status

Attempts a pinned, token-authenticated connection to every locally stored bridge and reports connected or unreachable.

Run diagnostics

When no name is provided, the first stored pairing is used. The command checks:
  1. Pinned connection and protocol handshake
  2. Advertised capabilities
  3. Serial-port enumeration
  4. probe-rs
  5. OpenOCD or J-Link GDB Server
  6. File upload and download
The command exits nonzero if any check fails.

Execute a bridge command

The default timeout is 10 minutes. The bridge protocol caps execution at 30 minutes. Without --shell, the command is an argv array. --shell joins the arguments into a shell command. A bridge with a nonempty exec_allowlist rejects shell mode and rejects programs not named in the allowlist.

Start or stop the bundled bridge

start extracts and detaches the bundled embedder-bridge, binds it to 0.0.0.0:4849, and stores runtime state under the Embedder application directory. --relay adds the configured production relay URL when the bridge config is first created.

Install a system service

Linux and macOS are supported. The binary directory defaults to /usr/local/bin. The generated service config binds to loopback and enables the relay. Existing config files are preserved. See Remote hardware bridge for service behavior and the embedder-bridge binary commands.

Install a skill

The default scope is the project rooted at the current directory or --project-root. --user installs into user scope. --overwrite permits replacement. Remote skill URLs must use HTTPS.

Environment variables

Authentication and backend selection

Runtime and daemon

MCP, providers, and certificates

Bridge logging

Development builds also read STAGING_TOKEN with staging and preview environments. It is not a production authentication variable.
Last modified on August 24, 2026