monoceros status
Shows the workbench at a glance: the workspace container, its services and its
long-running apps (running or stopped), the ports it routes, and what the yml
built in - no Docker CLI needed. Handy before
monoceros open to confirm the container is
up, or to check whether your dev servers are running.
monoceros status <name> # the whole stackmonoceros status <name> <app|service> # narrow to one app or serviceWhat you see
Section titled “What you see”▸ acme ✓ monoceros-acme Up 2 hours
▸ Services ✓ postgres running :5432 ✓ keycloak running :8080 ⚠ realm.json not mounted · redis Exited (0) 1 hour ago projects/web/keycloak/realm.json is never read. Add it to the `keycloak` service's `volumes:` in the yml: - projects/web/keycloak/realm.json:/opt/keycloak/data/import/web.json:ro Then: monoceros apply acme
▸ Apps web ✓ dev http://acme-3000.localhost pid 412 (default) · worker stopped · admin stopped ⚠ :4200 not exposed Expose them so the proxy can route them: monoceros add-port acme 4200
▸ Ports 3000 acme.localhost · acme-3000.localhost
▸ Built in from the yml Languages node, python Features claude-codeTwo registers, kept apart on purpose:
- Runtime state - the container, its services and its
apps - carries a
✓(up) or·(down) marker. A running app shows its reachable URL and pid; a service shows its port. - Built in - the languages and features baked into the image, plus the ports it routes - comes straight from the yml and carries no marker. A feature is never “stopped”; it is in the image or it isn’t. This block reads from the yml, so it shows even when the container is down.
When something runs but cannot answer
Section titled “When something runs but cannot answer”Two things look healthy in a docker ps sense and are not, so status marks
them on the row they belong to and prints the way out underneath:
- A target on a port the yml does not expose. The proxy has no route for it,
so it gets the
⚠ :<port> not exposedmarker and no.localhostURL, however well the process is running. Onemonoceros add-portcall takes every port at once and pushes the routes to the proxy itself, so no apply is needed. - A service whose config file nothing mounts. A realm export an agent wrote
under
projects/<app>/keycloak/reaches Keycloak only through a volume in the yml, and the agent cannot write that. The service row is marked and you get the volume line to paste, plus the apply that recreates the service.
monoceros check looks for both of these too,
along with the rules that are not about “can it answer right now”.
Narrow to one app or service
Section titled “Narrow to one app or service”A second argument scopes the output, just like
monoceros logs: an app the launch config
knows shows that app’s targets; otherwise it is read as a compose service.
monoceros status acme web # just the "web" app's targetsmonoceros status acme postgres # just the postgres serviceBehavior
Section titled “Behavior”- Read-only. It reports state and starts or stops nothing.
- Reflects the real container state, read straight from Docker, not Monoceros’s idea of it.
- Useful cold. Ports and the built-in block come from the yml, so
statusis informative even on a stopped or not-yet-applied workbench.
See also
Section titled “See also”monoceros start/monoceros stop- bring the workbench (or an app) up or down.monoceros list-apps- list the apps and targets you can start.monoceros open- attach an editor once it is up.- Long-running app servers - the launch-config mechanism behind the Apps section.