Your coding agent already runs terminal commands. Give it the ethiodeploy CLI and it can create the project, deploy, read the build log when something breaks, and fix it.
Last updated
These are the defaults. Override any of them in Settings → Build.
Install the CLI and log in yourself. The login opens your browser, and every agent session on this machine uses it afterwards:
npm install -g ethiodeploy ethiodeploy login
Push your repo to GitHub and install the EthioDeploy GitHub app on it. Then, inside the repo, create the project. This links the folder and streams the first deploy:
ethiodeploy new
If the build needs env vars (like VITE_ or NEXT_PUBLIC_ values), create it with --no-deploy, run ethiodeploy env push .env, then ethiodeploy deploy.
Add this to CLAUDE.md for Claude Code, or to AGENTS.md or a project rule for Cursor:
## Deploying - Deploy with the ethiodeploy CLI. It builds what is pushed to GitHub, so commit and push first. - Run `ethiodeploy deploy --json`. Build logs go to stderr, stdout is one JSON object. Exit code 0 = live, 1 = failed, 2 = cancelled. - If it fails, read `ethiodeploy logs --build -n 200`, fix the cause, push, deploy again. - Runtime errors: `ethiodeploy logs -n 200`. - Env vars: `ethiodeploy env set KEY=VALUE` (add --sensitive for secrets), then deploy again. Never print secret values. - Roll back: `ethiodeploy deployments`, then `ethiodeploy redeploy <id>`.
Then ask for what you want, for example “add a contact form and deploy it”. The agent pushes, deploys, and if the build fails it reads the log and tries again.
An agent running somewhere else (a cloud sandbox, a CI job) can't use your browser login. Create a token in Settings → API tokens and set it as ETHIODEPLOY_TOKEN in that environment. A token acts as you, so keep it in a secret store.
export ETHIODEPLOY_TOKEN=edp_… ethiodeploy deploy -p my-app --json
Add variables in the project's settings. They're available both while the app builds and while it runs, so build-time values (like framework-public keys) work without extra setup. See Environment variables.
The deploy is live but doesn't include the agent's change
Cause: The change wasn't pushed, and deploys build what's on GitHub.
Fix: Commit and push, then deploy again.
Not authenticated, inside the agent's environment
Cause: The agent runs somewhere your login isn't stored.
Fix: Set ETHIODEPLOY_TOKEN there, or run ethiodeploy login on that machine.
ethiodeploy new says the GitHub app can't see the repo
Cause: The EthioDeploy GitHub app isn't installed on that repo.
Fix: Open the link it prints, install the app on the repo, and run new again.
Health check times out
Cause: The server listens on localhost or a hardcoded port.
Fix: Listen on 0.0.0.0 and read PORT. See the Node.js guide.
Still stuck? Check the deployment's build log in the dashboard, or see Troubleshooting.
Ready to deploy? Sign in with GitHub and pick your repo. No Dockerfile, no YAML.
See the full docs for custom domains, env vars, addons, and billing.