Command Code: crea un SaaS completo con modelos open source, Skills y Playwright
Hoy existen muchos agentes de terminal para programar con IA, pero casi todos giran alrededor de modelos cerrados y de suscripciones caras. Command Code toma el camino contrario: es un agente de línea de comandos diseñado específicamente para que los modelos abiertos (DeepSeek, Kimi, GLM, Qwen, MiniMax) rindan igual que los comerciales.
En este tutorial vamos a crear desde cero un SaaS de inventario multiempresa, vamos a instalar un Skill de Playwright para que la propia IA pruebe la aplicación en el navegador, y vamos a ver Taste, la función que aprende tus preferencias de código sesión tras sesión.
Tabla de contenidos
- Qué es Command Code
- Requisitos e instalación
- Planes y precios
- Elegir el modelo correcto
- Plan Mode: planificar antes de escribir código
- Creando el SaaS de inventario
- Taste: el agente aprende tu forma de programar
- Compartir tu Taste entre proyectos y equipos
- Agent Skills: instalar Playwright CLI
- Testing automático con Playwright
- Mejorar la UI con /design
- Trabajar con varias sesiones en paralelo
- Preguntas frecuentes
Qué es Command Code
Command Code es un agente de código para terminal cuyo foco es el harness: la capa que envuelve al modelo y decide cómo se leen archivos, cómo se ejecutan comandos y cómo se reparan las llamadas a herramientas.
Ese enfoque importa porque la queja habitual de "los modelos abiertos fallan al llamar herramientas" es, en gran medida, un problema del harness y no del modelo. Según su documentación de harness engineering, Command Code valida y repara las llamadas a herramientas en vuelo, trabaja con tasas altas de acierto de caché de prompts y optimiza el consumo de tokens en las herramientas de lectura y shell.
A eso se suma lo que ellos llaman taste-1: un modelo que aprende de forma continua tus preferencias de stack, librerías y convenciones, y las aplica automáticamente en sesiones futuras.
| Característica | Detalle |
|---|---|
| Tipo | Agente CLI (terminal), con app de escritorio e integración IDE |
| Foco | Modelos open source (también soporta premium) |
| Instalación | npm i -g command-code@latest |
| Binarios | command-code, cmd (macOS/Linux/WSL), cmdc (Windows nativo) |
| Extensibilidad | Agent Skills, MCP, comandos personalizados, hooks, mods |
| Memoria | AGENTS.md, /memory y Taste (.commandcode/taste/) |
Requisitos e instalación
Command Code requiere Node.js 22 o superior. Verifica tu versión antes de instalar:
node -v
Instalación global con npm:
npm i -g command-code@latest
Verifica que quedó bien instalado:
cmd --version
Sobre el alias: cmd vs cmdc
Este punto confunde a mucha gente y conviene dejarlo claro:
| Dónde lo ejecutas | Alias corto |
|---|---|
| macOS, Linux y WSL | cmd |
| Windows nativo (PowerShell, Windows Terminal, Git Bash) | cmdc |
| Cualquier sistema | command-code |
En Windows nativo el nombre cmd ya pertenece al intérprete del sistema, por eso se usa cmdc.
Iniciar sesión
cmd login
Ese comando abre el navegador, pides autorización con tu cuenta y vuelves a la terminal. La credencial queda guardada en ~/.commandcode/auth.json. También puedes generar una API key desde el panel y pegarla en la terminal.
Luego te mueves a la carpeta del proyecto y lanzas el agente:
mkdir sistema-inventario
cd sistema-inventario
cmd
La primera vez que lo ejecutas en una carpeta, te pregunta si confías en los archivos de ese directorio. Es una sola vez por proyecto.
Planes y precios
Una de las razones para probar Command Code es el costo. El plan de entrada cuesta un dólar al mes. Estos son los planes vigentes al momento de escribir este artículo (revisa siempre la página de precios oficial, porque cambian seguido):
| Plan | Precio | Créditos incluidos | Volumen aproximado |
|---|---|---|---|
| Go | $1/mes | $10 | ~15K peticiones |
| GOAT | $10/mes | $70 | ~75K peticiones |
| Pro | $20/mes | $80 | ~100K peticiones |
| Max 10× | $100/mes | $150 | ~219K peticiones |
| Max 20× | $200/mes | $300 | ~437K peticiones |
| Teams | $40/mes | Bolsa compartida | ~35K peticiones |
| Provider (API) | $15/mes | Pago por uso, sin markup | Endpoints compatibles OpenAI/Anthropic |
Algunos detalles que vale la pena conocer:
- Los créditos rinden más en ciertos modelos. Por ejemplo, MiniMax M3 estira los créditos hasta 2× y MiMo V2.5 hasta 5×, así que $10 de crédito pueden significar $20 o $50 de uso efectivo según qué modelo elijas.
- Hay modelos que no consumen créditos mientras dure la capacidad promocional.
- Los top-ups no expiran y se acumulan al siguiente ciclo.
- El plan Provider es para quienes quieren consumir la API desde su propio código, con clientes compatibles con OpenAI o Anthropic.
Mi recomendación práctica: si estás empezando, el plan Go de $1 alcanza perfectamente para seguir este tutorial completo. Si creas proyectos a diario, GOAT es el mejor equilibrio precio/uso del mercado ahora mismo.
Elegir el modelo correcto
Antes de pedirle nada al agente, elige el modelo. Dentro de la sesión:
/model
Sin argumentos abre un selector interactivo; con argumento (/model deepseek-v4-flash) aplica directo. También puedes abrir el selector rápido con alt+p, o arrancar la sesión fijando el modelo:
cmd --model <id>
cmd --list-models # ver todos los ids disponibles
Entre los modelos abiertos disponibles están DeepSeek V4 Flash, MiniMax M3, GLM-5.2, Kimi K2.7 Code, Qwen 3.8, Tencent Hy3 y varios más (la lista completa está en la referencia de modelos). En los planes superiores también entran modelos premium de Anthropic, OpenAI y Google.
Un extra poco conocido: si el modelo soporta niveles de razonamiento, puedes subirlos o bajarlos con:
/effort high
Los niveles van de low a max y dependen del modelo. Para una planificación inicial compleja, subirlo compensa; para tareas mecánicas, bajarlo ahorra créditos.
Plan Mode: planificar antes de escribir código
Por defecto el agente empieza a trabajar de inmediato. Para un proyecto nuevo eso no es lo ideal: conviene que primero proponga stack, arquitectura y pasos.
Presiona shift+tab para ciclar entre modos de permiso:
default → auto-accept → plan → default
| Modo | Qué hace |
|---|---|
default |
Pide confirmación antes de editar archivos o ejecutar comandos |
auto-accept |
Acepta las ediciones automáticamente |
plan |
Solo lectura: explora y planifica, sin efectos secundarios |
También puedes saltar directo con /mode:plan o con /plan <tarea>. En Windows, si shift+tab no llega a la terminal, usa alt+m.
Creando el SaaS de inventario
Con Plan Mode activo, el prompt inicial fue algo así:
Crea un SaaS para empresas donde puedan registrarse y estas
a su vez puedan registrar inventarios de compra de productos.
El agente responde con preguntas de definición: qué stack usar, si cada empresa tendrá múltiples usuarios, etc. En el video elegí React + Node para tener frontend y backend separados, y multiusuario por empresa.
A partir de ahí genera la planificación completa y ejecuta las tareas. En la práctica el proceso tomó entre 5 y 7 minutos hasta dejar backend y frontend creados.
Para levantarlo:
ejecuta el proyecto
El frontend arranca en el puerto 5173 (Vite). El resultado de DeepSeek V4 Flash fue un login funcional, un dashboard y un CRUD de productos con SKU que guarda y edita sin recargar. No incluyó landing page, pero eso se pide en un segundo prompt.
Estructura resultante:
sistema-inventario/
├── backend/
├── client/
└── .commandcode/
├── taste/
├── skills/
└── settings.json
Esa carpeta .commandcode/ es la clave de todo lo que viene a continuación.
Taste: el agente aprende tu forma de programar
Aquí está la diferencia real de Command Code frente a otros agentes.
Mientras trabajas, no solo pides cambios: también dejas caer preferencias. Por ejemplo:
siempre valida las entradas de los endpoints con Zod
siempre crea los esquemas en un archivo separado
Command Code no aplica esas instrucciones solo en esa tarea: las guarda. Las aprende de cada aceptación, rechazo y edición que haces, y las escribe en tu perfil de Taste.
Los aprendizajes aparecen en la propia sesión como filas TASTE con el aprendizaje y su nivel de confianza, y el perfil vive en:
.commandcode/taste/taste.md
Con un contenido parecido a este:
# CLI
- Use pnpm as package manager. Confidence: 0.50
- Use commander.js for CLI argument parsing. Confidence: 0.50
Los aprendizajes se organizan en paquetes por categoría (cli, typescript, architecture, testing…), cada uno con su propio taste.md:
.commandcode/
└── taste/
├── taste.md
├── cli/taste.md
├── typescript/taste.md
└── architecture/taste.md
Activar o desactivar el aprendizaje
El aprendizaje está activo por defecto. Para gestionarlo:
/taste
Ese panel permite activarlo o desactivarlo a nivel de proyecto (.commandcode/settings.json, se comparte con el equipo) o de usuario (~/.commandcode/config.json, aplica a todos tus proyectos). Desde la terminal:
cmd taste disable # desactiva en el proyecto actual
cmd taste enable # reactiva en el proyecto actual
cmd taste disable --user # desactiva en todos tus proyectos
Sobre privacidad: según la documentación oficial y su política, Command Code no entrena con tu código, y los datos de aprendizaje de Taste se almacenan en tu máquina.
Aprender de otros agentes
Si vienes de Claude Code, Cursor, Codex u OpenCode, puedes importar tu configuración y además construir tu perfil de Taste a partir de esas sesiones previas:
/import claude
/learn-taste
O desde la terminal: cmd learn-taste.
Compartir tu Taste entre proyectos y equipos
Esta parte funciona prácticamente igual que Git. La CLI npx taste gestiona tus paquetes entre tres ubicaciones:
| Ámbito | Ruta | Uso |
|---|---|---|
| Proyecto | .commandcode/taste/ |
Aprendizajes de ese código |
| Global | ~/.commandcode/taste/ |
Tu estilo personal en todas tus máquinas |
| Remoto | commandcode.ai/usuario/taste |
Equipo, backup, sincronización |
Para subir todo el Taste del proyecto a tu cuenta:
npx taste push --all
La salida es del estilo:
✓ Pushed project taste to commandcode.ai/usuario/taste (3 packages, 15 learnings)
Y desde otro proyecto o desde otra máquina, lo traes:
npx taste pull usuario/nombre-proyecto
Comandos completos:
| Comando | Qué hace |
|---|---|
npx taste push --all |
Sube todo el Taste del proyecto |
npx taste push cli |
Sube un paquete individual |
npx taste push cli --public |
Lo hace descubrible públicamente |
npx taste pull usuario/paquete |
Descarga un paquete remoto |
npx taste pull cli -g |
Trae un paquete desde tu global |
npx taste list |
Lista paquetes (usa -g o --remote) |
npx taste lint --all |
Valida el formato antes de publicar |
npx taste open cli |
Abre el paquete en tu editor |
Por defecto tanto push como pull hacen merge inteligente: añaden lo nuevo, actualizan lo que cambió de confianza y dejan igual lo idéntico. Si quieres reemplazar sin fusionar, usa --overwrite.
El valor práctico es enorme: empiezas un proyecto nuevo, haces pull de tu perfil, y el agente ya sabe que usas Hono sobre Express, Docker Compose y tu framework de testing favorito. No tienes que repetirlo nunca más.
Agent Skills: instalar Playwright CLI
Los Agent Skills son carpetas con un archivo SKILL.md que enseñan al agente a hacer algo concreto. Command Code implementa el estándar abierto Agent Skills, así que un skill escrito para otro agente funciona sin modificaciones.
Ubicaciones:
| Tipo | Ruta | Alcance |
|---|---|---|
| Proyecto | .commandcode/skills/ |
Solo ese proyecto |
| Usuario | ~/.commandcode/skills/ |
Todos tus proyectos |
| Compatibilidad | .agents/skills/ y ~/.agents/skills/ |
Se detectan automáticamente |
Para este tutorial usamos el skill Playwright CLI de Microsoft, que automatiza el navegador desde la terminal con comandos compactos en lugar de un MCP pesado (menos tokens, más control).
Instalación con el gestor propio de Command Code:
cmd skills add microsoft/playwright-cli
O con el instalador genérico skills, que muestra un selector para elegir a qué agente instalarlo:
npx skills add microsoft/playwright-cli
Verifica lo instalado:
cmd skills list
Para navegarlos dentro de la sesión:
/skills
Ese menú lista los skills de usuario (user) y de proyecto (project), permite abrirlos en tu editor y activarlos o desactivarlos con Enter.
Testing automático con Playwright
Con el skill instalado, se invoca como cualquier comando slash:
/playwright-cli crea un plan de todas las funcionalidades y pruébalas
paso a paso. Usa el modo headed en cada cambio.
Dos decisiones que marcan la diferencia:
- Plan Mode primero. Cuando hay muchas funcionalidades, conviene que el agente explore el proyecto, elabore una planificación y recién entonces empiece a probar. Genera un archivo de plan de pruebas dentro de
.commandcode/que puedes revisar y anotar. - Modo headed. Playwright puede correr en segundo plano; con el modo headed ves el navegador trabajando. Para grabar o depurar es ideal, para CI no lo necesitas.
El navegador que abre Playwright es una instancia nueva e independiente, no tu navegador habitual con tus sesiones y extensiones.
En la práctica, el agente va funcionalidad por funcionalidad: primero el dashboard, luego el CRUD, rellenando formularios y verificando respuestas. En mi prueba encontró dos errores de validación que yo habría tenido que buscar a mano, y al detectarlos pudo corregirlos él mismo en el código.
Al terminar entrega un reporte por test: test 1, test 2, y así con cada funcionalidad del formulario.
Mejorar la UI con /design
La UI que sale de un primer prompt suele ser funcional pero sosa. Command Code trae un comando integrado para eso:
/design
Es un modo de diseño que audita, construye y reestructura interfaces. Sin argumentos abre los modos disponibles. En el video lo usé para rehacer por completo el dashboard, y el cambio fue inmediato: la interfaz pasó de una tabla plana a un dashboard con jerarquía visual y detalles de UI.
Un detalle importante: el agente hace exactamente el alcance que le pides. Si pides mejorar solo el dashboard, el sidebar queda igual. Sé explícito con el alcance.
También puedes instalar skills de la comunidad orientados a UI, despliegue o convenciones de código, y encadenarlos en el mismo flujo.
Trabajar con varias sesiones en paralelo
No tienes que esperar a que termine una tarea. Abre otra terminal, lanza cmd de nuevo en el mismo proyecto, elige otro modelo con /model y pide algo distinto. Mientras una sesión refactoriza el dashboard, otra puede estar planificando un chat estilo RAG.
Para moverte entre conversaciones previas:
| Comando | Qué hace |
|---|---|
/resume (alias /sessions) |
Retomar una conversación anterior |
/fork |
Bifurcar la conversación en una nueva sesión |
/tree |
Navegar el árbol de sesiones y saltar a cualquier punto |
/rewind (o esc esc) |
Volver a un checkpoint anterior |
/usage |
Ver créditos, plan y métricas de consumo |
Sobre el costo real: el proyecto completo de este tutorial, con varias iteraciones incluidas, consumió alrededor de un par de dólares en créditos. Con el plan Go de $1 (que incluye $10 en créditos) puedes construir varios proyectos de este tamaño.
Preguntas frecuentes
¿Command Code funciona en Windows?
Sí. En Windows nativo el alias corto es cmdc; en WSL, macOS y Linux es cmd. El comando completo command-code funciona en todos.
¿Necesito pagar para probarlo? El plan más barato cuesta $1 al mes e incluye $10 en créditos, suficiente para seguir este tutorial completo.
¿Entrena con mi código? Según su documentación y política de privacidad, no entrena con tu código y los datos de Taste se guardan localmente en tu máquina.
¿Puedo usar mis propias API keys? Sí, soporta BYOK (bring your own key) además de los créditos incluidos en cada plan.
¿Sirven los skills que ya tengo de otros agentes?
Sí. Command Code implementa el estándar Agent Skills y también detecta skills en .agents/skills/, así que un skill escrito para otro agente carga sin cambios.
¿Cuál es la diferencia entre Skills y Taste? Los Skills son manuales explícitos que tú escribes o instalas. Taste es el perfil implícito que el agente aprende solo observando cómo trabajas.
Conclusión
Command Code hace algo que parecía difícil: volver los modelos abiertos realmente utilizables para desarrollo serio, sin renunciar a las herramientas modernas como Skills, MCP y planificación.
El flujo completo que vimos aquí —planificar, construir, dejar que la IA pruebe con Playwright, rediseñar la UI y guardar tus preferencias con Taste— sale por un par de dólares. Y lo más interesante es que el agente mejora con cada proyecto, porque cada sesión alimenta tu perfil.
Si vas a seguir construyendo, el siguiente paso natural es armar tu propia colección de skills: uno para desplegar, uno para tus convenciones de API, uno para tus estándares de UI. Ahí es donde este flujo empieza a multiplicar tiempo de verdad.
¿Dudas o sugerencias para el siguiente tutorial? Déjalas en los comentarios. Y si necesitas ayuda con un proyecto específico, puedes reservar asesorías personalizadas en fazt.dev.