kitchen list
Lists your instances and the last action performed on each one. Running kitchen list is usually the fastest way to answer “what do I have, and what state is it in?”.
kitchen list [INSTANCE|REGEXP|all]
kitchen status is an alias for kitchen list.
Example output
Instance Driver Provisioner Verifier Transport Last Action Last Error
default-ubuntu-2204 Docker ChefInfra Inspec Ssh Converged <None>
default-centos-9 Docker ChefInfra Inspec Ssh <Not Created> <None>
The Last Action column reflects what Test Kitchen recorded in its own state files — not what your hypervisor or cloud provider currently has running. See --live below for the difference.
Flags
| Flag | Alias | Description |
|---|---|---|
--bare |
-b |
Print only instance names, one per line. |
--json |
-j |
Print the instance data as JSON. |
--live |
Ask the driver for each instance’s real current status. | |
--probe |
Additionally test transport connectivity to each instance. | |
--log-level LEVEL |
-l |
debug, info, warn, error, or fatal. |
--log-overwrite |
Set to false to keep old log files. |
|
--color |
Toggle color output. | |
--debug |
-d |
Deprecated. Use kitchen diagnose. |
Scripting with --bare
--bare prints nothing but names, which makes it easy to drive other commands:
kitchen list --bare # every instance name
kitchen list --bare ubuntu # names matching /ubuntu/
# converge instances one at a time, in a loop
for i in $(kitchen list --bare); do
kitchen converge "$i"
done
Machine-readable output with --json
kitchen list --json | jq -r '.[] | select(.last_action == null) | .instance'
--json emits the same fields the table shows, which makes it a reliable input for CI scripts that need to decide what to act on.
Checking what is really running with --live
Test Kitchen’s state files can drift from reality: an instance may have been terminated in the cloud console, stopped by a provider policy, or destroyed by someone else.
kitchen list --live
--live asks the driver for each instance’s actual status and adds it to the output. It is slower than a plain list, because it makes real API calls, but it is the honest answer.
Add --probe to go one step further and actually test whether the transport can connect:
kitchen list --live --probe
This distinguishes “the provider says the instance is running” from “I can actually reach it over SSH” — a useful distinction when an instance is up but its network or SSH daemon is not cooperating. Probe results are colored green when reachable and red when not.
kitchen destroy claims there is nothing to destroy but your bill says otherwise, kitchen list --live is the command that tells you the truth.