The Cantila CLI
cantila is the zero-dependency Node 20 binary that wraps the public API.
Same scoping as an API key. Same actions as the Console. Faster for
everything once you know the verb.
Install
npm i -g cantila-cliVerify:
cantila --versionAuthenticate
There is no interactive login command. The CLI authenticates with an API
key, exactly like the public API.
Create a key in the Console, or mint one from the CLI itself once you have
a key with admin scope (or during first-run bootstrap).
Mint a key, then save it to your config:
cantila keys create my-laptop --scope deploy
# → prints the raw key ONCE — copy it now
cantila config set apiKey=ck_live_...The raw key is shown a single time on creation. After that only its prefix
is ever displayed. Scopes are read, deploy (the default), and admin.
Confirm who you are:
cantila whoamiThis prints the Account and key the CLI is authenticated as.
Prefer not to write the key to disk? Export CANTILA_API_KEY instead. Every
config value has an environment-variable override — see CLI configuration.
Shape
cantila <command> [<subcommand>] [<target>] [--flags]The first word is a command — a product or platform concept (projects,
deploy, env, logs, mail, sms, domain, agents). Many commands
take a subcommand (env set, keys create, backups restore); when omitted
they default to listing.
Ship your first deploy
1. Create a project
cantila create blog --runtime node --region fsn1Runtime defaults to node and region to fsn1. Valid runtimes:
static, node, python, php, go, ruby, docker. Valid regions:
fsn1, hel1, ash. The command prints the new project id and its
{slug}.cantila.app subdomain (live after the first deploy).
2. Deploy it
cantila deploy <projectId>Deploys stream step-by-step by default. The CLI prints each build and
provision step as it happens, then the live URL and any auto-wired env. Pass
--no-stream for a single-shot wait instead.
Deploy a pre-built image, or build and push one locally:
# image already in a registry
cantila deploy <projectId> --image registry.example.com/blog:latest
# build + push from a local Dockerfile, then deploy
cantila deploy <projectId> --build . --registry registry.example.com/blog --tag v2--build requires --registry; --tag and --dockerfile are optional.
You cannot pass both --image and --build.
3. Watch it
cantila logs <projectId>
cantila status <projectId>
cantila open <projectId>logs shows build and deploy logs, status reports services, domains and
recent deploys, and open launches the project's primary URL in your browser.
Where to next
- Command reference — every command grouped by area.
- CLI configuration — the config file, env overrides, and
the
--assub-account flag.
Output rules
The CLI follows the brand voice:
- One line per event. No prose.
✓for success,✗for failure — that is it for emoji.- Errors state what happened, then the recovery on the next line.