MKS DevEnv

Referencia CLI

Documentación completa de comandos y flags del CLI devenv

Referencia CLI

El CLI devenv es la herramienta principal para gestionar tus entornos de desarrollo.

Instalación

# Via npm
npm install -g @mks-devenv/cli

# Via bun
bun install -g @mks-devenv/cli

# Verificar instalación
devenv --version

Comandos Globales

--version, -v

Muestra la versión instalada del CLI.

devenv --version
# Output: devenv v2.0.0

--help, -h

Muestra la ayuda general o de un comando específico.

devenv --help
devenv create --help

Comandos Principales

devenv create

Crea un nuevo workspace de desarrollo.

devenv create <name> [options]

Opciones

OpciónCortoDefaultDescripción
--template-tbun-typescriptTemplate a usar (bun-typescript, node-express, python-django)
--port-pautoPuerto específico para Code-Server (auto = siguiente disponible)
--typepersistentTipo de workspace: persistent o temporary
--repoURL de repositorio Git para clonar automáticamente
--branchRama específica para clonar (default: main/master)
--force-ffalseSobrescribe workspace si existe
--help-hMuestra ayuda

Ejemplos

# Básico
devenv create myproject

# Con template específico
devenv create api --template node-express

# Workspace temporal con puerto específico
devenv create test-pr-123 --type temporary --port 8445

# Clonar repo específico
devenv create myfork --repo https://github.com/user/repo.git --branch feature-branch

# Forzar recreación
devenv create myproject --force

devenv list

Lista todos los workspaces.

devenv list [options]

Opciones

OpciónDescripción
--allIncluye workspaces detenidos
--jsonOutput en formato JSON
--watchModo watch (actualiza en tiempo real)

Ejemplos

# Listar workspaces activos
devenv list

# Incluir todos (incluso detenidos)
devenv list --all

# Output JSON para scripts
devenv list --json | jq '.[] | select(.status == "running")'

# Watch mode
devenv list --watch

devenv start

Inicia un workspace detenido.

devenv start <name>

Ejemplos

devenv start myproject

# Iniciar múltiples
devenv start project1 project2 project3

devenv stop

Detiene un workspace en ejecución.

devenv stop <name>

Opciones

OpciónCortoDescripción
--force-fForza detención (SIGKILL)

Ejemplos

devenv stop myproject

# Forzar detención si no responde
devenv stop myproject --force

devenv restart

Reinicia un workspace.

devenv restart <name>

Ejemplos

devenv restart myproject

devenv destroy

Elimina un workspace permanentemente.

devenv destroy <name> [options]

Opciones

OpciónCortoDescripción
--volumes-vTambién elimina volúmenes (cuidado: se pierden datos)
--force-fNo pide confirmación

Ejemplos

# Eliminar solo el contenedor
devenv destroy old-project

# Eliminar contenedor y volúmenes (datos perdidos)
devenv destroy old-project --volumes

# Sin confirmación
devenv destroy old-project --force

devenv logs

Muestra logs de un workspace.

devenv logs <name> [options]

Opciones

OpciónCortoDefaultDescripción
--follow-ffalseSigue logs en tiempo real (tail -f)
--tail-n50Número de líneas a mostrar
--serviceServicio específico (xfce4, codeserver, xrdp)

Ejemplos

# Últimas 50 líneas
devenv logs myproject

# Seguir logs en tiempo real
devenv logs myproject --follow

# Últimas 100 líneas
devenv logs myproject --tail 100

# Logs de servicio específico
devenv logs myproject --service codeserver

devenv open

Abre el workspace en el browser (Code-Server).

devenv open <name>

Opciones

OpciónDescripción
--printSolo imprime la URL, no abre el browser

Ejemplos

# Abrir en browser
devenv open myproject

# Obtener URL sin abrir
devenv open myproject --print
# Output: http://localhost:8443

devenv ssh

Conecta por SSH al workspace.

devenv ssh <name>

Opciones

OpciónDescripción
--command-c

Ejemplos

# Shell interactivo
devenv ssh myproject

# Ejecutar comando
devenv ssh myproject --command "bun test"

# Ejecutar múltiples comandos
devenv ssh myproject -c "cd /workspace && bun run build"

devenv exec

Ejecuta un comando en el workspace sin SSH interactivo.

devenv exec <name> <command>

Opciones

OpciónCortoDescripción
--workdir-wDirectorio de trabajo (default: /workspace)

Ejemplos

# Ejecutar tests
devenv exec myproject bun test

# En directorio específico
devenv exec myproject --workdir /workspace/api bun run lint

# Con argumentos
devenv exec myproject bunx playwright test --project=chromium

devenv info

Muestra información detallada de un workspace.

devenv info <name>

Ejemplos

devenv info myproject

Output:

Name:           myproject
Status:         running
Template:       bun-typescript
Type:           persistent
Port:           8443
Container ID:   abc123def456
Created:        2024-01-15 10:30:00

URLs:
  Code-Server:  http://localhost:8443
  RDP:          rdp://localhost:3389
  SSH:          ssh root@localhost -p 2223

Volumes:
  workspace:    /var/lib/docker/volumes/myproject-workspace
  config:       /var/lib/docker/volumes/myproject-config

Comandos de Configuración

devenv config get

Obtiene un valor de configuración.

devenv config get <key>

Ejemplos

devenv config get defaults.template
# Output: bun-typescript

devenv config get coolify.url

devenv config set

Establece un valor de configuración.

devenv config set <key> <value>

Ejemplos

# Set template por defecto
devenv config set defaults.template node-express

# Configurar URL de Coolify
devenv config set coolify.url https://coolify.example.com

# Configurar token
devenv config set coolify.token your-api-token

devenv config list

Lista toda la configuración.

devenv config list

Comandos de Utilidad

devenv doctor

Verifica la instalación y dependencias.

devenv doctor

Output:

✓ Docker daemon: running
✓ Docker compose: installed
✓ SSH client: installed
✓ Port 8443: available
✓ Port 3389: available
✗ Port 2223: in use

devenv cleanup

Elimina workspaces temporales antiguos.

devenv cleanup [options]

Opciones

OpciónDefaultDescripción
--older-than24hElimina workspaces más antiguos que X
--dry-runfalseSolo muestra qué se eliminaría

Ejemplos

# Eliminar temporales de más de 24h
devenv cleanup

# Eliminar temporales de más de 7 días
devenv cleanup --older-than 168h

# Ver qué se eliminaría
devenv cleanup --dry-run

Exit Codes

CódigoSignificado
0Éxito
1Error genérico
2Workspace no encontrado
3Puerto no disponible
4Error de permisos
5Error de red/Docker

Archivo de Configuración

El CLI lee configuración de ~/.config/mks-devenv/config.json:

{
  "defaults": {
    "template": "bun-typescript",
    "type": "persistent"
  },
  "coolify": {
    "url": "https://coolify.example.com",
    "token": "your-api-token"
  },
  "docker": {
    "socket": "/var/run/docker.sock"
  },
  "ports": {
    "codeserver": {
      "start": 8443,
      "end": 8550
    }
  }
}

Completación de Shell

Habilita autocompletado:

# Bash
echo 'source <(devenv completion bash)' >> ~/.bashrc

# Zsh
echo 'source <(devenv completion zsh)' >> ~/.zshrc

# Fish
devenv completion fish | source

Actions

On this page