Engine dashboard
Engine version, CPUs, memory and container counts at a glance, with disk use split across images, containers, volumes and build cache.
Dockyard is a local-first browser UI for the Docker engine on your machine. Start one
container, open localhost:41739, and your containers, Compose stacks, images,
volumes, logs, stats and shells are a click away, next to a map of every
AGENTS.md in your repository.
Dockyard ships as a single multi-arch image. Give it the Docker socket and, optionally, a read-only view of a repository, and it does the rest.
Run this in the repository whose AGENTS.md files you want mapped. It is mounted read-only at /workspace, and the port is bound to your machine only. Docker Desktop on macOS and Windows uses the same command.
$ docker run -d --name dockyard --restart unless-stopped -p 127.0.0.1:41739:41739 -v /var/run/docker.sock:/var/run/docker.sock -v "$PWD:/workspace:ro" ghcr.io/piyushdoorwar/dockyard:latest
Go to http://localhost:41739. The dashboard shows the engine, what is running and how much disk Docker is using.
Start, stop and restart containers or whole Compose stacks, follow logs, watch stats, open a shell, and clean up what you no longer need.
Pull the newest image, remove the container and run the same command again. Dockyard keeps no state of its own, so recreating it loses nothing. Pin a version with :1.2.3 instead of :latest.
$ docker pull ghcr.io/piyushdoorwar/dockyard:latest
$ docker rm -f dockyard
Access to /var/run/docker.sock is equivalent to root on the host, so Dockyard
has no login and is built to be reached only from your machine. It answers loopback
requests only, checks Host and Origin, and needs a custom header for
every change. Keep the port published on 127.0.0.1, never on a public interface.
Everyday controls stay close at hand. Destructive actions stay explicit, and Dockyard never turns itself off.
Engine version, CPUs, memory and container counts at a glance, with disk use split across images, containers, volumes and build cache.
Start, stop, restart and remove. Filter by name, image or stack, show only what is running, and open published ports as links.
Stream stdout and stderr as they are written, with timestamps, starting from the recent tail so you have context straight away.
CPU, memory, network and disk I/O drawn as sparklines that update every second, plus the number of processes inside.
A real shell inside any running container, in a full terminal emulator that resizes with the window.
The complete inspect document for a container, from mounts and networks to environment and labels, without a trip to the terminal.
Containers grouped by Compose project, each marked running, partial or stopped. Start, stop, restart or remove a whole stack at once.
Pull by name, remove what you do not need, prune dangling or unused images, and see each one's size and how many containers use it.
Size, driver, owning stack and how many containers use each volume. Remove one, or prune every unused volume in one step.
Reclaim stopped containers, dangling images, unused networks and build cache in one reviewed action, and see how much space came back.
Every AGENTS.md in the mounted repository, found recursively and shown as one searchable outline of headings.
Dockyard recognises its own container by label and refuses to stop, restart or remove it, so you cannot pull the rug from under the UI.
Coding agents read AGENTS.md files spread through a repository. Dockyard finds
all of them and lays out their headings as a single outline, so you can see which rules
apply where before an agent does.
.git, node_modules, build output and other generated folders.:ro and never written to.Open any container to follow its output as it happens, watch its resources move, and drop into a terminal without copying an ID into another window.
10:42:07.118 INFO listening on :3000 10:42:07.402 INFO connected to postgres at shop-db-1:5432 10:42:11.930 GET /health 200 2 ms 10:42:15.271 GET /products?page=2 200 18 ms 10:42:15.844 POST /cart/items 201 31 ms 10:42:16.007 WARN slow query: 412 ms on orders 10:42:19.563 ERROR payment webhook rejected: bad signature 10:42:21.190 GET /products/41 200 9 ms streaming, tail 500
Free and open source under the MIT license. Runs anywhere Docker does.