Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.embeddables.com/llms.txt

Use this file to discover all available pages before exploring further.

Core Commands

Setup & auth

CommandDescription
embeddables loginLog in to your Embeddables account (global).
embeddables logoutClear stored authentication.
embeddables initInitialize from inside your project folder: creates embeddables.json, .types/, embeddables/, optional Cursor/Claude/Codex/Gemini/Antigravity prompts; creates tsconfig.json if absent, or patches it to add the required type alias paths if it already exists.
embeddables upgradeUpdate the CLI to the latest stable version.

Daily workflow

CommandDescription
embeddables pullFetch an Embeddable from the cloud and reverse-compile to TSX.
embeddables devStart dev server with hot reload; proxies to the Engine.
embeddables saveBuild and upload the Embeddable to the cloud.
embeddables diffCompare two versions of an Embeddable (default: latest vs local).
embeddables branchSwitch to a different branch (interactive list or --branch), then pull that branch.
embeddables branches createCreate a new branch from the current Embeddable state.
embeddables builder openOpen the Embeddables Builder in your default browser for an Embeddable.
embeddables feedbackSend feedback about the CLI directly from your terminal.
You can cd embeddables/<EMBEDDABLE_ID> and run Embeddable-specific commands (dev, pull, save, branch, builder open) from there. The CLI will automatically use that Embeddable instead of prompting you to choose.

Tasks

CommandDescription
embeddables tasks listList all tasks for the current project.
embeddables tasks getFetch full details for a task by ID.
embeddables tasks update-statusChange a task’s status.
embeddables tasks assignChange a task’s assignee.
embeddables tasks commentAdd a comment to a task.
embeddables tasks add-branchLink an Embeddables branch to a task.

Assets

CommandDescription
embeddables assets uploadUpload a local asset folder to the Embeddables asset store.
embeddables assets syncSync uploaded asset metadata from the cloud into a local assets.json.

Branches

CommandDescription
embeddables branches createCreate a new Embeddable branch from the current local state.

Experiments

CommandDescription
embeddables experiments createCreate a new experiment.
embeddables experiments connectConnect an existing experiment.

Build (advanced)

CommandDescription
embeddables buildCompile TSX → JSON only (no upload). Used automatically by save unless you pass --skip-build.

Publishing (advanced)

CommandDescription
embeddables dangerously-publishPromote an existing saved version to staging or production without a full rebuild. Use with care.

Debugging

CommandDescription
embeddables inspectFetch an Embeddable from the engine, reverse-compile to React files, rebuild to JSON, and compare the two outputs.

Command Options

