Introduction

In development environments, a workspace often contains multiple subdirectories, each with its own compose.yaml. Traditional container viewers find it difficult to clearly present such multi-project structures, or do not allow direct operations from the sidebar.

The DeepSeek Harness (DSH) plugin dsh-compose-panel integrates Docker Compose projects directly into the Harness native right sidebar. It groups projects by directory and provides real-time container status, start/stop/restart operations, and streaming log viewing.

Plugin Information

  • Name: dsh-compose-panel
  • Description: DeepSeek Harness plugin: Docker Compose projects, container control, and real-time logs.
  • Owner: yizhixiaokong
  • License: MIT

Core Features

  • Group by directory: Each project directory corresponds to one group. Container status is determined by the directory, preventing different stacks from being incorrectly merged due to the -p argument, the COMPOSE_PROJECT_NAME environment variable, or a .env file.
  • Multi-source discovery: Displays projects in three states, including running containers, projects known to Docker but not started, and compose.yaml files that have never been brought up.
  • Workspace scoped: Lists only projects located inside the DSH workspace directory. Projects belonging to a workspace relative path are categorized under the longest matching workspace, while other projects are counted but not hidden.
  • Interactive operations: Supports hover actions. Hover over a project title to run up -d / restart / stop for the entire project; hover over an individual container row to perform the same operations on that service.
  • Real-time logs: Click a container row or project title to open a streaming log viewer for that target in a new tab.
  • Silent refresh: Refreshes the list every 45 seconds when idle and every 8 seconds when containers are starting. The refresh process does not lose scroll position, collapsed state, or selected items.
  • Native styling: Uses Harness theme tokens and supports light/dark modes and accent colors.

Installation and Enablement

Use the official plugin command to install it. After installation, restart dsh web to load the client code.

dsh plugin --profile web add "github:yizhixiaokong/dsh-compose-panel"

To install from local code (for easier debugging):

git clone https://github.com/yizhixiaokong/dsh-compose-panel.git
cd dsh-compose-panel
dsh plugin --profile web add "$PWD"

To update:

# 从 npm 安装
dsh plugin --profile web add dsh-compose-panel@latest

# 从 GitHub 安装(需指定 tag 以锁定版本)
dsh plugin --profile web add "github:yizhixiaokong/dsh-compose-panel#v0.1.3"

To remove it:

dsh plugin --profile web remove dsh-compose-panel

Typical Usage

  1. Open the right sidebar on the Harness Guide page and select the 🐳 Containers pill.
  2. Each workspace is a section, each project directory is a collapsible group, the group name displays the path, and the right side shows the aggregated container status for the group.
  3. Hover over a project title; the status cell changes into action buttons (start/stop/restart). Hover over a specific container row to operate on that service.
  4. Click a container row or project title to open the streaming log tab for that target.

Applicability and Considerations

  • Environment requirements:

    • DSH version must be >= 0.1.5-rc.1.
    • DSH with the web profile must be used.
    • The host environment must have Docker CLI installed and available on PATH (the plugin calls docker ps and docker compose ls as subprocesses).
    • The host must be a POSIX system (Windows has not been tested).
    • The Docker Compose v2 plugin must be used (the command is docker compose, not docker-compose).
    • A DSH workspace must be configured.
  • Development notes:

    • Client code is baselined when the host starts. Directly editing lib/client.js in a running Harness instance does not take effect; you must restart dsh web.

Summary

dsh-compose-panel provides a lightweight, highly integrated solution for managing multi-level Docker Compose projects in a DSH environment. Through the native sidebar interface, it simplifies container monitoring and operational workflows.