Install the ethiodeploy CLI to deploy, tail logs, and manage environment variables from your terminal or CI, with JSON output for scripts and AI agents.
Last updated
The ethiodeploy CLI does from your terminal what the dashboard does in the browser: trigger deploys, follow build and runtime logs, roll back, and manage environment variables. Every command has a --json mode, so scripts and AI coding agents can drive it too.
Requires Node.js 18.3 or newer.
npm install -g ethiodeploy ethiodeploy login
login prints a short code and opens your browser. Check the code matches, click Authorize, and the CLI is signed in. No browser on the machine? Create a token under Settings → API tokens and run ethiodeploy login --token edp_….
Projects are created in the dashboard (it needs your GitHub app install). Then, inside your repo:
ethiodeploy init
This matches your git origin to a project and writes .ethiodeploy/project.json. After that every command works from any subfolder. Or pass -p <slug> each time.
ethiodeploy deploy # latest pushed commit, streams the build ethiodeploy deploy -b staging # a branch deployment ethiodeploy logs -f # follow runtime logs ethiodeploy redeploy # re-run the last deployment ethiodeploy redeploy <id> # roll back to an older one
deploybuilds what's on GitHub, not local files, so push first. It exits 0 when the deployment is live, 1 if it failed, and 2 if it was cancelled.
ethiodeploy env set API_URL=https://example.com ethiodeploy env set STRIPE_KEY=sk_live_… --sensitive ethiodeploy env push .env ethiodeploy env pull .env.local ethiodeploy env rm OLD_KEY
Changes apply on the next deploy. Sensitive variables can never be read back, so env pull skips them. Changing variables needs the Admin role on the project.
Create a token in Settings → API tokens and expose it as ETHIODEPLOY_TOKEN. A token acts as you, with the same access to every project you can reach, so keep it in your CI provider's secret store and revoke it when it's no longer needed.
export ETHIODEPLOY_TOKEN=edp_… ethiodeploy deploy -p my-app --json
With --json, build logs go to stderr and stdout is a single JSON object.
login, logout, whoamiprojects, init [slug], status, open, projects delete <slug>deploy, deployments, redeploy, cancellogs (-f to follow, --build for build logs, -b for a branch)env ls|set|rm|pull|pushRun ethiodeploy --help for every flag.