OptionDescription
-t, —token <token>Use a token for non-interactive login. Pass a JWT directly instead of going through the OTP email flow — ideal for CI pipelines and cloud containers. The token’s expiry is parsed from the JWT payload and stored alongside the session.
OptionDescription
-p, --project-id <id>Set project ID (if logged in, you can pick from a list instead).
-y, --yesSkip prompts and use defaults.
OptionDescription
-i, --id <id>Embeddable ID to pull (skips interactive selection).
--version [number]Version to pull. Omit a value (--version) to open an interactive version selector. Pass a number (--version 47) to pull a specific version. Without this flag, pull defaults to the latest version.
-o, --out <path>Output path for compiled JSON (default: embeddables/<id>/.generated/embeddable.json).
-b, --branch <branch_id>Pull a specific branch.
-f, --fixRemove components with missing required props instead of erroring.
-p, --preservePreserve component order in config (see note below).
—project-id <id>Project ID for embeddable selection (skips project selection prompt).
—bypass-authSkip the login check. Intended for CI environments and automated tooling where no auth token is stored.
OptionDescription
-i, --id <id>Embeddable ID (prompt if not provided).
-p, --pages <glob>Custom pages glob (default: embeddables/<id>/pages/**/*.page.tsx).
-o, --out <path>Output path for compiled JSON.
-L, --localUse local engine (http://localhost:8787) instead of production.
-e, --engine <url>Engine origin (default: https://engine.embeddables.com; overridden by --local).
--port <n>Dev proxy port (default: 3000). If in use, CLI tries the next available port.
--overrideRoute <path>Route to override in proxy (default: /init).
--pageKeyFrom <mode>How to derive page keys: filename or export (default: filename).
--fixApply lint fixes (e.g. duplicate IDs, keys starting with a number).
—bypass-authSkip the login check. Intended for CI environments and automated tooling where no auth token is stored.
OptionDescription
-i, --id <id>Embeddable ID (required).
-p, --pages <glob>Pages glob.
-o, --out <path>Output path for JSON.
--pageKeyFrom <mode>filename or export (default: filename).
--fixApply lint fixes.
—bypass-authSkip the login check. Intended for CI environments and automated tooling where no auth token is stored.
OptionDescription
-i, --id <id>Embeddable ID (prompt if not provided).
-l, --label <label>Human-readable version label.
-b, --branch <branch_id>Branch ID to save to.
-s, --skip-buildUse existing .generated/embeddable.json (no build step).
--from-version <number>Base version (auto-detected from local config if not set).
-p, —project-id <id>Project ID (skips project selection prompt).
—forceSkip confirmation prompts (version conflicts and other users’ drafts).
OptionDescription
-i, --id <id>Embeddable ID (prompt from local Embeddables if not provided).
-b, —branch <branch_id>Branch ID or name to switch to (skips the interactive branch selection prompt).
OptionDescription
-i, —id <id>Embeddable ID. Inferred from the current working directory or automatically when run inside embeddables/<id>/; otherwise prompts to choose from local Embeddables if not provided.
-n, —name <name>Branch name (required). The origin version and branch are read automatically from config.json. The success output includes the new branch ID returned by the server.
OptionDescription
-i, —id <id>Embeddable ID (inferred from cwd or interactive prompt if not provided).
-n, —name <name>Experiment name (required).
-k, —experiment-key <key>Experiment key (required). Used to reference the experiment in code.
-p, —project-id <id>Project ID (skips project selection prompt).
—variants <list>Comma-separated key:weight pairs (e.g. control:50,treatment:50). Defaults to control:50,treatment:50. Weights must sum to 100; if they don’t, the CLI will prompt to auto-adjust (or pass —auto-adjust to skip the prompt).
—status <status>Initial experiment status. Valid values: draft, active, paused, completed. Defaults to draft.
—auto-adjustAutomatically scale variant weights to 100% without an interactive confirmation prompt. Useful for non-TTY/CI environments.
OptionDescription
-i, --id <id>Embeddable ID.
--experiment-id <id>Experiment ID (prompt to choose if not provided).
--experiment-key <key>Experiment key (required if --experiment-id is set).
-p, —project-id <id>Project ID (skips project selection prompt).
OptionDescription
-i, --id <id>Embeddable ID (prompt from local Embeddables if not provided; inferred automatically if run from inside embeddables/<id>/).
-p, —project-id <id>Project ID (skips project selection prompt).
OptionDescription
-i, --id <id>Embeddable ID to inspect (required).
--version <version>Version to inspect — a version number or "latest" (default: latest).
-b, --branch <branch_id>Embeddable branch ID.
-f, --fixFix by removing components missing required props (default: on).
-p, --preservePreserve component order during forward compilation (default: off). Use when you want to keep existing component order for comparison purposes.
-e, --engine <url>Engine origin (default: https://engine.embeddables.com).
OptionDescription
-i, --id <id>Embeddable ID (prompt from local Embeddables if not provided; inferred automatically if run from inside embeddables/<id>/).
--from <version>Version to compare from (default: latest). Accepts a version number, latest, staging, prod, local, or branch@version.
--to <version>Version to compare to (default: local). Same format as --from.
--depth <level>Detail level: pages, components (default), or props.
--page <keysOrIds>Filter output to specific page keys or IDs (comma-separated, no spaces).
--component <keysOrIds>Filter output to specific component keys or IDs (comma-separated, no spaces).
-b, --branch <branch_id>Branch to use when fetching cloud versions (auto-detected from config.json if not set).
-e, --engine <url>Engine origin (default: https://engine.embeddables.com).
--no-colorDisable colored output.
OptionDescription
-i, --id <id>Embeddable ID (inferred from cwd or interactive prompt if not provided).
--dir <path>Local directory to upload from (default: assets/).
--group-id <id>Target asset group ID. Resolved from project config if not provided.
--recursiveTraverse subdirectories (default: top-level only).
--include <glob>Glob pattern to include only matching files.
--exclude <glob>Glob pattern to exclude matching files.
--dry-runPreview what would be uploaded without actually uploading.
--workers <n>Number of concurrent upload workers (default: 5).
OptionDescription
-i, --id <id>Embeddable ID (inferred from cwd or interactive prompt if not provided).
--group-id <id>Asset group ID to sync. Resolved from project config if not provided.
-o, --out <path>Output path for the asset manifest (default: assets.json).
OptionDescription
[message]Optional feedback message as a positional argument. If omitted, you will be prompted interactively.
--positiveMark the feedback as positive (👍).
--negativeMark the feedback as negative (👎). Default when a message is passed non-interactively.
--category <type>Feedback area: cli, ai, compiler, or other.
OptionDescription
-p, —project-id <id>Project ID to list tasks for. Defaults to the project configured in embeddables.json; prompts interactively if not set.
OptionDescription
-i, —id <id>Task ID (required). Displays status, priority, type, assignee, dates, body, and effort.
OptionDescription
-i, —id <id>Task ID (required).
-s, —status <status>New status (required). Valid values: to_do, scoping, in_progress, feedback_cycle, qa, blocked, completed, cancelled. Hyphens are accepted in place of underscores.
OptionDescription
-i, —id <id>Task ID (required).
—assignee-id <id>User ID to assign the task to. Mutually exclusive with —assign-to-owner.
—assign-to-ownerAssign the task to its current owner. Mutually exclusive with —assignee-id.
OptionDescription
-i, —id <id>Task ID (required).
-m, —message <content>Comment content (required).
OptionDescription
-i, —id <id>Task ID (required).
-b, —branch-id <id>Branch ID to link to the task (required).
OptionDescription
-i, —id <id>Embeddable ID (prompt if not provided).
—stagingPublish to the staging environment. Mutually exclusive with —prod.
—prodPublish to production only (the version must already be on staging server-side). Mutually exclusive with —staging.
—via-stagingWith —prod: push to staging first, then to production. Use when the version is not yet on staging.
—saveBuild and upload a new saved version before publishing it.
—publish-version <number>Promote this specific version number instead of reading the version from config.json.
-l, —label <label>Human-readable label for the new version (only applies with —save).
—skip-buildSkip the build step (only applies with —save).
-p, —project-id <id>Project ID (skips project selection prompt).
—forceSkip confirmation prompts (version conflicts when using —save, other users’ drafts).
pull --preserve: If you’ve held back on using the CLI because the first pull changes the JSON a lot, try embeddables pull --preserve. It keeps the same order of components in the config. The biggest cause of “changes” on pull is usually component reordering (React sorts them within containers), which doesn’t affect the rendered Embeddable. You may still see smaller changes (e.g. parent_key fixes), but it’s easier to verify what actually changed when component order stays the same.