Skip to main content

Install

Install mel with npm or Homebrew:
npm install -g @melius-ai/cli
brew install melius-ai/tap/mel
npm requires Node.js 20 or later; Homebrew (macOS and Linux) pulls Node in for you. Verify either way:
mel --version

Update

Check your installed version with mel --version, then upgrade with the same tool you installed with:
npm install -g @melius-ai/cli@latest
brew update && brew upgrade mel
On Homebrew, always run brew update first — it refreshes the tap so Homebrew sees the newest formula. A bare brew upgrade mel can report “already installed” because your local copy of the tap is stale.
mel also nudges you when a newer version is published: after a command finishes, a one-line notice prints to stderr (never in JSON output, and never for agents or piped/non-interactive output). Silence it with MEL_NO_UPDATE_NOTIFIER=1. Releases follow semantic versioning — a major bump (for example 1.x2.x) can include breaking changes, so review what changed before upgrading across one.

Get an API key

mel authenticates with a Melius API key. Create one in the Melius app under Team settings → Integrations — give it a name, then copy it when it’s shown (you only see it once). See API authentication for how keys are scoped.
Treat an API key like a password. Don’t commit it to source control or paste it into client-side code. Set it from an environment variable or a secrets manager.

Authenticate

There are two ways to give mel your key — pick one.
Store the key in ~/.mel/config.json so every command picks it up automatically:
mel auth login --api-key mel_...
Confirm it worked:
mel auth whoami
This returns your user (id, name, email). Clear stored credentials any time with mel auth logout.

Configuration

mel resolves settings in this order — environment variables → config file → defaults:
SettingEnv varConfig keyDefault
API keyMEL_API_KEYapiKey
Base URLMEL_BASE_URLbaseUrlhttps://api.melius.com
TeamMEL_TEAM_IDteamIdthe key’s team
Inspect or change the config file:
mel config get           # show all config
mel config set teamId <teamId>
mel config path          # → ~/.mel/config.json

Choosing a team

An API key acts as the user who created it, and can act on any team that user is a member of. Requests default to the team the key was created in; to act on another, set a team id:
mel team list                # teams your key can act on
mel team switch <teamId>     # or export MEL_TEAM_ID=<teamId>
Your permissions are scoped per team, exactly like the app — a key never grants more than your own role in the team you’re acting on. If you’re an owner in the team where you made the key but only an editor in another, switching to that team lets you create and edit content there, but not owner/admin-only actions (managing members, billing, or team settings); a viewer can only read. Switching teams never escalates what you can do.

Shell completion

mel generates tab-completion scripts for bash, zsh, and fish. They’re built from the live command tree, so they never drift from the commands you have installed.
echo 'eval "$(mel completion bash)"' >> ~/.bashrc
echo 'eval "$(mel completion zsh)"' >> ~/.zshrc
mel completion fish > ~/.config/fish/completions/mel.fish
Open a new shell (or re-source your rc file), then press Tab after mel to complete command groups and their subcommands.

Next steps

Quickstart

Run your first generation end to end.

Command reference

Every command, flag, and exit code.
Last modified on July 9, 2026