#Dock
Mit Dock kannst du Terminal- und Browser-Steuerelemente zur rechten Seitenleiste hinzufügen. Terminal-Steuerelemente führen Befehle in Ghostty-basierten Bereichen aus, während Browser-Steuerelemente Webseiten einbetten. Nutze es für Feeds, Logs, Warteschlangen, Git-Status, Entwicklungsserver, Dashboards oder Referenzseiten, die dein Team neben jedem Workspace sehen möchte.
#Konfiguration
cmux sucht Dock-Konfigurationen in dieser Reihenfolge:
.cmux/dock.jsonfür das aktuelle Repository, das nächstgelegene übergeordnete Projekt und verschachtelte Projektverzeichnisse.~/.config/cmux/dock.jsonfür deinen persönlichen Standard-Dock oder wenn kein Repository vorhanden ist.
#Beispiel dock.json
Eine Dock-Datei ist ein JSON-Objekt mit einem controls-Array. Committe Projektkontrollen in .cmux/dock.json, wenn Teammitglieder denselben Dock teilen sollen. Ersetze die Beispielbefehle durch Werkzeuge, die dein Repository wirklich hat.
{
"controls": [
{
"id": "git",
"title": "Git",
"command": "lazygit",
"height": 300
},
{
"id": "logs",
"title": "Logs",
"command": "tail -f ./logs/development.log",
"cwd": "."
},
{
"id": "feed",
"title": "Feed",
"command": "cmux feed tui --opentui",
"height": 320
},
{
"id": "dashboard",
"title": "Dashboard",
"type": "browser",
"url": "http://127.0.0.1:8877/sidebar",
"chrome": false
}
]
}#Felder
| Feld | Beschreibung |
|---|---|
id | Stabile eindeutige Kennung für das Steuerelement. Halte sie kurz und verwende sie nicht für einen anderen Befehl wieder. |
title | Beschriftung im Dock-Header. |
command | Befehl, der im Dock-Terminal ausgeführt wird. Für Terminal-Steuerelemente erforderlich und in der Login-Shell gestartet. |
type | Optionaler Steuerelementtyp: terminal (Standard) oder browser. |
url | Zu öffnende Seite. Für Browser-Steuerelemente erforderlich. |
chrome | Optionale Sichtbarkeit der Browser-Bedienelemente. Standard ist true; false blendet Adressleiste und Symbolleiste aus, lässt „Adressleiste fokussieren“ in diesem Bereich wirkungslos und cmux browser goto/reload weiterhin verfügbar. |
cwd | Optionales Arbeitsverzeichnis. Relative Pfade werden bei Projektkonfigurationen vom Projektstamm und bei globalen Konfigurationen vom Home-Verzeichnis aus aufgelöst. |
height | Optionale Höhe des Steuerelements. Steuerelemente ohne height teilen sich den verbleibenden Platz. |
env | Optionale Umgebungsvariablen, die nur an dieses Steuerelement übergeben werden. |
#Im Team teilen
Dock ist dafür gedacht, über Source Control geteilt zu werden, wenn die Befehle zum Repository gehören.
- Lege repo-spezifische Steuerelemente in .cmux/dock.json ab und committe die Datei.
- Lege persönliche Kontrollen in ~/.config/cmux/dock.json ab, besonders außerhalb eines Repositories, und halte diese Datei aus gemeinsamem Source Control heraus.
- Lege keine Secrets in dock.json ab. Lies Secrets aus deiner Shell, einer lokalen env-Datei oder deiner vorhandenen Entwicklungsumgebung.
#Einen Agenten mit der Einrichtung beauftragen
Verwende diesen Prompt, wenn ein Coding-Agent Dock-Kontrollen erstellen soll. Er weist den Agenten an, `cmux docs dock` auszuführen, das Projekt zu prüfen und vor dem Raten nachzufragen.
Set up cmux Dock controls for the current context.
First, learn the feature before editing:
1. Run `cmux docs dock` if the cmux CLI is available. If it is not, read https://cmux.com/docs/dock.
2. Inspect the repository or current directory to understand the project type, scripts, package manager, dev servers, logs, task runners, test commands, and any existing TUI tools.
3. If the desired Dock is ambiguous, ask the user what they want monitored or controlled before writing files.
Dock is cmux's right-sidebar terminal and browser control area. A Dock config is JSON with a top-level `controls` array. Terminal controls run commands in Ghostty-backed sections using the user's login shell; browser controls embed URLs. Controls are useful for project dashboards, git/status views, dev server or build status, test watchers, log tails, queues, local services, or fixed web dashboards.
Choose where to write the config:
- In a repository or project directory, create or edit `.cmux/dock.json` so teammates can share it.
- For a personal default outside a repo, create or edit `~/.config/cmux/dock.json`.
- If both exist, project `.cmux/dock.json` is more specific for that project. Nested project configs apply to that directory tree; use the nearest relevant project config instead of writing unrelated controls globally.
- If there is no repo and no clear project root, use the global config only after confirming the user wants a personal Dock.
Schema:
{
"controls": [
{
"id": "short-stable-id",
"title": "Human label",
"command": "safe command to run",
"cwd": "optional/path",
"height": 220,
"env": { "NAME": "value" }
},
{
"id": "dashboard",
"title": "Dashboard",
"type": "browser",
"url": "http://127.0.0.1:3000",
"chrome": false
}
]
}
Rules:
- Keep ids stable, lowercase, and unique.
- `type` is optional: `terminal` is the default, or use `browser`.
- Terminal controls require `command`; browser controls require `url`.
- Browser controls default to `chrome: true`. Set `chrome: false` to hide browser chrome, including the address bar and toolbar; Focus Address Bar then does nothing for that pane, while `cmux browser goto` and `cmux browser reload` remain available.
- Use `cwd` for subdirectories; relative paths resolve from the config base.
- Use `height` only when a control needs a fixed amount of vertical space.
- Use `env` only for non-secret values needed by one control.
- Do not put secrets, tokens, or machine-specific private paths in a shared project config.
- Prefer commands that are safe to start repeatedly and make sense in a terminal.
- Do not invent unavailable scripts. Read package files, Makefiles, Procfiles, README docs, config files, and existing tooling first.
- Keep shared project Docks portable for teammates. Put personal or machine-specific controls in the global Dock.
Deliverable:
- Create or update the appropriate dock.json.
- Preserve existing useful controls unless the user asked to replace them.
- Validate that the JSON parses.
- Summarize what each control does and any commands the user should review before trusting the Dock config.