Managing Containers
Demi can manage running containers without going through the full plan-confirm workflow. These are "safe actions" that don't require confirmation.
Safe Actions
| Action | What it does | Needs confirmation? |
|---|---|---|
list |
Show all containers | No |
inspect |
Get detailed container info | No |
logs |
View recent log output | No |
restart |
Restart a container | No |
stop |
Stop a container | No |
start |
Start a stopped container | No |
exec |
Run a command inside a container | No |
Examples
You: what's running?
Demi: PostgreSQL is running on port 5432. Nginx on port 9000.
You: restart postgres
Demi: Postgres restarted. Was running since Sun 2026-03-22 02:24:39 UTC.
You: show me the postgres logs
Demi: PostgreSQL started successfully, listening on 5432. Ready to accept connections.
Last checkpoint completed at 06:30.
You: stop nginx
Demi: Stopped podman-nginx.service.
Running Commands Inside Containers
The exec action lets Demi run commands inside containers. This is useful for querying services directly.
You: how many players are on the minecraft server?
Demi: ★ container (action=exec, name=minecraft, command=rcon-cli list)
There are 0/20 players online.
You: list all postgres databases
Demi: ★ container (action=exec, name=postgres, command=psql -U postgres -c \l)
postgres, template0, template1, nurvus
You: update pi-hole's blocklist
Demi: ★ container (action=exec, name=pihole, command=pihole -g)
Gravity updated. 150,432 domains on blocklist.
Updating Containers
Pull the latest image and restart a container:
You: update jellyfin
Demi: ★ container (action=update, name=jellyfin)
Updated jellyfin: pulled docker.io/jellyfin/jellyfin:latest and restarted.
This is a safe action and doesn't require confirmation. The container restarts with the new image and existing volumes are preserved.
Removing Services
Removing a service requires confirmation since it's destructive: