npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@embeddables/em-cli

v0.4.0

Published

@embeddables/em-cli — authentication, project configuration, and build output for Embeddables SDK projects.

Readme

@embeddables/em-cli

Command-line tool for Embeddables projects: authenticate, scaffold embeddables/config.yaml, connect forms, experiments, and protocols, and build the typed embeddables/_dist output your app imports.

Install

The npm package is @embeddables/em-cli; the command you run is em.

Run without installing:

npx @embeddables/em-cli login

Install globally:

npm install -g @embeddables/em-cli
em login

Or add it to a project:

npm install --save-dev @embeddables/em-cli
npx em login

Quick start

# 1. Authenticate with the Embeddables admin app
em login

# 2. Create embeddables/config.yaml (pick a project interactively)
em init

# 3. Add a form, connect an experiment, and/or install a protocol
em form create --name "Signup"
em experiment connect
em protocol install macro-dosing@example
em protocol variation install macro-dosing@example my-variation

# 4. Generate the typed embeddables/_dist output
em build

Commands

| Command | Description | | ------- | ----------- | | login | Authenticate with the Embeddables admin app and store a local session | | logout | Remove the local CLI session | | init | Create embeddables/config.yaml in the current directory (prompts for a project) | | build | Validate embeddables/config.yaml and write embeddables/_dist (config.ts, index.ts, forms/*/schema.ts, and a single generated protocols/<id>/<version>/schema.ts inlining the vendored base and any configured variations) | | deploy | Publish embeddables/config.yaml to Embeddables for the current git branch (prompts unless --skip-confirm) | | form create | Add a form to embeddables/config.yaml, scaffold forms/<id>/schema.yaml, and build. Omit --name to be prompted | | experiment connect | Add an experiment id to embeddables/config.yaml and build. Omit the id to pick one interactively | | protocol install <protocol-id> [version-id] | Fetch schema/README from the catalog, vendor under embeddables/_protocols/, update config (replace version on upgrade), and build. Upgrading to a different version clears configured variations; the next build includes only the base protocol until variations are reinstalled, and the CLI warns with the full protocol variation install command for each removed variation. On upgrade, keeps old vendored files by default; use --no-keep-old-version to delete them | | protocol variation install <protocol-id> [version-id] <variation-id> | Fetch a variation schema/README from the catalog, vendor under embeddables/_protocols/<id>/<version>/variations/<variation-id>/, append the variation id to config, and build. Base protocol must already be installed | | protocol uninstall <protocol-id> <version-id> | Remove a protocol version from embeddables/config.yaml, delete its vendored files under embeddables/_protocols/<id>/<version>/, and build |

Run em <command> --help for command-specific usage.

Notes

  • init and build require an authenticated session when the config references a project UUID or lists experiments; run em login first.
  • protocol install and protocol variation install require an active session, a UUID projectId in embeddables/config.yaml, project membership, and the relevant project allowlist to fetch from the catalog.
  • build fetches experiments when experiments: lists ids, reads vendored protocol sources from embeddables/_protocols/ and generates inlined, import-free embeddables/_dist/protocols/<id>/<version>/schema.ts bundles, and runs offline otherwise.
  • Requires Node.js 20+.
  • Global install (npm i -g @embeddables/em-cli) registers the em command. An unrelated unscoped npm package em-cli also ships a bin named em; if both are installed globally, only one em command will win on your PATH. Prefer npx @embeddables/em-cli when in doubt.