Dockyard
Image Published on ghcr.io for amd64 and arm64

See what is running. Know what it needs.

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.

  • Local only
  • No account
  • No telemetry
  • Open source
Get started

One container. Your engine.

Your browser.

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.

Start Dockyard from your repository

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

Open it in your browser

Go to http://localhost:41739. The dashboard shows the engine, what is running and how much disk Docker is using.

Work with what is running

Start, stop and restart containers or whole Compose stacks, follow logs, watch stats, open a shell, and clean up what you no longer need.

Updating

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

What the socket mount means

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.

Features

The whole local runtime, without leaving the browser.

Everyday controls stay close at hand. Destructive actions stay explicit, and Dockyard never turns itself off.

Engine dashboard

Engine version, CPUs, memory and container counts at a glance, with disk use split across images, containers, volumes and build cache.

Containers

Start, stop, restart and remove. Filter by name, image or stack, show only what is running, and open published ports as links.

Live logs

Stream stdout and stderr as they are written, with timestamps, starting from the recent tail so you have context straight away.

Live stats

CPU, memory, network and disk I/O drawn as sparklines that update every second, plus the number of processes inside.

Interactive terminal

A real shell inside any running container, in a full terminal emulator that resizes with the window.

Inspect

The complete inspect document for a container, from mounts and networks to environment and labels, without a trip to the terminal.

Compose stacks

Containers grouped by Compose project, each marked running, partial or stopped. Start, stop, restart or remove a whole stack at once.

Images

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.

Volumes

Size, driver, owning stack and how many containers use each volume. Remove one, or prune every unused volume in one step.

Engine cleanup

Reclaim stopped containers, dangling images, unused networks and build cache in one reviewed action, and see how much space came back.

Agent map

Every AGENTS.md in the mounted repository, found recursively and shown as one searchable outline of headings.

Protects itself

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.

Agent-aware

One map for every instruction file.

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.

  • Recursive discovery from the repository root, with each file kept in its folder context.
  • Skips .git, node_modules, build output and other generated folders.
  • Search across paths, headings and content at once.
  • Read-only: the repository is mounted with :ro and never written to.
Agents /workspace
  • AGENTS.md3 sections
    • H1Project conventions
    • H2Commit messages
    • H2Running the test suite
  • services/api/AGENTS.md3 sections
    • H1API service
    • H2Database migrations
    • H3Integration tests need Postgres
  • web/AGENTS.md2 sections
    • H1Web client
    • H2Component style and tests
  • infra/AGENTS.md2 sections
    • H1Infrastructure
    • H2Never apply to production
Live, not polled

Logs, stats and a shell in one place.

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.

  • Logs and stats stream over WebSockets straight from the Docker engine.
  • stderr is marked apart from stdout, and every line carries its timestamp.
  • The terminal is a real TTY: colours, tab completion and resizing all work.
shop-api-1
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

Keep an eye on your local runtime.

Free and open source under the MIT license. Runs anywhere Docker does.