Skip to content

CLI

Install and log in

Install the elula command line tool, sign in with Google, and keep it up to date.

The elula CLI lets you create, deploy and manage apps from your terminal. AI coding agents use the same CLI.

Requirements

  • An Apple Silicon Mac (arm64), or Linux on x86_64.
  • curl and bash.
  • Git, for elula init and elula deploy.

Other platforms, including Intel Macs, aren't supported yet. The installer stops with a message if your machine isn't supported.

Install

Run:

curl -fsSL https://elula.com/install | bash

The installer:

  1. Downloads the binary for your OS.
  2. Installs it to /usr/local/bin/elula. It asks for your password through sudo if that folder isn't writable.
  3. If sudo isn't available, installs to ~/.local/bin/elula instead and tells you if that folder isn't on your PATH.

To install somewhere else, set ELULA_INSTALL_DIR:

curl -fsSL https://elula.com/install | ELULA_INSTALL_DIR="$HOME/bin" bash

Check it worked:

elula --version
Note: The CLI used to be called kessel. The installer also adds kessel as an alias, and old ~/.kessel/config.json logins, .kessel.json files and KESSEL_* variables still work.

Log in

elula login

This opens your browser for Google sign-in and prints the link too, in case no browser opens (for example inside an AI agent or over SSH). After you sign in, Google sends the browser back to the CLI on http://localhost:9876, which finishes the login and then shows a "You're signed in" page on the Elula website. You have 3 minutes to finish signing in.

When it's done, the CLI prints Logged in as <name> (<email>). If sign-in fails or you cancel it, the page and the CLI both say why.

If the CLI needs to talk to a specific Elula API address, pass it once with --api-url. It's saved for later commands:

elula login --api-url https://api.example.com

--web-url sets the web app address the CLI uses when it prints share links (for example from elula send):

elula login --api-url https://api.example.com --web-url https://app.example.com
Note: If login fails with "Port 9876 is in use", another login is probably still waiting. Close it and try again.

Check who you are

elula whoami

This shows your name and email, the API address in use, your active workspace and your role in it. Add --json for machine-readable output.

If you belong to several workspaces, pick one:

elula org list
elula org switch my-team

Connect GitHub

To deploy private GitHub repos, connect the Elula GitHub App:

elula github connect   # opens GitHub in your browser
elula github status    # check the connection

Log out

elula logout

This removes the saved login from this machine.

Update

elula update

This downloads the latest version and replaces the installed binary. It may ask for your password through sudo.

Where the CLI keeps its settings

LocationWhat it holds
~/.elula/config.jsonYour login token, the API address (api_url) and the web address (web_url)
.elula.jsonThe app this folder is linked to. Created by elula init or elula link, in the repo or app subfolder

The CLI looks for .elula.json in the current folder and then in each parent folder, so commands work from anywhere inside the repo.

You can commit .elula.json: it holds only the app ID and name. Teammates who have access to the app can then run commands from the same repo. Others can link a folder with elula link <app-id>.

Environment variables

VariableUse
ELULA_API_URLAPI address, used when ~/.elula/config.json has no api_url
ELULA_WEB_URLWeb app address for share links, used when the config has no web_url
ELULA_INSTALL_DIRInstall folder for the installer script

Next steps