Aplicación de escritorio local-first para registrar, supervisar, ejecutar y mantener proyectos de desarrollo desde un único panel centralizado. Construida con Tauri v2, React 19, TypeScript estricto, Rust y SQLite local.
La aplicación funciona 100% de manera local. No sube rutas, logs ni configuración a servidores externos. Tu token de GitHub (PAT) se almacena localmente y solo se comunica con la API oficial de GitHub cuando ejecutas acciones explícitas.
- Registro Flexible: Añade proyectos pegando la ruta absoluta o mediante el selector nativo de carpetas de macOS (
rfd); las rutas se normalizan, canonizan y deduplican automáticamente en SQLite. - Detección Automática de Stacks: Identifica manifiestos y configuraciones de:
- JavaScript / TypeScript: Node.js, npm, pnpm, yarn, bun, Vite, Next.js, Astro, React, Vue, Svelte, NestJS, Express.
- Python: pip, poetry, uv, pipenv, FastAPI, Django, Flask, Streamlit o scripts directos con entrypoints (
main.py,app.py). - Rust: Cargo, workspaces y crates binarios.
- PHP: Composer, Laravel, Symfony.
- Docker: Dockerfile y Docker Compose.
- Resolución Inteligente de Puertos: Extrae puertos declarados en
.env(PORT,VITE_PORT, etc.), archivos de configuración (vite.config,astro.config,next.config) o scripts detectados. - 📌 Proyectos Fijados: Marca proyectos favoritos con 1 clic para mantenerlos siempre visibles al inicio de la barra lateral y filtrables en el dashboard.
- 📦 Proyectos Archivados: Oculta proyectos inactivos en una sección colapsable sin eliminarlos de tu disco, manteniendo tu espacio de trabajo limpio.
- Pestaña
Git & GitHub: Panel de control Git dedicado dentro del workspace de cada proyecto. - Estado en Tiempo Real:
- Rama activa actual (
🌿 main,🌿 feature/...). - Lista de ramas locales y ramas remotas en GitHub.
- Archivos con cambios pendientes sin commitear (
Mmodificados,+untracked/nuevos,Deliminados). - Conteo de sincronización:
⬆ N commits por subir (Ahead)y⬇ N commits por bajar (Behind). - Último commit registrado (mensaje, hash y fecha).
- Rama activa actual (
- Acciones Rápidas de Git:
[⬇ Pull]: Descarga y fusiona los últimos cambios de GitHub en 1 clic.[⬆ Push]: Sube commits locales pendientes a la rama remota con autenticación por token.Commit & Push Rápido: Formulario integrado para escribir el mensaje de commit, hacergit add -A, commitear y subir a GitHub en un único paso.🚀 Publicar en GitHub: Asistente para proyectos locales que crea el repositorio en tu cuenta de GitHub (público o privado), inicializa Git, crea un.gitignorepor defecto y realiza el push inicial automáticamente.
- Explorador de Repositorios: Lista todos los repositorios de tu cuenta de GitHub, indicando si ya están clonados localmente o disponibles en la nube.
- Clonado en 1 Clic: Clona repositorios en una carpeta de trabajo configurada con resolución automática de dependencias.
- Safe Offload (Archivar a la Nube): Libera espacio en disco eliminando la copia local de forma segura únicamente tras verificar que todos los cambios locales y ramas estén sincronizados y subidos a GitHub (
git statuslimpio ygit pushal día).
- Pestaña
Entorno: Gestor completo de variables por proyecto, con alta, edición, comentario por clave y activación/desactivación individual. - Bóveda en SQLite: Las variables se guardan en la base local del panel, fuera del árbol del proyecto. Es lo que permite que sobrevivan a borrar la carpeta: los
.envestán en el.gitignore, así que tampoco están en GitHub. - Sincronización bidireccional con los
.env:- Importar: Trae las variables de
.env,.env.local,.env.production… a la bóveda. Fusiona (añade y actualiza) y nunca borra una clave que ya solo exista en la bóveda. - Escribir: Regenera el fichero del proyecto desde la bóveda, con confirmación explícita que enumera qué claves desaparecerían y una copia del contenido anterior en el directorio de datos de la app.
- Pegar
.env: Importa un bloque pegado a mano, contando las variables detectadas antes de guardar nada.
- Importar: Trae las variables de
- Estado de sincronización por fichero: Cada
.envse cruza con la bóveda y se etiqueta comoSincronizado,N sin proteger,Desincronizado,Solo en la bóvedaoPlantilla. - Detección de secretos: Heurística por segmentos del nombre (
TOKEN,SECRET,PASSWORD,KEY,DSN,JWT…) más análisis del valor (postgres://usuario:clave@host). Los secretos se muestran ocultos con botón de revelar y copiar; el sesgo es hacia el falso positivo a propósito. - Inyección al ejecutar: Las variables activas se pasan al proceso hijo respetando la precedencia de Vite y dotenv-flow (
.env→.env.<modo>→.env.local). El puerto que resuelve el detector siempre gana, para que unPORTguardado no haga arrancar el servidor en un puerto ocupado. - 📦 Bóveda de huérfanas: Al borrar, desregistrar o liberar un proyecto, sus variables no se borran con él: quedan huérfanas con el nombre y la ruta del proyecto original. Desde su propia vista se pueden restaurar en otro proyecto (eligiendo el fichero de destino), copiar como
.envo descartar definitivamente. - Aviso antes de borrar: El modal de eliminación cuenta cuántas claves están solo en el disco y ofrece guardarlas en la bóveda en el mismo sitio, antes de confirmar.
- Control de Servidores: Inicia (
Run), detiene y reinicia servidores de desarrollo en segundo plano. - Logs en Tiempo Real: Consola integrada con salida
stdout/stderr, auto-scroll, filtrado y conteo de líneas. - Lanzadores de Herramientas: Abre cualquier proyecto directamente en Finder, Terminal, VS Code, Cursor, Codex o Antigravity IDE.
- Gestión de Dependencias: Visualiza dependencias instaladas y faltantes, con comandos de instalación inteligentes y fallbacks automáticos (
pnpm,npm,yarn,bun,pip). - Limpieza de Disco Segura: Calcula el tamaño en disco de carpetas temporales (
node_modules,target,.venv,.next,dist,.cache) y permite liberarlas con dry-run y confirmación explícita.
src/ Frontend (React 19 + TypeScript + CSS modular)
api.ts Capa de transporte e invocaciones IPC tipadas hacia Tauri
types.ts Contratos de datos, DTOs y tipos del dominio
App.tsx Vistas principales (Dashboard, Workspace, GitHub Hub, Bóveda, Modales)
App.css Variables de diseño, paleta HSL/dark mode y componentes
lib/envVars.ts Enmascarado, agrupación y estado de sincronización de las variables
hooks/useEnvVars.ts Bóveda del proyecto abierto; hooks/useEnvVault.ts, las huérfanas
src-tauri/src/ Backend (Rust nativo + Tauri v2)
domain.rs Estructuras serializables (Project, GitStatusInfo, ProcessInfo, EnvVar, etc.)
storage.rs Capa de persistencia SQLite en modo WAL con migraciones automáticas
env_vars.rs Formato dotenv (lectura, escritura, precedencia) y heurística de secretos
scanner.rs Motor de detección de frameworks, package managers y puertos
github.rs Servicio de integración con GitHub API y comandos Git CLI
process.rs Gestor de ciclo de vida de procesos hijos y captura de logs
disk.rs Analizador de uso de almacenamiento y limpiador protegido
ide.rs Lanzador de editores y herramientas externas del sistema
lib.rs Registro de comandos Tauri y composición del estado de la app
El archivo de base de datos se ubica en el directorio de datos de la aplicación (app_data_dir) como dev-command-center.sqlite3 con modo WAL (Write-Ahead Logging) habilitado para soportar lecturas y escrituras concurrentes sin bloqueos:
projects: Almacena metadatos del proyecto, ruta canónica, tags, puertos, estado,is_pinnedeis_archived.command_history: Historial de ejecuciones con comandos, marcas de tiempo, códigos de salida y errores.settings: Clave-valor para preferencias de usuario (token PAT de GitHub, directorio por defecto de clonado, etc.).project_env_vars: Bóveda de variables de entorno. Índice único sobre(project_id, scope, key)y, a diferencia decommand_history, clave ajena conON DELETE SET NULL: al borrar un proyecto la variable se queda huérfana en lugar de desaparecer, porque un.envno está en GitHub y su pérdida sería irreversible.
- Rutas Confiables: Todas las operaciones se validan contra la ruta canónica en disco para evitar accesos fuera del árbol del proyecto.
- Ejecución Segura de Comandos: Los procesos se ejecutan pasando el ejecutable y sus argumentos estructurados por separado con
std::process::Command, sin invocar shells intermedias ni interpolación insegura. - Limpieza Segura: Solo se permite eliminar directorios temporales regenerables previamente definidos (
CLEANABLE_DIRECTORIES). Nunca se tocan archivos.env, credenciales ni fuentes. - Protección de Credenciales: Las operaciones de Git usan autenticación HTTPS temporal con el token en memoria (
x-access-token), asegurando que las URLs en.git/configqueden siempre limpias y sin tokens en texto plano. - Variables de Entorno: Se guardan en la base SQLite local en texto plano, igual que el token de GitHub. No salen del equipo y nunca se envían a ningún servicio; el enmascarado de la interfaz evita exponerlas en una captura de pantalla, no las cifra en disco. Los ámbitos se validan contra
..y separadores de ruta antes de tocar el disco, y las copias previas a sobrescribir un.envse guardan en el directorio de datos de la aplicación —nunca dentro del repositorio, donde el patrón.envdel.gitignoreno cubriría un.env.bak—.
- Node.js: v18+ con
pnpm - Rust: Toolchain estable (
rustcycargo) - macOS: Compatible con Apple Silicon (M1/M2/M3/M4) y procesadores Intel
# 1. Instalar dependencias del frontend
pnpm install
# 2. Iniciar en modo desarrollo con Tauri (HMR frontend + recarga Rust)
export PATH="$HOME/.cargo/bin:$PATH"
pnpm tauri dev# Compilación y chequeo de tipos TypeScript
pnpm build
# Ejecutar suite de pruebas unitarias en Rust (64 tests)
cargo test --manifest-path src-tauri/Cargo.toml --features mcp
# Ejecutar suite de pruebas del frontend (124 tests)
pnpm test
# Generar binario de producción (.app y .dmg)
pnpm tauri buildDev Command Center incluye un servidor MCP (Model Context Protocol) integrado que permite a asistentes como Antigravity IDE, Claude Desktop, Cursor o Codex inspeccionar y controlar tus proyectos locales a través de stdio:
- Gestión de proyectos: Listar, registrar, inspeccionar y re-escanear stacks.
- Ejecución supervisada: Planificar comandos (dry-run), ejecutar tareas y controlar servidores
deven segundo plano. - Bóveda y
.enven disco: Consultar variables, guardar secretos en la bóveda, sincronizarlos inmediatamente al.enven disco con respaldos automáticos e importar.envexistentes. - Git y Cloud Workspaces: Clonar repositorios de GitHub, consultar estado y realizar Safe Offload para liberar espacio en disco.
- Limpieza de disco: Generar reportes y previsualizaciones de limpieza con confirmación explícita.
Consulta la documentación detallada y catálogo de herramientas en mcp/README.md.