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 --versionComandos 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 --helpComandos Principales
devenv create
Crea un nuevo workspace de desarrollo.
devenv create <name> [options]Opciones
| Opción | Corto | Default | Descripción |
|---|---|---|---|
--template | -t | bun-typescript | Template a usar (bun-typescript, node-express, python-django) |
--port | -p | auto | Puerto específico para Code-Server (auto = siguiente disponible) |
--type | persistent | Tipo de workspace: persistent o temporary | |
--repo | URL de repositorio Git para clonar automáticamente | ||
--branch | Rama específica para clonar (default: main/master) | ||
--force | -f | false | Sobrescribe workspace si existe |
--help | -h | Muestra 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 --forcedevenv list
Lista todos los workspaces.
devenv list [options]Opciones
| Opción | Descripción |
|---|---|
--all | Incluye workspaces detenidos |
--json | Output en formato JSON |
--watch | Modo 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 --watchdevenv start
Inicia un workspace detenido.
devenv start <name>Ejemplos
devenv start myproject
# Iniciar múltiples
devenv start project1 project2 project3devenv stop
Detiene un workspace en ejecución.
devenv stop <name>Opciones
| Opción | Corto | Descripción |
|---|---|---|
--force | -f | Forza detención (SIGKILL) |
Ejemplos
devenv stop myproject
# Forzar detención si no responde
devenv stop myproject --forcedevenv restart
Reinicia un workspace.
devenv restart <name>Ejemplos
devenv restart myprojectdevenv destroy
Elimina un workspace permanentemente.
devenv destroy <name> [options]Opciones
| Opción | Corto | Descripción |
|---|---|---|
--volumes | -v | También elimina volúmenes (cuidado: se pierden datos) |
--force | -f | No 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 --forcedevenv logs
Muestra logs de un workspace.
devenv logs <name> [options]Opciones
| Opción | Corto | Default | Descripción |
|---|---|---|---|
--follow | -f | false | Sigue logs en tiempo real (tail -f) |
--tail | -n | 50 | Número de líneas a mostrar |
--service | Servicio 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 codeserverdevenv open
Abre el workspace en el browser (Code-Server).
devenv open <name>Opciones
| Opción | Descripción |
|---|---|
--print | Solo 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:8443devenv ssh
Conecta por SSH al workspace.
devenv ssh <name>Opciones
| Opción | Descripció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ón | Corto | Descripción |
|---|---|---|
--workdir | -w | Directorio 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=chromiumdevenv info
Muestra información detallada de un workspace.
devenv info <name>Ejemplos
devenv info myprojectOutput:
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-configComandos 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.urldevenv 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-tokendevenv config list
Lista toda la configuración.
devenv config listComandos de Utilidad
devenv doctor
Verifica la instalación y dependencias.
devenv doctorOutput:
✓ Docker daemon: running
✓ Docker compose: installed
✓ SSH client: installed
✓ Port 8443: available
✓ Port 3389: available
✗ Port 2223: in usedevenv cleanup
Elimina workspaces temporales antiguos.
devenv cleanup [options]Opciones
| Opción | Default | Descripción |
|---|---|---|
--older-than | 24h | Elimina workspaces más antiguos que X |
--dry-run | false | Solo 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-runExit Codes
| Código | Significado |
|---|---|
0 | Éxito |
1 | Error genérico |
2 | Workspace no encontrado |
3 | Puerto no disponible |
4 | Error de permisos |
5 | Error 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