In private development
In development. Nothing here is available yet, and command names may change before release.
emo CLI
- Home
- Integrations
- emo CLI
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.
In development
Create
emo init <folder> --platform databricks makes a project
Connect
emo connect databricks signs in to your platform
Check
emo check runs lint, golden tests and a cost estimate
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.
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.
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.
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.
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.
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.
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.
Create a project
emo init creates a pipeline project: models/, pipelines/, tests/ and an emolysis.yml that names the platform.
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.
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.
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.
Sign in
emo login signs you in through the browser, and emo whoami shows who is signed in and the plan.
Script anything
emo run calls any command by id with JSON parameters, and prints JSON that your script or CI job can read.
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.
| Command | What 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 check | Lint the project, run its golden tests and report a cost estimate |
| emo login | Sign in to your Emolysis account in the browser |
| emo whoami | Show who is signed in, and the plan |
| emo dashboard refresh <name> | Read a dashboard's data again; --publish publishes the next revision |
| emo mcp | Start the MCP server over standard input and output |
| emo doctor | Check your setup; exits with an error when a required check fails |
| emo version | Print the engine version |
| emo commands | List 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.
Read next
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.