Skip to content

VS Code Extension

The Sidekick Docker extension embeds the Docker dashboard as a webview panel inside your editor. Works with VS Code, VSCodium, and compatible editors.

Sidekick Docker VS Code Extension Demo

Installation

Install from Open VSX (recommended for VSCodium and compatible editors) or the VS Code Marketplace. You can also search for Sidekick Docker in the Extensions view.

Opening the Dashboard

Open the command palette (Ctrl+Shift+P / Cmd+Shift+P) and run:

Sidekick Docker: Open Dashboard

or press Ctrl+Alt+DCtrl, not Cmd, on macOS too (macOS reserves Cmd+Opt+D for the Dock). The dashboard opens as a webview panel with the same layout as the terminal TUI. The dashboard panel survives window reloads.

Commands

Command Description
Sidekick Docker: Open Dashboard Open the dashboard (Ctrl+Alt+D, all platforms)
Sidekick Docker: Open Dashboard to the Side Open in a split editor column
Sidekick Docker: Refresh Containers Refresh the tree view (Ctrl+Alt+R / Cmd+Alt+R when the Containers view is focused)
Sidekick Docker: Start/Stop/Restart Container... Quick-pick a container to act on
Sidekick Docker: Exec into Container... Quick-pick a running container and open a terminal inside it, using sidekick-docker.exec.defaultShell
Sidekick Docker: Show Container Logs... Quick-pick a container and open the dashboard on its logs

Containers Tree View

The activity-bar Containers view groups containers by state (and by Compose project), with start/stop/restart/pause/unpause/remove and "Open in Dashboard" in the context menu. A status-bar item shows running/total counts and opens the dashboard on click. When the Docker daemon is unreachable, the view offers a Retry Connection action.

Settings

Setting Default Description
sidekick-docker.socketPath "" Docker endpoint: socket path, unix://, or tcp://host[:port]. Empty uses the platform default (or DOCKER_HOST).
sidekick-docker.refreshIntervalSeconds 30 Fallback full-refresh interval in seconds (minimum 5).
sidekick-docker.statusBar.visible true Show the status-bar container counts.
sidekick-docker.exec.defaultShell /bin/sh Shell used when opening an exec terminal into a container.

Settings apply immediately — the extension reconnects without a window reload.

Features

  • Full Docker dashboard — containers, Compose, images, volumes, networks
  • Real-time updates — logs and stats stream live inside the editor
  • Smart log highlighting — token-level syntax coloring for HTTP methods, status codes, URLs, IPs, timestamps, JSON keys, and more
  • Log search & filter — search within log output with exact or fuzzy matching and match highlighting
  • Log analytics — severity count badges and pattern clustering that groups similar logs into templates
  • Container management — start, stop, restart, pause, unpause, remove directly
  • Health status — shows healthy/unhealthy/starting indicators for containers with health checks
  • Compose support — detect and manage projects
  • Stats monitoring — live CPU, memory, network I/O, and block I/O metrics with sparkline charts
  • Filesystem inspector — view all filesystem changes inside containers (Files tab)
  • Image layer explorer — inspect image layer history with sizes and Dockerfile instructions (Layers tab)

Requirements

  • VS Code >= 1.109
  • Docker running and accessible

Architecture

The extension uses a webview panel to render the dashboard. The extension host (Node.js) communicates with the webview (browser) via postMessage() with a typed message protocol.

Key files:

File Role
src/extension.ts Activation, command registration
src/providers/DockerDashboardProvider.ts Webview lifecycle, Docker API bridge
out/webview/dashboard.js Dashboard UI (browser context)
src/types/messages.ts Typed request/response messages

See Architecture Overview for more details.

Keyboard focus and recovery

Use Tab and Shift+Tab to move between webview controls. The terminal dashboard keeps its own Tab focus toggle. Browser and editor shortcuts using Ctrl, Cmd, or Alt are preserved, apart from the documented Ctrl+D/Ctrl+U scroll commands. Dialogs keep focus inside their controls until closed.

Selecting another item keeps the current detail tab. Filtering or removing the selected item selects the first visible item, or clears the selection if nothing matches. Failed detail loads and disconnected streams provide Retry controls; partial refresh failures identify the affected resource while retaining the last successful data.

The Patterns tab updates as the selected container produces logs. Pinned comparison panes update independently, so a quiet primary stream does not hide output from the pinned container or service. Log, stats, and Compose streams stop when the dashboard is hidden or their selection changes; streams that repeatedly end without output eventually stop retrying and offer an explicit Retry control.