#Dock
Dock te permite agregar controles de terminal y navegador a la barra lateral derecha. Los controles de terminal ejecutan comandos en secciones basadas en Ghostty, mientras que los controles de navegador integran páginas web. Úsalo para feeds, registros, colas, estado de git, servidores de desarrollo, paneles o páginas de referencia que tu equipo quiera tener junto a cada workspace.
#Configuración
cmux busca la configuración de Dock en este orden:
.cmux/dock.jsonpara el repositorio actual, el proyecto padre más cercano y los directorios de proyectos anidados.~/.config/cmux/dock.jsonpara tu Dock personal predeterminado o cuando no hay repositorio.
#Ejemplo de dock.json
Un archivo Dock es un objeto JSON con un array controls. Haz commit de los controles del proyecto en .cmux/dock.json cuando quieras que tus compañeros compartan el mismo Dock. Sustituye los comandos de ejemplo por herramientas que tu repositorio realmente tenga.
{
"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
}
]
}#Campos
| Campo | Descripción |
|---|---|
id | Identificador único y estable del control. Mantenlo corto y no lo reutilices para otro comando. |
title | Etiqueta que se muestra en el encabezado de Dock. |
command | Comando que se ejecuta en el terminal de Dock. Es obligatorio para los controles de terminal y se inicia en el shell de inicio de sesión. |
type | Tipo de control opcional: terminal (predeterminado) o browser. |
url | Página que se abrirá. Obligatoria para los controles de navegador. |
chrome | Visibilidad opcional de la interfaz del navegador. El valor predeterminado es true; false oculta la barra de direcciones y la barra de herramientas, hace que Enfocar la barra de direcciones no tenga efecto en ese panel y mantiene disponibles cmux browser goto/reload. |
cwd | Directorio de trabajo opcional. Las rutas relativas se resuelven desde la raíz del proyecto para configuraciones de proyecto o desde tu directorio de inicio para configuraciones globales. |
height | Altura opcional del control. Los controles sin height comparten el espacio restante. |
env | Variables de entorno opcionales que se pasan solo a ese control. |
#Compartir con un equipo
Dock está diseñado para compartirse con control de código fuente cuando los comandos pertenecen al repositorio.
- Pon los controles específicos del repositorio en .cmux/dock.json y confirma el archivo.
- Pon los controles personales en ~/.config/cmux/dock.json, especialmente fuera de un repositorio, y mantén ese archivo fuera del control de código fuente compartido.
- No pongas secretos en dock.json. Lee los secretos desde tu shell, un archivo env local o tus herramientas de desarrollo existentes.
#Pídele a un agente que lo configure
Usa este prompt cuando quieras que un agente de código cree controles Dock. Le indica al agente que ejecute `cmux docs dock`, inspeccione el proyecto y pregunte antes de adivinar.
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.