keel init
keel.yaml (one sample deployment named production) and
deploy/Dockerfile (Alpine with bash, curl, git) in dir (default
.). Existing files are never overwritten; the command says which files it
created or kept.
keel validate
dir. On success prints each
deployment with its step and variable counts and exits 0. On failure lists
every problem with its path and exits 1. The rules are on the
validation page.
keel dev
dir. If there is no
keel.yaml, the starter files are created first.
On start, Keel checks that Docker is reachable and warns if not; the UI
works, but deploys fail until Docker is running. Ctrl+C shuts down
gracefully. State goes to
.keel/ in the repository (see below).
keel deploy
Precedence, lowest to highest: defaults, target values, var file,
--var.
Values for undeclared variables are ignored. Missing or invalid values are
listed and the command exits 1 before anything runs; the same happens if
Docker is unreachable or the configuration is invalid. Ctrl+C cancels the
run. Exit status is 0 only when every step succeeded.
Without --target, KEEL_TARGET inside the run is cli.
keel manifest
keel skills
SKILL.md documents that teach AI coding
agents how to write keel.yaml, environment images, and use the CLI —
into the agents’ skill directories. See
Use Keel with AI coding agents.
install replaces skill directories Keel wrote (re-run it after
upgrading), never touches other directories without --force, and prints
each directory with the agents that read it. uninstall removes only
directories Keel wrote. list prints the shipped skills with their
descriptions and files. agents prints every supported agent with its
key, project and user-wide directories, and whether it was detected.
keel update
checksums.txt, and replaces the running executable
in place — the same procedure as the install script, without re-running it.
Afterwards it runs the new binary’s --version to confirm it works.
When the executable’s directory is not writable, the command says so —
re-run it with elevated permissions (
sudo keel update) or use the install
script. On Windows the old executable is renamed to keel.exe.old next to
the new one, because a running program cannot be overwritten; delete it at
any time.
Background update check
Every command checks for a newer release at most once a day. The request runs while the command does; a command that finishes first waits at most two seconds for the answer, and on every other day the saved answer is used with no request at all. When a newer release is known, a note is printed on standard error after the command finishes:https://github.com/UcGeorge/keel/releases/latest and
sends nothing but the request. It is skipped for development builds, when
KEEL_NO_UPDATE_CHECK is set to any value, or when CI is set. The last
answer is kept in update-check.json under the user config directory
(next to dev.key, see below).
State on disk
Deleting
dev.key makes every saved value on the machine unreadable; copy
it to move a .keel/dev.db to another machine.