In private development

In development. Nothing here is available yet, and command names may change before release.

emo CLI

In development

The emo command line.

emo is the command line for the same engine as the desktop app. It is made for terminals, scripts and CI, and every command it runs, except the machine-token commands, is available to the MCP server too.

How it works

In development

  1. Create

    emo init <folder> --platform databricks makes a project

  2. Connect

    emo connect databricks signs in to your platform

  3. Check

    emo check runs lint, golden tests and a cost estimate

  4. Deploy

    emo run pipeline.deploy deploys a pipeline

Overview

What the emo CLI is.

emo is the command line for the Emolysis engine, for scripting, CI and people who prefer a terminal. It runs the same commands as the desktop app and the MCP server, so a step you take in one place works the same way in the others.

Every action in Emolysis is a command with an id of the form <area>.<verb>, such as query.run, template.render or dashboard.publish. The named commands, like emo connect and emo check, are the everyday ones. emo run calls any command by its id with JSON parameters, which is the dependable way to use Emolysis from a script or from CI.

Command names may change before release. No install command works today: the name emolysis is reserved on PyPI with an empty placeholder that gives you nothing usable, and a package there is planned.

Features

Built for terminals and CI.

How the command line works, from the command ids to the exit codes.

  1. One engine, one set of commands

    The app, the command line and the MCP server call the same commands. emo commands lists every id, and --schemas shows their parameters.

  2. Scriptable by id

    emo run calls any command by id with JSON parameters. It prints the result as JSON and exits with status 0, or prints an error object and exits with status 1.

  3. Typed errors

    Every failure carries one of nine error codes, so a script or a coding agent can tell a missing parameter from a platform failure.

  4. Sign in from the terminal

    Commands that need an account start the sign-in flow when you are not signed in: emo prints a short code, and you confirm it in the browser. The code expires after 15 minutes.

  5. Checks for any CI

    Because every action is a command, you can run lint, golden tests or a deploy from any CI system, with the same results as in the app.

  6. A doctor for your setup

    emo doctor checks the engine version, DuckDB, the credential store and whether a model key or plan is configured. It exits with an error when a required check fails.

How it works

A session in a terminal.

The commands for a first session. The names may change before release.

  1. Create a project

    emo init creates a pipeline project: models/, pipelines/, tests/ and an emolysis.yml that names the platform.

  2. Connect a platform

    emo connect databricks starts the sign-in flow if you need it, then authorizes with the platform's own login and lets you pick a workspace and compute.

  3. Dashboards from the terminal

    Dashboards from a question start with /dashboard in the app. From a terminal, emo run calls dashboard.draft and the other dashboard commands, and emo dashboard refresh reads a dashboard's data again.

  4. Check, then deploy

    emo check lints the project and runs its golden tests. emo run pipeline.deploy then deploys a pipeline as your platform's own unit.

  5. Sign in

    emo login signs you in through the browser, and emo whoami shows who is signed in and the plan.

  6. Script anything

    emo run calls any command by id with JSON parameters, and prints JSON that your script or CI job can read.

Commands · not released yetIn development
emo init orders --platform databricksemo connect databricksemo check emo run dialect.transpile --params '{"sql": "select 1", "write": "databricks"}'

Reference

The emo commands.

Command names may change before release. The docs have the command reference.

emo commandsIn development
CommandWhat it does
emo init [path] --platform <p>Create a pipeline project: models/, pipelines/, tests/, emolysis.yml
emo connect <platform>Connect a platform, for example emo connect databricks
emo checkLint the project, run its golden tests and report a cost estimate
emo loginSign in to your Emolysis account in the browser
emo whoamiShow who is signed in, and the plan
emo dashboard refresh <name>Read a dashboard's data again; --publish publishes the next revision
emo mcpStart the MCP server over standard input and output
emo doctorCheck your setup; exits with an error when a required check fails
emo versionPrint the engine version
emo commandsList every command id, with --schemas for their parameters
emo run <id> --params '<json>'Run any command by its id with JSON parameters

Data handling

Data handling

What the command line sends.

To write code, the agent sends prompts to the AI model provider you choose. A prompt can include table and column names, schemas and sample values from your data. With your own model key, prompts go to that provider under your key and its terms. With a paid plan's included usage or usage credits (on Enterprise, metered usage), they pass through Emolysis's metering service on the way to the model provider, which is designed not to store or log their content.

Platform credentials are kept in your machine's credential store, deployed pipelines run on your platform under your account, and a dashboard leaves your machine when you publish it, and only then.

What leaves your machine lists every case.

Questions

emo CLI questions.

Answers about the emo CLI. More in the FAQ.

Is the emo command line available?

No. emo is in development, and no install command works today. The name emolysis is reserved on PyPI with an empty placeholder: installing it gives you nothing usable, so do not install it and do not trust any package that claims to be Emolysis until we announce a release on the news page.

Can I run Emolysis in my own CI?

Not yet: nothing is released. Every action is a command with JSON parameters, so emo runs lint, golden tests and other checks from any CI system. For teams that use GitHub, a reusable GitHub Actions workflow, in preview, runs emo check in your own CI; it needs the emo command line, which is not released yet.

Are the command names final?

Not yet. Command names may change before the first release. The command ids, such as query.run, are the more stable part: emo run calls them directly.

Does emo need an account?

Yes. Every use of Emolysis needs an Emolysis account, local files included; the Free plan is one. emo login starts the sign-in flow in your browser, where you sign in with your GitHub, Microsoft or Google account. Only emo doctor, the version and the command list, and the sign-in commands work before you sign in.

How does emo report errors?

Every command returns either a result or a typed error with one of nine error codes. emo run prints errors as a JSON object and exits with status 1, so scripts and CI jobs can branch on the code instead of parsing text.

Nothing is released yet

Help shape the emo CLI.

Early access is by invitation, starting with data engineering teams on Databricks.